diff options
author | Trevor Bramwell <tbramwell@linuxfoundation.org> | 2017-11-21 00:46:35 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-11-21 00:46:35 +0000 |
commit | 174b299271189496bae4c4d6727ea26a7a098756 (patch) | |
tree | b063e18c795988e38e1eb4afa74d4cbf9524f057 /utils/test/reporting/api | |
parent | fd65ec9e84ae025e6b903c403514405ba0bb0a61 (diff) | |
parent | f11f26d23dabde24b0bcd67ac81b094aa89eb6c9 (diff) |
Merge "Remove 'utils/test' Directory and update INFO"
Diffstat (limited to 'utils/test/reporting/api')
-rw-r--r-- | utils/test/reporting/api/__init__.py | 0 | ||||
-rw-r--r-- | utils/test/reporting/api/conf.py | 1 | ||||
-rw-r--r-- | utils/test/reporting/api/handlers/__init__.py | 19 | ||||
-rw-r--r-- | utils/test/reporting/api/handlers/landing.py | 171 | ||||
-rw-r--r-- | utils/test/reporting/api/handlers/projects.py | 27 | ||||
-rw-r--r-- | utils/test/reporting/api/handlers/testcases.py | 33 | ||||
-rw-r--r-- | utils/test/reporting/api/server.py | 27 | ||||
-rw-r--r-- | utils/test/reporting/api/urls.py | 20 |
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) -] |