aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yardstick/cmd/commands/task.py15
-rw-r--r--yardstick/common/utils.py5
-rw-r--r--yardstick/dispatcher/file.py5
3 files changed, 20 insertions, 5 deletions
diff --git a/yardstick/cmd/commands/task.py b/yardstick/cmd/commands/task.py
index 57c2b1526..16a4db291 100644
--- a/yardstick/cmd/commands/task.py
+++ b/yardstick/cmd/commands/task.py
@@ -14,7 +14,7 @@ from __future__ import absolute_import
from yardstick.benchmark.core.task import Task
from yardstick.common.utils import cliargs
from yardstick.common.utils import write_json_to_file
-from yardstick.common import constants as consts
+from yardstick.common.utils import read_json_from_file
from yardstick.cmd.commands import change_osloobj_to_paras
output_file_default = "/tmp/yardstick.out"
@@ -24,7 +24,7 @@ class TaskCommands(object):
"""Task commands.
Set of commands to manage benchmark tasks.
- """
+ """
@cliargs("inputfile", type=str, help="path to task or suite file", nargs=1)
@cliargs("--task-args", dest="task_args",
@@ -44,18 +44,25 @@ class TaskCommands(object):
action="store_true")
def do_start(self, args, **kwargs):
param = change_osloobj_to_paras(args)
+ self.output_file = param.output_file
self._init_result_file()
try:
Task().start(param, **kwargs)
+ self._finish()
except Exception as e:
self._write_error_data(e)
def _init_result_file(self):
data = {'status': 0, 'result': []}
- write_json_to_file(consts.DEFAULT_OUTPUT_FILE, data)
+ write_json_to_file(self.output_file, data)
+
+ def _finish(self):
+ result = read_json_from_file(self.output_file).get('result')
+ data = {'status': 1, 'result': result}
+ write_json_to_file(self.output_file, data)
def _write_error_data(self, error):
data = {'status': 2, 'result': str(error)}
- write_json_to_file(consts.DEFAULT_OUTPUT_FILE, data)
+ write_json_to_file(self.output_file, data)
diff --git a/yardstick/common/utils.py b/yardstick/common/utils.py
index 174ac0a5a..04536190b 100644
--- a/yardstick/common/utils.py
+++ b/yardstick/common/utils.py
@@ -148,6 +148,11 @@ def get_neutron_client():
return neutron_client
+def read_json_from_file(path):
+ with open(path, 'r') as f:
+ return jsonutils.load(f)
+
+
def write_json_to_file(path, data, mode='w'):
with open(path, mode) as f:
jsonutils.dump(data, f)
diff --git a/yardstick/dispatcher/file.py b/yardstick/dispatcher/file.py
index 8d3c3693d..6fc81d419 100644
--- a/yardstick/dispatcher/file.py
+++ b/yardstick/dispatcher/file.py
@@ -39,5 +39,8 @@ class FileDispatcher(DispatchBase):
def flush_result_data(self):
file_path = self.conf.get('file_path', consts.DEFAULT_OUTPUT_FILE)
- data = {'status': 1, 'result': self.result}
+ res = utils.read_json_from_file(file_path).get('result')
+ res.extend(self.result)
+
+ data = {'status': 0, 'result': res}
utils.write_json_to_file(file_path, data)