From 376a81e9c5f405edebf260851177a42551dec573 Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Thu, 20 Jul 2017 04:13:14 +0000 Subject: 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 --- api/resources/v2/testsuites.py | 12 ++++++++++ yardstick/benchmark/core/testsuite.py | 42 +++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 yardstick/benchmark/core/testsuite.py 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 -- cgit 1.2.3-korg