diff options
author | chenjiankun <chenjiankun1@huawei.com> | 2016-11-17 08:01:14 +0000 |
---|---|---|
committer | chenjiankun <chenjiankun1@huawei.com> | 2016-11-21 08:59:40 +0000 |
commit | 0e23c697e6329a57ba168cc57886b436ea87cdc4 (patch) | |
tree | 9344c63ed5296375dda7b0f0f2a3d85c06d7048e /api/utils/daemonthread.py | |
parent | eeeca4f0cdeff152ec061bb9b40ae305547c027e (diff) |
Create API to run test cases
JIRA: YARDSTICK-413
Change-Id: Ibf58b50b568fae3f2eea985b25ee33be0a3666b7
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
Diffstat (limited to 'api/utils/daemonthread.py')
-rw-r--r-- | api/utils/daemonthread.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/api/utils/daemonthread.py b/api/utils/daemonthread.py new file mode 100644 index 000000000..77a0f6ab7 --- /dev/null +++ b/api/utils/daemonthread.py @@ -0,0 +1,36 @@ +import threading +import os +import datetime +import errno + +from api import conf +from api.utils.influx import write_data_tasklist + + +class DaemonThread(threading.Thread): + + def __init__(self, method, args): + super(DaemonThread, self).__init__(target=method, args=args) + self.method = method + self.command_list = args[0] + self.task_id = args[1] + + def run(self): + timestamp = datetime.datetime.now() + + try: + write_data_tasklist(self.task_id, timestamp, 0) + self.method(self.command_list, self.task_id) + write_data_tasklist(self.task_id, timestamp, 1) + except Exception as e: + write_data_tasklist(self.task_id, timestamp, 2, error=str(e)) + finally: + _handle_testsuite_file(self.task_id) + + +def _handle_testsuite_file(task_id): + try: + os.remove(os.path.join(conf.TEST_SUITE_PATH, task_id + '.yaml')) + except OSError as e: + if e.errno != errno.ENOENT: + raise |