summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--utils/test/result_collection_api/etc/config.ini6
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/cmd/server.py2
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/common/config.py12
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/tornado_swagger/settings.py6
-rw-r--r--utils/test/result_collection_api/opnfv_testapi/tornado_swagger/views.py18
5 files changed, 26 insertions, 18 deletions
diff --git a/utils/test/result_collection_api/etc/config.ini b/utils/test/result_collection_api/etc/config.ini
index f703cc6c4..16346bf36 100644
--- a/utils/test/result_collection_api/etc/config.ini
+++ b/utils/test/result_collection_api/etc/config.ini
@@ -5,8 +5,12 @@
# Mongo auth url => mongodb://user1:pwd1@host1/?authSource=db1
url = mongodb://127.0.0.1:27017/
dbname = test_results_collection
+
[api]
# Listening port
port = 8000
# With debug_on set to true, error traces will be shown in HTTP responses
-debug = True \ No newline at end of file
+debug = True
+
+[swagger]
+base_url = http://testresults.opnfv.org/test \ No newline at end of file
diff --git a/utils/test/result_collection_api/opnfv_testapi/cmd/server.py b/utils/test/result_collection_api/opnfv_testapi/cmd/server.py
index 9022b9aa1..c3d734607 100644
--- a/utils/test/result_collection_api/opnfv_testapi/cmd/server.py
+++ b/utils/test/result_collection_api/opnfv_testapi/cmd/server.py
@@ -49,6 +49,8 @@ CONF = APIConfig().parse(args.config_file)
client = motor.MotorClient(CONF.mongo_url)
db = client[CONF.mongo_dbname]
+swagger.docs(base_url=CONF.swagger_base_url)
+
def make_app():
return swagger.Application(
diff --git a/utils/test/result_collection_api/opnfv_testapi/common/config.py b/utils/test/result_collection_api/opnfv_testapi/common/config.py
index c444e67e3..ecab88ae3 100644
--- a/utils/test/result_collection_api/opnfv_testapi/common/config.py
+++ b/utils/test/result_collection_api/opnfv_testapi/common/config.py
@@ -37,6 +37,7 @@ class APIConfig:
self.api_port = None
self.api_debug_on = None
self._parser = None
+ self.swagger_base_url = None
def _get_parameter(self, section, param):
try:
@@ -78,6 +79,7 @@ class APIConfig:
obj.api_port = obj._get_int_parameter("api", "port")
obj.api_debug_on = obj._get_bool_parameter("api", "debug")
+ obj.swagger_base_url = obj._get_parameter("swagger", "base_url")
return obj
@@ -85,7 +87,9 @@ class APIConfig:
return "mongo_url = %s \n" \
"mongo_dbname = %s \n" \
"api_port = %s \n" \
- "api_debug_on = %s \n" % (self.mongo_url,
- self.mongo_dbname,
- self.api_port,
- self.api_debug_on)
+ "api_debug_on = %s \n" \
+ "swagger_base_url = %s \n" % (self.mongo_url,
+ self.mongo_dbname,
+ self.api_port,
+ self.api_debug_on,
+ self.swagger_base_url)
diff --git a/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/settings.py b/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/settings.py
index 001d55820..88d0d0f88 100644
--- a/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/settings.py
+++ b/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/settings.py
@@ -16,7 +16,7 @@ STATIC_PATH = os.path.join(os.path.dirname(os.path.normpath(__file__)),
'static')
default_settings = {
- 'base_url': '/',
+ 'base_url': '',
'static_path': STATIC_PATH,
'swagger_prefix': '/swagger',
'api_version': 'v1.0',
@@ -26,3 +26,7 @@ default_settings = {
}
models = []
+
+
+def basePath():
+ return default_settings.get('base_url')
diff --git a/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/views.py b/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/views.py
index 7190c671b..25083195b 100644
--- a/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/views.py
+++ b/utils/test/result_collection_api/opnfv_testapi/tornado_swagger/views.py
@@ -6,15 +6,14 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-import urlparse
-import json
import inspect
+import json
-import tornado.web
import tornado.template
+import tornado.web
from settings import SWAGGER_VERSION, SWAGGER_API_LIST, SWAGGER_API_SPEC
-from settings import models
+from settings import models, basePath
def json_dumps(obj, pretty=False):
@@ -30,9 +29,7 @@ class SwaggerUIHandler(tornado.web.RequestHandler):
return self.static_path
def get(self):
- discovery_url = \
- urlparse.urljoin(self.request.full_url(),
- self.reverse_url(SWAGGER_API_LIST))
+ discovery_url = basePath() + self.reverse_url(SWAGGER_API_LIST)
self.render('index.html', discovery_url=discovery_url)
@@ -43,11 +40,10 @@ class SwaggerResourcesHandler(tornado.web.RequestHandler):
def get(self):
self.set_header('content-type', 'application/json')
- u = urlparse.urlparse(self.request.full_url())
resources = {
'apiVersion': self.api_version,
'swaggerVersion': SWAGGER_VERSION,
- 'basePath': '%s://%s' % (u.scheme, u.netloc),
+ 'basePath': basePath(),
'produces': ["application/json"],
'description': 'Test Api Spec',
'apis': [{
@@ -70,12 +66,10 @@ class SwaggerApiHandler(tornado.web.RequestHandler):
if apis is None:
raise tornado.web.HTTPError(404)
- base_path = urlparse.urljoin(self.request.full_url(),
- self.base_url)[:-1]
specs = {
'apiVersion': self.api_version,
'swaggerVersion': SWAGGER_VERSION,
- 'basePath': base_path,
+ 'basePath': basePath(),
'apis': [self.__get_api_spec__(path, spec, operations)
for path, spec, operations in apis],
'models': self.__get_models_spec(models)