diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-01-28 16:57:39 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-01-28 16:57:39 +0000 |
| commit | 98390d80665e4522c2ec749aee738b087a576702 (patch) | |
| tree | 3eebfb56abd7925199bc395569bf6343ae1bb191 /nova/api | |
| parent | 592d46aeb8b9e39f9a7c1c31fe16cab939fe37f9 (diff) | |
| parent | 2ca9553d7c5b4f244532caaa9219d1a8d560284b (diff) | |
Merge "Avoid hard dependency on python-coverage."
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/contrib/coverage_ext.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/nova/api/openstack/compute/contrib/coverage_ext.py b/nova/api/openstack/compute/contrib/coverage_ext.py index bc4d0f0f9..6edf9244f 100644 --- a/nova/api/openstack/compute/contrib/coverage_ext.py +++ b/nova/api/openstack/compute/contrib/coverage_ext.py @@ -23,7 +23,6 @@ import sys import telnetlib import tempfile -import coverage from webob import exc from nova.api.openstack import extensions @@ -47,7 +46,6 @@ class CoverageController(object): def __init__(self): self.data_path = tempfile.mkdtemp(prefix='nova-coverage_') data_out = os.path.join(self.data_path, '.nova-coverage') - self.coverInst = coverage.coverage(data_file=data_out) self.compute_api = compute_api.API() self.network_api = network_api.API() self.conductor_api = conductor_api.API() @@ -57,6 +55,12 @@ class CoverageController(object): self.cert_api = cert_api.CertAPI() self.services = [] self.combine = False + try: + import coverage + self.coverInst = coverage.coverage(data_file=data_out) + self.has_coverage = True + except ImportError: + self.has_coverage = False super(CoverageController, self).__init__() def _find_services(self, req): @@ -238,6 +242,9 @@ class CoverageController(object): 'report': self._report_coverage, } authorize(req.environ['nova.context']) + if not self.has_coverage: + msg = _("Python coverage module is not installed.") + raise exc.HTTPServiceUnavailable(explanation=msg) for action, data in body.iteritems(): if action == 'stop': return _actions[action](req) |
