summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/cmd/result_collection_api.py112
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/cmd/server.py68
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/router/__init__.py1
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/router/url_mappings.py48
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/tests/unit/test_base.py24
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/tests/unit/test_result.py3
-rw-r--r--utils/test/result_collection_api/setup.cfg2
-rw-r--r--utils/test/result_collection_api/setup.py9
8 files changed, 125 insertions, 142 deletions
diff --git a/utils/test/result_collection_api/opnfv_testapi/cmd/result_collection_api.py b/utils/test/result_collection_api/opnfv_testapi/cmd/result_collection_api.py
deleted file mode 100644
index e59e28c28..000000000
--- a/utils/test/result_collection_api/opnfv_testapi/cmd/result_collection_api.py
+++ /dev/null
@@ -1,112 +0,0 @@
-##############################################################################
-# Copyright (c) 2015 Orange
-# guyrodrigue.koffi@orange.com / koffirodrigue@gmail.com
-# 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
-##############################################################################
-
-"""
-Pre-requisites:
- pip install motor
- pip install tornado
-
-We can launch the API with this file
-
-TODOs :
- - logging
- - json args validation with schemes
- - POST/PUT/DELETE for PODs
- - POST/PUT/GET/DELETE for installers, platforms (enrich results info)
- - count cases for GET on projects
- - count results for GET on cases
- - include objects
- - swagger documentation
- - setup file
- - results pagination
- - unit tests
-
-"""
-
-import argparse
-
-import tornado.ioloop
-import motor
-
-from opnfv_testapi.resources.handlers import VersionHandler
-from opnfv_testapi.resources.testcase_handlers import TestcaseCLHandler, \
- TestcaseGURHandler
-from opnfv_testapi.resources.pod_handlers import PodCLHandler, PodGURHandler
-from opnfv_testapi.resources.project_handlers import ProjectCLHandler, \
- ProjectGURHandler
-from opnfv_testapi.resources.result_handlers import ResultsCLHandler, \
- ResultsGURHandler
-from opnfv_testapi.resources.dashboard_handlers import DashboardHandler
-from opnfv_testapi.common.config import APIConfig
-from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
-
-# optionally get config file from command line
-parser = argparse.ArgumentParser()
-parser.add_argument("-c", "--config-file", dest='config_file',
- help="Config file location")
-args = parser.parse_args()
-CONF = APIConfig().parse(args.config_file)
-
-# connecting to MongoDB server, and choosing database
-client = motor.MotorClient(CONF.mongo_url)
-db = client[CONF.mongo_dbname]
-
-
-def make_app():
- return swagger.Application(
- [
- # GET /version => GET API version
- (r"/versions", VersionHandler),
-
- # few examples:
- # GET /api/v1/pods => Get all pods
- # GET /api/v1/pods/1 => Get details on POD 1
- (r"/api/v1/pods", PodCLHandler),
- (r"/api/v1/pods/([^/]+)", PodGURHandler),
-
- # few examples:
- # GET /projects
- # GET /projects/yardstick
- (r"/api/v1/projects", ProjectCLHandler),
- (r"/api/v1/projects/([^/]+)", ProjectGURHandler),
-
- # few examples
- # GET /projects/qtip/cases => Get cases for qtip
- (r"/api/v1/projects/([^/]+)/cases", TestcaseCLHandler),
- (r"/api/v1/projects/([^/]+)/cases/([^/]+)", TestcaseGURHandler),
-
- # new path to avoid a long depth
- # GET /results?project=functest&case=keystone.catalog&pod=1
- # => get results with optional filters
- # POST /results =>
- # Push results with mandatory request payload parameters
- # (project, case, and pod)
- (r"/api/v1/results", ResultsCLHandler),
- (r"/api/v1/results/([^/]+)", ResultsGURHandler),
-
- # Method to manage Dashboard ready results
- # GET /dashboard?project=functest&case=vPing&pod=opnfv-jump2
- # => get results in dasboard ready format
- # get /dashboard
- # => get the list of project with dashboard ready results
- (r"/dashboard/v1/results", DashboardHandler),
- ],
- db=db,
- debug=CONF.api_debug_on,
- )
-
-
-def main():
- application = make_app()
- application.listen(CONF.api_port)
- tornado.ioloop.IOLoop.current().start()
-
-
-if __name__ == "__main__":
- main()
diff --git a/utils/test/result_collection_api/opnfv_testapi/cmd/server.py b/utils/test/result_collection_api/opnfv_testapi/cmd/server.py
new file mode 100644
index 000000000..1031fbbb3
--- /dev/null
+++ b/utils/test/result_collection_api/opnfv_testapi/cmd/server.py
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2015 Orange
+# guyrodrigue.koffi@orange.com / koffirodrigue@gmail.com
+# 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
+##############################################################################
+
+"""
+Pre-requisites:
+ pip install motor
+ pip install tornado
+
+We can launch the API with this file
+
+TODOs :
+ - logging
+ - json args validation with schemes
+ - POST/PUT/DELETE for PODs
+ - POST/PUT/GET/DELETE for installers, platforms (enrich results info)
+ - count cases for GET on projects
+ - count results for GET on cases
+ - include objects
+ - swagger documentation
+ - setup file
+ - results pagination
+ - unit tests
+
+"""
+
+import argparse
+
+import tornado.ioloop
+import motor
+
+from opnfv_testapi.common.config import APIConfig
+from opnfv_testapi.tornado_swagger_ui.tornado_swagger import swagger
+from opnfv_testapi.router import url_mappings
+
+# optionally get config file from command line
+parser = argparse.ArgumentParser()
+parser.add_argument("-c", "--config-file", dest='config_file',
+ help="Config file location")
+args = parser.parse_args()
+CONF = APIConfig().parse(args.config_file)
+
+# connecting to MongoDB server, and choosing database
+client = motor.MotorClient(CONF.mongo_url)
+db = client[CONF.mongo_dbname]
+
+
+def make_app():
+ return swagger.Application(
+ url_mappings.mappings,
+ db=db,
+ debug=CONF.api_debug_on,
+ )
+
+
+def main():
+ application = make_app()
+ application.listen(CONF.api_port)
+ tornado.ioloop.IOLoop.current().start()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/utils/test/result_collection_api/opnfv_testapi/router/__init__.py b/utils/test/result_collection_api/opnfv_testapi/router/__init__.py
new file mode 100644
index 000000000..3ed9fd0f3
--- /dev/null
+++ b/utils/test/result_collection_api/opnfv_testapi/router/__init__.py
@@ -0,0 +1 @@
+__author__ = 'root'
diff --git a/utils/test/result_collection_api/opnfv_testapi/router/url_mappings.py b/utils/test/result_collection_api/opnfv_testapi/router/url_mappings.py
new file mode 100644
index 000000000..c299ada41
--- /dev/null
+++ b/utils/test/result_collection_api/opnfv_testapi/router/url_mappings.py
@@ -0,0 +1,48 @@
+from opnfv_testapi.resources.handlers import VersionHandler
+from opnfv_testapi.resources.testcase_handlers import TestcaseCLHandler, \
+ TestcaseGURHandler
+from opnfv_testapi.resources.pod_handlers import PodCLHandler, PodGURHandler
+from opnfv_testapi.resources.project_handlers import ProjectCLHandler, \
+ ProjectGURHandler
+from opnfv_testapi.resources.result_handlers import ResultsCLHandler, \
+ ResultsGURHandler
+from opnfv_testapi.resources.dashboard_handlers import DashboardHandler
+
+
+mappings = [
+ # GET /versions => GET API version
+ (r"/versions", VersionHandler),
+
+ # few examples:
+ # GET /api/v1/pods => Get all pods
+ # GET /api/v1/pods/1 => Get details on POD 1
+ (r"/api/v1/pods", PodCLHandler),
+ (r"/api/v1/pods/([^/]+)", PodGURHandler),
+
+ # few examples:
+ # GET /projects
+ # GET /projects/yardstick
+ (r"/api/v1/projects", ProjectCLHandler),
+ (r"/api/v1/projects/([^/]+)", ProjectGURHandler),
+
+ # few examples
+ # GET /projects/qtip/cases => Get cases for qtip
+ (r"/api/v1/projects/([^/]+)/cases", TestcaseCLHandler),
+ (r"/api/v1/projects/([^/]+)/cases/([^/]+)", TestcaseGURHandler),
+
+ # new path to avoid a long depth
+ # GET /results?project=functest&case=keystone.catalog&pod=1
+ # => get results with optional filters
+ # POST /results =>
+ # Push results with mandatory request payload parameters
+ # (project, case, and pod)
+ (r"/api/v1/results", ResultsCLHandler),
+ (r"/api/v1/results/([^/]+)", ResultsGURHandler),
+
+ # Method to manage Dashboard ready results
+ # GET /dashboard?project=functest&case=vPing&pod=opnfv-jump2
+ # => get results in dasboard ready format
+ # get /dashboard
+ # => get the list of project with dashboard ready results
+ (r"/dashboard/v1/results", DashboardHandler),
+]
diff --git a/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_base.py b/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_base.py
index 8f0c28488..01c43f0f7 100644
--- a/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_base.py
+++ b/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_base.py
@@ -3,15 +3,7 @@ import json
from tornado.web import Application
from tornado.testing import AsyncHTTPTestCase
-from opnfv_testapi.resources.pod_handlers import PodCLHandler, PodGURHandler
-from opnfv_testapi.resources.project_handlers import ProjectCLHandler, \
- ProjectGURHandler
-from opnfv_testapi.resources.handlers import VersionHandler
-from opnfv_testapi.resources.testcase_handlers import TestcaseCLHandler, \
- TestcaseGURHandler
-from opnfv_testapi.resources.result_handlers import ResultsCLHandler, \
- ResultsGURHandler
-from opnfv_testapi.resources.dashboard_handlers import DashboardHandler
+from opnfv_testapi.router import url_mappings
from opnfv_testapi.resources.models import CreateResponse
import fake_pymongo
@@ -32,19 +24,7 @@ class TestBase(AsyncHTTPTestCase):
def get_app(self):
return Application(
- [
- (r"/versions", VersionHandler),
- (r"/api/v1/pods", PodCLHandler),
- (r"/api/v1/pods/([^/]+)", PodGURHandler),
- (r"/api/v1/projects", ProjectCLHandler),
- (r"/api/v1/projects/([^/]+)", ProjectGURHandler),
- (r"/api/v1/projects/([^/]+)/cases", TestcaseCLHandler),
- (r"/api/v1/projects/([^/]+)/cases/([^/]+)",
- TestcaseGURHandler),
- (r"/api/v1/results", ResultsCLHandler),
- (r"/api/v1/results/([^/]+)", ResultsGURHandler),
- (r"/dashboard/v1/results", DashboardHandler),
- ],
+ url_mappings.mappings,
db=fake_pymongo,
debug=True,
)
diff --git a/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_result.py b/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_result.py
index 5e424f8f0..23a745fe0 100644
--- a/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_result.py
+++ b/utils/test/result_collection_api/opnfv_testapi/tests/unit/test_result.py
@@ -7,7 +7,8 @@ from opnfv_testapi.resources.project_models import ProjectCreateRequest
from opnfv_testapi.resources.testcase_models import TestcaseCreateRequest
from opnfv_testapi.resources.result_models import ResultCreateRequest, \
TestResult, TestResults
-from opnfv_testapi.common.constants import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND
+from opnfv_testapi.common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
+ HTTP_NOT_FOUND
__author__ = '__serena__'
diff --git a/utils/test/result_collection_api/setup.cfg b/utils/test/result_collection_api/setup.cfg
index b0e008a85..702a41fc0 100644
--- a/utils/test/result_collection_api/setup.cfg
+++ b/utils/test/result_collection_api/setup.cfg
@@ -36,7 +36,7 @@ data_files =
[entry_points]
console_scripts =
- opnfv-testapi = opnfv_testapi.cmd.result_collection_api:main
+ opnfv-testapi = opnfv_testapi.cmd.server:main
[egg_info]
tag_build =
diff --git a/utils/test/result_collection_api/setup.py b/utils/test/result_collection_api/setup.py
index 6f3b45f62..15dda961f 100644
--- a/utils/test/result_collection_api/setup.py
+++ b/utils/test/result_collection_api/setup.py
@@ -1,11 +1,8 @@
-__author__ = 'serena'
-
import setuptools
-try:
- import multiprocessing
-except ImportError:
- pass
+
+__author__ = 'serena'
+
setuptools.setup(
setup_requires=['pbr>=1.8'],