From: chenjiankun Date: Mon, 31 Jul 2017 02:49:12 +0000 (+0000) Subject: Add task-args(from yaml file) candidates in /api/v2/yardstick/testcases API X-Git-Tag: opnfv-5.0.RC1~312^2 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F91%2F38391%2F2;p=yardstick.git 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 --- 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