return False
- @staticmethod
- def get_cmd_output(proc):
- """Get command stdout."""
- result = ""
- for line in proc.stdout:
- result += line
- return result
-
@staticmethod
def excl_scenario():
"""Exclude scenario."""
# put detailed result to log
cmd = (["rally", "task", "detailed", "--uuid", task_id])
LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- json_detailed = self.get_cmd_output(proc)
- LOGGER.info('%s', json_detailed)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
# save report as JSON
- cmd = (["rally", "task", "report", "--json", "--uuid", task_id])
- LOGGER.debug('running command: %s', cmd)
- with open(os.devnull, 'w') as devnull:
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=devnull)
- json_results = self.get_cmd_output(proc)
report_json_name = 'opnfv-{}.json'.format(test_name)
report_json_dir = os.path.join(self.RESULTS_DIR, report_json_name)
- with open(report_json_dir, 'w') as r_file:
- LOGGER.debug('saving json file')
- r_file.write(json_results)
+ cmd = (["rally", "task", "report", "--json", "--uuid", task_id,
+ "--out", report_json_dir])
+ LOGGER.debug('running command: %s', cmd)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
# save report as HTML
report_html_name = 'opnfv-{}.html'.format(test_name)
cmd = (["rally", "task", "report", "--html", "--uuid", task_id,
"--out", report_html_dir])
LOGGER.debug('running command: %s', cmd)
- with open(os.devnull, 'w') as devnull:
- subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=devnull)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
+ json_results = open(report_json_dir).read()
self._append_summary(json_results, test_name)
# parse JSON operation result
task_file, "--task-args",
str(self._build_task_args(test_name))])
LOGGER.debug('running command: %s', cmd)
-
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
- output = self.get_cmd_output(proc)
- task_id = self.get_task_id(output)
+ output = proc.communicate()[0]
+ task_id = self.get_task_id(output)
LOGGER.debug('task_id : %s', task_id)
-
if task_id is None:
- LOGGER.error('Failed to retrieve task_id, validating task...')
- cmd = (["rally", "task", "validate", "--task", task_file,
- "--task-args", str(self._build_task_args(test_name))])
- LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- output = self.get_cmd_output(proc)
- LOGGER.error("Task validation result:" + "\n" + output)
+ LOGGER.error("Failed to retrieve task_id")
+ LOGGER.error("Result:\n%s", output)
raise Exception("Failed to retrieve task id")
self._save_results(test_name, task_id)
def clean(self):
"""Cleanup of OpenStack resources. Should be called on completion."""
+ if self.flavor_alt:
+ self.orig_cloud.delete_flavor(self.flavor_alt.id)
super(RallyBase, self).clean()
- self.orig_cloud.delete_flavor(self.flavor_alt.id)
def is_successful(self):
"""The overall result of the test."""