summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-01-28 16:57:39 +0000
committerGerrit Code Review <review@openstack.org>2013-01-28 16:57:39 +0000
commit98390d80665e4522c2ec749aee738b087a576702 (patch)
tree3eebfb56abd7925199bc395569bf6343ae1bb191 /nova/api
parent592d46aeb8b9e39f9a7c1c31fe16cab939fe37f9 (diff)
parent2ca9553d7c5b4f244532caaa9219d1a8d560284b (diff)
Merge "Avoid hard dependency on python-coverage."
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/contrib/coverage_ext.py11
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)