diff options
author | chenjiankun <chenjiankun1@huawei.com> | 2017-07-20 04:13:14 +0000 |
---|---|---|
committer | chenjiankun <chenjiankun1@huawei.com> | 2017-07-20 04:13:14 +0000 |
commit | 376a81e9c5f405edebf260851177a42551dec573 (patch) | |
tree | 9c42ec2d34974788fe422f88efdc75399ddf89f0 | |
parent | 84d6ac910706e61fbe420f0813733ffdfce34f75 (diff) |
Add API(v2) to get all test suite
JIRA: YARDSTICK-747
API: /api/v2/yardstick/testsuites
METHOD: GET
Change-Id: I2375b6d2ea54704f5a2328cc8110058af038e777
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
-rw-r--r-- | api/resources/v2/testsuites.py | 12 | ||||
-rw-r--r-- | yardstick/benchmark/core/testsuite.py | 42 |
2 files changed, 54 insertions, 0 deletions
diff --git a/api/resources/v2/testsuites.py b/api/resources/v2/testsuites.py index 9a3a07a7f..189988ea4 100644 --- a/api/resources/v2/testsuites.py +++ b/api/resources/v2/testsuites.py @@ -6,6 +6,8 @@ import yaml from api import ApiResource from yardstick.common.utils import result_handler from yardstick.common import constants as consts +from yardstick.benchmark.core.testsuite import Testsuite +from yardstick.benchmark.core import Param LOG = logging.getLogger(__name__) LOG.setLevel(logging.DEBUG) @@ -13,6 +15,16 @@ LOG.setLevel(logging.DEBUG) class V2Testsuites(ApiResource): + def get(self): + param = Param({}) + testsuite_list = Testsuite().list_all(param) + + data = { + 'testsuites': testsuite_list + } + + return result_handler(consts.API_SUCCESS, data) + def post(self): return self._dispatch_post() diff --git a/yardstick/benchmark/core/testsuite.py b/yardstick/benchmark/core/testsuite.py new file mode 100644 index 000000000..e3940a0ba --- /dev/null +++ b/yardstick/benchmark/core/testsuite.py @@ -0,0 +1,42 @@ +############################################################################## +# Copyright (c) 2015 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 +############################################################################## + +""" Handler for yardstick command 'testcase' """ +from __future__ import absolute_import +from __future__ import print_function + +import os +import logging + +from yardstick.common import constants as consts + +LOG = logging.getLogger(__name__) + + +class Testsuite(object): + """Testcase commands. + + Set of commands to discover and display test cases. + """ + + def list_all(self, args): + """List existing test cases""" + + testsuite_list = self._get_testsuite_file_list() + + return testsuite_list + + def _get_testsuite_file_list(self): + try: + testsuite_files = sorted(os.listdir(consts.TESTSUITE_DIR)) + except OSError: + LOG.exception('Failed to list dir:\n%s\n', consts.TESTSUITE_DIR) + raise + + return testsuite_files |