+++ /dev/null
-##############################################################################
-# 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()
--- /dev/null
+##############################################################################
+# 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()
--- /dev/null
+__author__ = 'root'
--- /dev/null
+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),
+]
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
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,
)
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__'
[entry_points]
console_scripts =
- opnfv-testapi = opnfv_testapi.cmd.result_collection_api:main
+ opnfv-testapi = opnfv_testapi.cmd.server:main
[egg_info]
tag_build =
-__author__ = 'serena'
-
import setuptools
-try:
- import multiprocessing
-except ImportError:
- pass
+
+__author__ = 'serena'
+
setuptools.setup(
setup_requires=['pbr>=1.8'],