diff options
Diffstat (limited to 'api/utils')
-rw-r--r-- | api/utils/common.py | 44 | ||||
-rw-r--r-- | api/utils/thread.py | 46 |
2 files changed, 31 insertions, 59 deletions
diff --git a/api/utils/common.py b/api/utils/common.py deleted file mode 100644 index eda9c17dd..000000000 --- a/api/utils/common.py +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -from __future__ import absolute_import -import collections -import logging - -from flask import jsonify -import six - -LOG = logging.getLogger(__name__) -LOG.setLevel(logging.DEBUG) - - -def translate_to_str(obj): - if isinstance(obj, collections.Mapping): - return {str(k): translate_to_str(v) for k, v in obj.items()} - elif isinstance(obj, list): - return [translate_to_str(ele) for ele in obj] - elif isinstance(obj, six.text_type): - return str(obj) - return obj - - -def result_handler(status, data): - result = { - 'status': status, - 'result': data - } - return jsonify(result) - - -class Url(object): - - def __init__(self, url, resource, endpoint): - super(Url, self).__init__() - self.url = url - self.resource = resource - self.endpoint = endpoint diff --git a/api/utils/thread.py b/api/utils/thread.py index 2106548f5..20bd07a12 100644 --- a/api/utils/thread.py +++ b/api/utils/thread.py @@ -1,37 +1,53 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## import threading +import os import logging from oslo_serialization import jsonutils -from api.database.v1.handlers import TasksHandler from yardstick.common import constants as consts -logger = logging.getLogger(__name__) -logger.setLevel(logging.DEBUG) +LOG = logging.getLogger(__name__) +LOG.setLevel(logging.DEBUG) class TaskThread(threading.Thread): - def __init__(self, target, args): + def __init__(self, target, args, handler): super(TaskThread, self).__init__(target=target, args=args) self.target = target self.args = args + self.handler = handler def run(self): - task_handler = TasksHandler() - data = {'task_id': self.args.task_id, 'status': consts.TASK_NOT_DONE} - task_handler.insert(data) + if self.handler.__class__.__name__.lower().startswith('v2'): + self.handler.update_attr(self.args.task_id, {'status': consts.TASK_NOT_DONE}) + else: + update_data = {'task_id': self.args.task_id, 'status': consts.TASK_NOT_DONE} + self.handler.insert(update_data) - logger.info('Starting run task') + LOG.info('Starting run task') try: data = self.target(self.args) except Exception as e: - logger.exception('Task Failed') + LOG.exception('Task Failed') update_data = {'status': consts.TASK_FAILED, 'error': str(e)} - task_handler.update_attr(self.args.task_id, update_data) + self.handler.update_attr(self.args.task_id, update_data) else: - logger.info('Task Finished') - logger.debug('Result: %s', data) - - data['result'] = jsonutils.dumps(data.get('result', {})) - task_handler.update_attr(self.args.task_id, data) + LOG.info('Task Finished') + LOG.debug('Result: %s', data) + + if self.handler.__class__.__name__.lower().startswith('v2'): + new_data = {'status': consts.TASK_DONE, 'result': jsonutils.dumps(data['result'])} + self.handler.update_attr(self.args.task_id, new_data) + os.remove(self.args.inputfile[0]) + else: + data['result'] = jsonutils.dumps(data.get('result', {})) + self.handler.update_attr(self.args.task_id, data) |