summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchenjiankun <chenjiankun1@huawei.com>2017-07-31 02:49:12 +0000
committerJack Chan <chenjiankun1@huawei.com>2017-08-02 01:00:12 +0000
commitd5ff38b3ff3309cb1fed11266c98aca23001ea44 (patch)
treea54024697405526058c0758fe79e0bc8d1cb5920
parent5abe4fe013a14c528bfb1e0ff4c8bcb9b8817551 (diff)
Add task-args(from yaml file) candidates in /api/v2/yardstick/testcases API
JIRA: YARDSTICK-766 We have the demand to get all task-args candidates in test case yaml file, so that user get easily change it. The response will like: { 'status': 1, 'result': { 'testcase': case content, 'args': { 'image': {'description': '', 'type': 'String'} } } } In this patch, I add jinja2schema 0.1.4 in requirements.txt. Change-Id: I450082402370add5ab29090286f026fe3cc8c36e Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
-rw-r--r--api/resources/v2/testcases.py7
-rw-r--r--requirements.txt1
2 files changed, 7 insertions, 1 deletions
diff --git a/api/resources/v2/testcases.py b/api/resources/v2/testcases.py
index b47a8f6b7..316ef2664 100644
--- a/api/resources/v2/testcases.py
+++ b/api/resources/v2/testcases.py
@@ -10,6 +10,8 @@ import logging
import errno
import os
+import jinja2schema
+
from api import ApiResource
from yardstick.common.utils import result_handler
from yardstick.common import constants as consts
@@ -56,7 +58,10 @@ class V2Testcase(ApiResource):
if e.errno == errno.ENOENT:
return result_handler(consts.API_ERROR, 'case does not exist')
- return result_handler(consts.API_SUCCESS, {'testcase': data})
+ options = {k: {'description': '', 'type': v.__class__.__name__}
+ for k, v in jinja2schema.infer(data).items()}
+
+ return result_handler(consts.API_SUCCESS, {'testcase': data, 'args': options})
def delete(self, case_name):
case_path = os.path.join(consts.TESTCASE_DIR, '{}.yaml'.format(case_name))
diff --git a/requirements.txt b/requirements.txt
index 2bcc4dfa7..d03c4377f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -38,6 +38,7 @@ iso8601==0.1.11
jsonpatch==1.15
jsonpointer==1.10
jsonschema==2.5.1
+jinja2schema==0.1.4
keystoneauth1==2.18.0
kubernetes==3.0.0a1
linecache2==1.0.0