aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKanagaraj Manickam <kanagaraj.manickam@huawei.com>2020-09-25 20:20:42 +0530
committerKanagaraj Manickam <kanagaraj.manickam@huawei.com>2020-10-19 22:19:56 +0530
commit7e15b15dbd4631960c28fcc4c32dba5c3a1b7e60 (patch)
treed25662960456d360c1eeb9d2e05552166520a5a9
parent5304db69771676e5b87f68ca79239daef33705d4 (diff)
Added Test Upload Api
Issue-ID: DOVETAIL-801 Signed-off-by: Kanagaraj Manickam <kanagaraj.manickam@huawei.com> Change-Id: Ib15d3ad5eba97d6b1a601dc2cfaa71d9815ccde4
-rw-r--r--opnfv_testapi/resources/test_handlers.py99
-rw-r--r--opnfv_testapi/router/url_mappings.py2
2 files changed, 101 insertions, 0 deletions
diff --git a/opnfv_testapi/resources/test_handlers.py b/opnfv_testapi/resources/test_handlers.py
index babce7d..36c4e8b 100644
--- a/opnfv_testapi/resources/test_handlers.py
+++ b/opnfv_testapi/resources/test_handlers.py
@@ -9,6 +9,7 @@
import logging
import os
import json
+import memcache
from tornado import web
from tornado import gen
@@ -360,3 +361,101 @@ class TestsGURHandler(GenericTestHandler):
logging.debug('not found')
raise gen.Return((False, message.no_auth()))
raise gen.Return((True, {}))
+#updated new test appi
+class TestsUploadDataHandler(GenericTestHandler):
+ @swagger.operation(nickname="queryTests")
+ @web.asynchronous
+ @gen.coroutine
+ def get(self):
+ """
+ @description: Retrieve result(s) for a test project
+ on a specific pod.
+ @notes: Retrieve result(s) for a test project on a specific pod.
+ Available filters for this request are :
+ - id : Test id
+ - period : x last days, incompatible with from/to
+ - from : starting time in 2016-01-01 or 2016-01-01 00:01:23
+ - to : ending time in 2016-01-01 or 2016-01-01 00:01:23
+ - signed : get logined user result
+
+ GET /results/project=functest&case=vPing&version=Arno-R1 \
+ &pod=pod_name&period=15&signed
+ @return 200: all test results consist with query,
+ empty list if no result is found
+ @rtype: L{Tests}
+ """
+ def descend_limit():
+ descend = self.get_query_argument('descend', 'true')
+ return -1 if descend.lower() == 'true' else 1
+
+ def last_limit():
+ return self.get_int('last', self.get_query_argument('last', 0))
+
+ def page_limit():
+ return self.get_int('page', self.get_query_argument('page', 0))
+
+ limitations = {
+ 'sort': {'_id': descend_limit()},
+ 'last': last_limit(),
+ 'page': page_limit(),
+ 'per_page': CONF.api_results_per_page
+ }
+
+ curr_user = self.get_secure_cookie(auth_const.OPENID)
+ if curr_user is None:
+ raises.Unauthorized(message.no_auth())
+
+ review = self.request.query_arguments.pop('review', None)
+ query = yield self.set_query()
+ if review:
+ yield self._list(query=query, res_op=self.check_review,
+ **limitations)
+ else:
+ yield self._list(query=query, **limitations)
+ logging.debug('list end')
+
+ @gen.coroutine
+ def check_review(self, data, *args):
+ current_user = self.get_secure_cookie(auth_const.OPENID)
+ for test in data:
+ query = {'reviewer_openid': current_user, 'test_id': test['id']}
+ ret = yield dbapi.db_find_one('reviews', query)
+ if ret:
+ test['voted'] = 'true'
+ else:
+ test['voted'] = 'false'
+
+ raise gen.Return({self.table: data})
+
+ @swagger.operation(nickname="createTest")
+ @web.asynchronous
+ def post(self):
+ """
+ @description: create a test
+ @param body: test to be created
+ @type body: L{TestCreateRequest}
+ @in body: body
+ @rtype: L{CreateResponse}
+ @return 200: test is created.
+ @raise 404: pod/project/testcase not exist
+ @raise 400: body/pod_name/project_name/case_name not provided
+ """
+ openid = self.request.headers._dict['Openid']
+ if openid:
+ self.json_args['owner'] = openid
+
+ self._post()
+
+ @gen.coroutine
+ def _post(self):
+ miss_fields = []
+ carriers = []
+ query = {'owner': self.json_args['owner'], 'id': self.json_args['id']}
+ ret, msg = yield self._check_if_exists(table="tests", query=query)
+ if ret:
+ self.finish_request({'code': '403', 'msg': msg})
+ return
+
+ if self.is_onap:
+ self.json_args['is_onap'] = 'true'
+ self._create(miss_fields=miss_fields, carriers=carriers)
diff --git a/opnfv_testapi/router/url_mappings.py b/opnfv_testapi/router/url_mappings.py
index 2846819..49c6004 100644
--- a/opnfv_testapi/router/url_mappings.py
+++ b/opnfv_testapi/router/url_mappings.py
@@ -76,4 +76,6 @@ onap_mappings = [
(r'/api/v1/onap/reviews', review_handlers.ReviewsCLHandler),
(r'/api/v1/onap/results/upload/data', result_handlers.ResultsFileUploadHandler,
dict(is_onap=True)),
+ (r'/api/v1/onap/tests/upload/data', test_handlers.TestsUploadDataHandler,
+ dict(is_onap=True)),
]