diff options
Diffstat (limited to 'utils/test/reporting/api')
-rw-r--r-- | utils/test/reporting/api/api/__init__.py (renamed from utils/test/reporting/api/__init__.py) | 0 | ||||
-rw-r--r-- | utils/test/reporting/api/api/conf.py | 1 | ||||
-rw-r--r-- | utils/test/reporting/api/api/handlers/__init__.py | 19 | ||||
-rw-r--r-- | utils/test/reporting/api/api/handlers/landing.py (renamed from utils/test/reporting/api/handlers/landing.py) | 14 | ||||
-rw-r--r-- | utils/test/reporting/api/api/handlers/projects.py | 27 | ||||
-rw-r--r-- | utils/test/reporting/api/api/handlers/testcases.py | 33 | ||||
-rw-r--r-- | utils/test/reporting/api/api/server.py (renamed from utils/test/reporting/api/server.py) | 2 | ||||
-rw-r--r-- | utils/test/reporting/api/api/urls.py (renamed from utils/test/reporting/api/urls.py) | 10 | ||||
-rw-r--r-- | utils/test/reporting/api/handlers/__init__.py | 0 | ||||
-rwxr-xr-x | utils/test/reporting/api/install.sh | 3 | ||||
-rw-r--r-- | utils/test/reporting/api/requirements.txt | 3 | ||||
-rw-r--r-- | utils/test/reporting/api/setup.cfg | 32 | ||||
-rw-r--r-- | utils/test/reporting/api/setup.py | 9 |
13 files changed, 136 insertions, 17 deletions
diff --git a/utils/test/reporting/api/__init__.py b/utils/test/reporting/api/api/__init__.py index e69de29bb..e69de29bb 100644 --- a/utils/test/reporting/api/__init__.py +++ b/utils/test/reporting/api/api/__init__.py diff --git a/utils/test/reporting/api/api/conf.py b/utils/test/reporting/api/api/conf.py new file mode 100644 index 000000000..5897d4f97 --- /dev/null +++ b/utils/test/reporting/api/api/conf.py @@ -0,0 +1 @@ +base_url = 'http://testresults.opnfv.org/test/api/v1' diff --git a/utils/test/reporting/api/api/handlers/__init__.py b/utils/test/reporting/api/api/handlers/__init__.py new file mode 100644 index 000000000..bcda66438 --- /dev/null +++ b/utils/test/reporting/api/api/handlers/__init__.py @@ -0,0 +1,19 @@ +############################################################################## +# 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/api/handlers/landing.py index ae1fd2037..749916fb6 100644 --- a/utils/test/reporting/api/handlers/landing.py +++ b/utils/test/reporting/api/api/handlers/landing.py @@ -8,19 +8,11 @@ ############################################################################## import requests -from tornado.web import RequestHandler from tornado.escape import json_encode from tornado.escape import json_decode - -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') +from api.handlers import BaseHandler +from api import conf class FiltersHandler(BaseHandler): @@ -85,7 +77,7 @@ class ScenariosHandler(BaseHandler): return atom def _get_scenarios(self): - url = 'http://testresults.opnfv.org/test/api/v1/scenarios' + 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', []) diff --git a/utils/test/reporting/api/api/handlers/projects.py b/utils/test/reporting/api/api/handlers/projects.py new file mode 100644 index 000000000..02412cd62 --- /dev/null +++ b/utils/test/reporting/api/api/handlers/projects.py @@ -0,0 +1,27 @@ +############################################################################## +# 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/api/handlers/testcases.py b/utils/test/reporting/api/api/handlers/testcases.py new file mode 100644 index 000000000..110ac4c26 --- /dev/null +++ b/utils/test/reporting/api/api/handlers/testcases.py @@ -0,0 +1,33 @@ +############################################################################## +# 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'] 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/api/server.py index 0b00e9389..e340b0181 100644 --- a/utils/test/reporting/api/server.py +++ b/utils/test/reporting/api/api/server.py @@ -11,7 +11,7 @@ import tornado.web from tornado.options import define from tornado.options import options -from urls import mappings +from api.urls import mappings define("port", default=8000, help="run on the given port", type=int) diff --git a/utils/test/reporting/api/urls.py b/utils/test/reporting/api/api/urls.py index fcfb2d795..a5228b2d4 100644 --- a/utils/test/reporting/api/urls.py +++ b/utils/test/reporting/api/api/urls.py @@ -6,9 +6,15 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from handlers import landing +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"/landing-page/scenarios", landing.ScenariosHandler), + + (r"/projects-page/projects", projects.Projects), + (r"/projects/([^/]+)/cases", testcases.TestCases), + (r"/projects/([^/]+)/cases/([^/]+)", testcases.TestCase) ] diff --git a/utils/test/reporting/api/handlers/__init__.py b/utils/test/reporting/api/handlers/__init__.py deleted file mode 100644 index e69de29bb..000000000 --- a/utils/test/reporting/api/handlers/__init__.py +++ /dev/null diff --git a/utils/test/reporting/api/install.sh b/utils/test/reporting/api/install.sh deleted file mode 100755 index 55d6b77ec..000000000 --- a/utils/test/reporting/api/install.sh +++ /dev/null @@ -1,3 +0,0 @@ -apt-get install -y python-pip -pip install tornado -pip install requests diff --git a/utils/test/reporting/api/requirements.txt b/utils/test/reporting/api/requirements.txt new file mode 100644 index 000000000..12ad6881b --- /dev/null +++ b/utils/test/reporting/api/requirements.txt @@ -0,0 +1,3 @@ +tornado==4.4.2 +requests==2.1.0 + diff --git a/utils/test/reporting/api/setup.cfg b/utils/test/reporting/api/setup.cfg new file mode 100644 index 000000000..53d1092b9 --- /dev/null +++ b/utils/test/reporting/api/setup.cfg @@ -0,0 +1,32 @@ +[metadata] +name = reporting + +author = JackChan +author-email = chenjiankun1@huawei.com + +classifier = + Environment :: opnfv + Intended Audience :: Information Technology + Intended Audience :: System Administrators + License :: OSI Approved :: Apache Software License + Operating System :: POSIX :: Linux + Programming Language :: Python + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.7 + +[global] +setup-hooks = + pbr.hooks.setup_hook + +[files] +packages = + api + +[entry_points] +console_scripts = + api = api.server:main + +[egg_info] +tag_build = +tag_date = 0 +tag_svn_revision = 0 diff --git a/utils/test/reporting/api/setup.py b/utils/test/reporting/api/setup.py new file mode 100644 index 000000000..d97481642 --- /dev/null +++ b/utils/test/reporting/api/setup.py @@ -0,0 +1,9 @@ +import setuptools + + +__author__ = 'JackChan' + + +setuptools.setup( + setup_requires=['pbr>=1.8'], + pbr=True) |