aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/resources/v2/testsuites.py12
-rw-r--r--yardstick/benchmark/core/testsuite.py42
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