summaryrefslogtreecommitdiffstats
path: root/utils/test/reporting/api
diff options
context:
space:
mode:
authorTrevor Bramwell <tbramwell@linuxfoundation.org>2017-11-21 00:46:35 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-11-21 00:46:35 +0000
commit174b299271189496bae4c4d6727ea26a7a098756 (patch)
treeb063e18c795988e38e1eb4afa74d4cbf9524f057 /utils/test/reporting/api
parentfd65ec9e84ae025e6b903c403514405ba0bb0a61 (diff)
parentf11f26d23dabde24b0bcd67ac81b094aa89eb6c9 (diff)
Merge "Remove 'utils/test' Directory and update INFO"
Diffstat (limited to 'utils/test/reporting/api')
-rw-r--r--utils/test/reporting/api/__init__.py0
-rw-r--r--utils/test/reporting/api/conf.py1
-rw-r--r--utils/test/reporting/api/handlers/__init__.py19
-rw-r--r--utils/test/reporting/api/handlers/landing.py171
-rw-r--r--utils/test/reporting/api/handlers/projects.py27
-rw-r--r--utils/test/reporting/api/handlers/testcases.py33
-rw-r--r--utils/test/reporting/api/server.py27
-rw-r--r--utils/test/reporting/api/urls.py20
8 files changed, 0 insertions, 298 deletions
diff --git a/utils/test/reporting/api/__init__.py b/utils/test/reporting/api/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/utils/test/reporting/api/__init__.py
+++ /dev/null
diff --git a/utils/test/reporting/api/conf.py b/utils/test/reporting/api/conf.py
deleted file mode 100644
index 5897d4f97..000000000
--- a/utils/test/reporting/api/conf.py
+++ /dev/null
@@ -1 +0,0 @@
-base_url = 'http://testresults.opnfv.org/test/api/v1'
diff --git a/utils/test/reporting/api/handlers/__init__.py b/utils/test/reporting/api/handlers/__init__.py
deleted file mode 100644
index bcda66438..000000000
--- a/utils/test/reporting/api/handlers/__init__.py
+++ /dev/null
@@ -1,19 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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
-##############################################################################
-from tornado.web import RequestHandler
-
-
-class BaseHandler(RequestHandler):
- def _set_header(self):
- self.set_header('Access-Control-Allow-Origin', '*')
- self.set_header('Access-Control-Allow-Headers',
- 'Content-Type, Content-Length, Authorization, \
- Accept, X-Requested-With , PRIVATE-TOKEN')
- self.set_header('Access-Control-Allow-Methods',
- 'PUT, POST, GET, DELETE, OPTIONS')
diff --git a/utils/test/reporting/api/handlers/landing.py b/utils/test/reporting/api/handlers/landing.py
deleted file mode 100644
index 0bf602dc9..000000000
--- a/utils/test/reporting/api/handlers/landing.py
+++ /dev/null
@@ -1,171 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 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
-##############################################################################
-import requests
-import time
-
-from tornado.escape import json_encode
-from tornado.escape import json_decode
-
-from api.handlers import BaseHandler
-from api import conf
-
-
-class FiltersHandler(BaseHandler):
- def get(self):
- self._set_header()
-
- filters = {
- 'filters': {
- 'status': ['success', 'warning', 'danger'],
- 'projects': ['functest', 'yardstick'],
- 'installers': ['apex', 'compass', 'fuel', 'joid'],
- 'version': ['master', 'colorado', 'danube'],
- 'loops': ['daily', 'weekly', 'monthly'],
- 'time': ['10 days', '30 days']
- }
- }
- return self.write(json_encode(filters))
-
-
-class ScenariosHandler(BaseHandler):
- def post(self):
- self._set_header()
-
- body = json_decode(self.request.body)
- args = self._get_args(body)
-
- scenarios = self._get_result_data(self._get_scenarios(), args)
-
- return self.write(json_encode(dict(scenarios=scenarios)))
-
- def _get_result_data(self, data, args):
- data = self._filter_status(data, args)
- return {s: self._get_scenario_result(s, data[s], args) for s in data}
-
- def _filter_status(self, data, args):
- return {k: v for k, v in data.items() if v['status'] in args['status']}
-
- def _get_scenario_result(self, scenario, data, args):
- result = {
- 'status': data.get('status'),
- 'installers': self._get_installers_result(data, args)
- }
- return result
-
- def _get_installers_result(self, data, args):
- func = self._get_installer_result
- return {k: func(data.get(k, {}), args) for k in args['installers']}
-
- def _get_installer_result(self, data, args):
- return self._get_version_data(data.get(args['version'], {}), args)
-
- def _get_version_data(self, data, args):
- return {k: self._get_project_data(data.get(k, {}))
- for k in args['projects']}
-
- def _get_project_data(self, data):
- atom = {
- 'score': data.get('score', ''),
- 'status': data.get('status', '')
- }
-
- return atom
-
- def _get_scenarios(self):
- url = '{}/scenarios'.format(conf.base_url)
- resp = requests.get(url).json()
- data = self._change_to_utf8(resp).get('scenarios', {})
- return {a.get('name'): self._get_scenario(a.get('installers', [])
- ) for a in data}
-
- def _get_scenario(self, data):
- installers = {a.get('installer'): self._get_installer(a.get('versions',
- [])
- ) for a in data}
- scenario = {
- 'status': self._get_status()
- }
- scenario.update(installers)
-
- return scenario
-
- def _get_status(self):
- return 'success'
-
- def _get_installer(self, data):
- return {a.get('version'): self._get_version(a.get('projects'))
- for a in data}
-
- def _get_version(self, data):
- return {a.get('project'): self._get_project(a) for a in data}
-
- def _get_project(self, data):
- scores = data.get('scores', [])
- trusts = data.get('trust_indicators', [])
-
- try:
- date = sorted(scores, reverse=True)[0].get('date')
- except IndexError:
- data = time.time()
-
- try:
- score = sorted(scores, reverse=True)[0].get('score')
- except IndexError:
- score = None
-
- try:
- status = sorted(trusts, reverse=True)[0].get('status')
- except IndexError:
- status = None
-
- return {'date': date, 'score': score, 'status': status}
-
- def _change_to_utf8(self, obj):
- if isinstance(obj, dict):
- return {str(k): self._change_to_utf8(v) for k, v in obj.items()}
- elif isinstance(obj, list):
- return [self._change_to_utf8(ele) for ele in obj]
- else:
- try:
- new = eval(obj)
- if isinstance(new, int):
- return obj
- return self._change_to_utf8(new)
- except (NameError, TypeError, SyntaxError):
- return str(obj)
-
- def _get_args(self, body):
- status = self._get_status_args(body)
- projects = self._get_projects_args(body)
- installers = self._get_installers_args(body)
-
- args = {
- 'status': status,
- 'projects': projects,
- 'installers': installers,
- 'version': body.get('version', 'master').lower(),
- 'loops': body.get('loops', 'daily').lower(),
- 'time': body.get('times', '10 days')[:2].lower()
- }
- return args
-
- def _get_status_args(self, body):
- status_all = ['success', 'warning', 'danger']
- status = [a.lower() for a in body.get('status', ['all'])]
- return status_all if 'all' in status else status
-
- def _get_projects_args(self, body):
- project_all = ['functest', 'yardstick']
- projects = [a.lower() for a in body.get('projects', ['all'])]
- return project_all if 'all' in projects else projects
-
- def _get_installers_args(self, body):
- installer_all = ['apex', 'compass', 'fuel', 'joid']
- installers = [a.lower() for a in body.get('installers', ['all'])]
- return installer_all if 'all' in installers else installers
diff --git a/utils/test/reporting/api/handlers/projects.py b/utils/test/reporting/api/handlers/projects.py
deleted file mode 100644
index 02412cd62..000000000
--- a/utils/test/reporting/api/handlers/projects.py
+++ /dev/null
@@ -1,27 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.apaiche.org/licenses/LICENSE-2.0
-##############################################################################
-import requests
-
-from tornado.escape import json_encode
-
-from api.handlers import BaseHandler
-from api import conf
-
-
-class Projects(BaseHandler):
- def get(self):
- self._set_header()
-
- url = '{}/projects'.format(conf.base_url)
- projects = requests.get(url).json().get('projects', {})
-
- project_url = 'https://wiki.opnfv.org/display/{}'
- data = {p['name']: project_url.format(p['name']) for p in projects}
-
- return self.write(json_encode(data))
diff --git a/utils/test/reporting/api/handlers/testcases.py b/utils/test/reporting/api/handlers/testcases.py
deleted file mode 100644
index 2b9118623..000000000
--- a/utils/test/reporting/api/handlers/testcases.py
+++ /dev/null
@@ -1,33 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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
-##############################################################################
-import requests
-
-from tornado.escape import json_encode
-
-from api.handlers import BaseHandler
-from api import conf
-
-
-class TestCases(BaseHandler):
- def get(self, project):
- self._set_header()
-
- url = '{}/projects/{}/cases'.format(conf.base_url, project)
- cases = requests.get(url).json().get('testcases', [])
- data = [{t['name']: t['catalog_description']} for t in cases]
- self.write(json_encode(data))
-
-
-class TestCase(BaseHandler):
- def get(self, project, name):
- self._set_header()
-
- url = '{}/projects/{}/cases/{}'.format(conf.base_url, project, name)
- data = requests.get(url).json()
- self.write(json_encode(data))
diff --git a/utils/test/reporting/api/server.py b/utils/test/reporting/api/server.py
deleted file mode 100644
index e340b0181..000000000
--- a/utils/test/reporting/api/server.py
+++ /dev/null
@@ -1,27 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 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
-##############################################################################
-import tornado.ioloop
-import tornado.web
-from tornado.options import define
-from tornado.options import options
-
-from api.urls import mappings
-
-define("port", default=8000, help="run on the given port", type=int)
-
-
-def main():
- tornado.options.parse_command_line()
- application = tornado.web.Application(mappings)
- application.listen(options.port)
- tornado.ioloop.IOLoop.current().start()
-
-
-if __name__ == "__main__":
- main()
diff --git a/utils/test/reporting/api/urls.py b/utils/test/reporting/api/urls.py
deleted file mode 100644
index a5228b2d4..000000000
--- a/utils/test/reporting/api/urls.py
+++ /dev/null
@@ -1,20 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 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
-##############################################################################
-from api.handlers import landing
-from api.handlers import projects
-from api.handlers import testcases
-
-mappings = [
- (r"/landing-page/filters", landing.FiltersHandler),
- (r"/landing-page/scenarios", landing.ScenariosHandler),
-
- (r"/projects-page/projects", projects.Projects),
- (r"/projects/([^/]+)/cases", testcases.TestCases),
- (r"/projects/([^/]+)/cases/([^/]+)", testcases.TestCase)
-]