summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorMatthew Treinish <treinish@linux.vnet.ibm.com>2012-12-20 11:56:04 -0500
committerMatthew Treinish <treinish@linux.vnet.ibm.com>2012-12-20 15:45:45 -0500
commitce9867b3facc90defcc17ce3399d410fbaba95d3 (patch)
tree851d878ad82b30f74fb343cfd872b7045ade1943 /nova/api
parent2655ac9f3cce45d3d3b5f7d38dd8c617ed1de070 (diff)
downloadnova-ce9867b3facc90defcc17ce3399d410fbaba95d3.tar.gz
nova-ce9867b3facc90defcc17ce3399d410fbaba95d3.tar.xz
nova-ce9867b3facc90defcc17ce3399d410fbaba95d3.zip
Add html reports to report action in coverage extension.
This makes a few minor cleanups and 2 additions to the coverage extension. First, it adds a new optional field to the report action: 'html'. This will generate an html report instead of either the text or xml reports that the extension can generate. The second change is that it adds a return for the stop action. Now upon successful completion of the stop action the directory where the coverage data files will be returned. Change-Id: If1aa25fc7237e9bb5100d2a4a8e560f0a68eba61
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/contrib/coverage_ext.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/nova/api/openstack/compute/contrib/coverage_ext.py b/nova/api/openstack/compute/contrib/coverage_ext.py
index 98a067fc8..bf47fe451 100644
--- a/nova/api/openstack/compute/contrib/coverage_ext.py
+++ b/nova/api/openstack/compute/contrib/coverage_ext.py
@@ -71,7 +71,6 @@ class CoverageController(object):
"network": self.network_api.get_backdoor_port,
}
ports = []
- temp = {}
#TODO(mtreinish): Figure out how to bind the backdoor socket to 0.0.0.0
# Currently this will only work if the host is resolved as loopback on
# the same host as api-server
@@ -110,7 +109,7 @@ class CoverageController(object):
def _start_coverage(self, req, body):
'''Begin recording coverage information.'''
- LOG.debug("Coverage begin")
+ LOG.debug(_("Coverage begin"))
body = body['start']
self.combine = False
if 'combine' in body.keys():
@@ -144,8 +143,9 @@ class CoverageController(object):
for service in self.services:
self._stop_coverage_telnet(service['telnet'])
if self._check_coverage():
- msg = ("Coverage not running")
+ msg = _("Coverage not running")
raise exc.HTTPNotFound(explanation=msg)
+ return {'path': self.data_path}
def _report_coverage_telnet(self, tn, path, xml=False):
if xml:
@@ -165,26 +165,34 @@ class CoverageController(object):
def _report_coverage(self, req, body):
self._stop_coverage(req)
xml = False
+ html = False
path = None
body = body['report']
if 'file' in body.keys():
path = body['file']
if path != os.path.basename(path):
- msg = ("Invalid path")
+ msg = _("Invalid path")
raise exc.HTTPBadRequest(explanation=msg)
path = os.path.join(self.data_path, path)
else:
- msg = ("No path given for report file")
+ msg = _("No path given for report file")
raise exc.HTTPBadRequest(explanation=msg)
if 'xml' in body.keys():
xml = body['xml']
+ elif 'html' in body.keys():
+ if not self.combine:
+ msg = _("You can't use html reports without combining")
+ raise exc.HTTPBadRequest(explanation=msg)
+ html = body['html']
if self.combine:
self.coverInst.combine()
if xml:
self.coverInst.xml_report(outfile=path)
+ elif html:
+ self.coverInst.html_report(directory=path)
else:
output = open(path, 'w')
self.coverInst.report(file=output)