From 73edf3d28e7d17a64ddc9ffea206ec825c488bc6 Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Tue, 22 Nov 2016 00:14:57 +0000 Subject: Create API to get test case result JIRA: YARDSTICK-416 Change-Id: I722566bb0e5bc5288cd6302559e56a3f92ebbeca Signed-off-by: chenjiankun --- api/utils/common.py | 31 ++++++++++++++++++++++++++++++- api/utils/daemonthread.py | 8 ++++++++ api/utils/influx.py | 18 ++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) (limited to 'api/utils') diff --git a/api/utils/common.py b/api/utils/common.py index 9d7998abd..04a6fe0d6 100644 --- a/api/utils/common.py +++ b/api/utils/common.py @@ -1,8 +1,20 @@ +############################################################################## +# 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 +############################################################################## import collections +import logging +import json from api.utils.daemonthread import DaemonThread from yardstick.cmd.cli import YardstickCLI +logger = logging.getLogger(__name__) + def translate_to_str(object): if isinstance(object, collections.Mapping): @@ -20,7 +32,7 @@ def get_command_list(command_list, opts, args): command_list.extend(('--{}'.format(k) for k in opts if 'task-args' != k)) - task_args = opts.get('task_args', '') + task_args = opts.get('task-args', '') if task_args: command_list.extend(['--task-args', task_args]) @@ -32,6 +44,23 @@ def exec_command_task(command_list, task_id): # pragma: no cover daemonthread.start() +def error_handler(message): + logger.debug(message) + result = { + 'status': 'error', + 'message': message + } + return json.dumps(result) + + +def result_handler(status, data): + result = { + 'status': status, + 'result': data + } + return json.dumps(result) + + class Url(object): def __init__(self, url, resource, endpoint): diff --git a/api/utils/daemonthread.py b/api/utils/daemonthread.py index 77a0f6ab7..47c0b9108 100644 --- a/api/utils/daemonthread.py +++ b/api/utils/daemonthread.py @@ -1,3 +1,11 @@ +############################################################################## +# 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 +############################################################################## import threading import os import datetime diff --git a/api/utils/influx.py b/api/utils/influx.py index 1d56c95fd..9366ed3e9 100644 --- a/api/utils/influx.py +++ b/api/utils/influx.py @@ -1,3 +1,11 @@ +############################################################################## +# 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 +############################################################################## import logging from urlparse import urlsplit @@ -53,3 +61,13 @@ def write_data_tasklist(task_id, timestamp, status, error=''): field = {'status': status, 'error': error} tags = {'task_id': task_id} _write_data('tasklist', field, timestamp, tags) + + +def query(query_sql): + try: + client = get_data_db_client() + logger.debug('Start to query: %s', query_sql) + return list(client.query(query_sql).get_points()) + except RuntimeError: + logger.error('dispatcher is not influxdb') + raise -- cgit 1.2.3-korg