refactor static_path to accomodate web portal 65/34665/8
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Fri, 12 May 2017 10:33:00 +0000 (18:33 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Wed, 17 May 2017 08:43:12 +0000 (16:43 +0800)
move tornado_swagger/static to opnfv_testapi/static
move swagger related 3rd libs to 3rd_party/swagger

Change-Id: I32bba10584c99d13687b93f32577e37581db0c63
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
38 files changed:
utils/test/testapi/3rd_party/static/.gitignore [deleted file]
utils/test/testapi/3rd_party/static/swagger/css/highlight.default.css [moved from utils/test/testapi/3rd_party/static/css/highlight.default.css with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/css/hightlight.default.css [moved from utils/test/testapi/3rd_party/static/css/hightlight.default.css with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/css/screen.css [moved from utils/test/testapi/3rd_party/static/css/screen.css with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/endpoint.html [moved from utils/test/testapi/3rd_party/static/endpoint.html with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/images/explorer_icons.png [moved from utils/test/testapi/3rd_party/static/images/explorer_icons.png with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/images/logo_small.png [moved from utils/test/testapi/3rd_party/static/images/logo_small.png with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/images/pet_store_api.png [moved from utils/test/testapi/3rd_party/static/images/pet_store_api.png with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/images/throbber.gif [moved from utils/test/testapi/3rd_party/static/images/throbber.gif with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/images/wordnik_api.png [moved from utils/test/testapi/3rd_party/static/images/wordnik_api.png with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/index.html [moved from utils/test/testapi/3rd_party/static/index.html with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/backbone-min.js [moved from utils/test/testapi/3rd_party/static/lib/backbone-min.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/handlebars-1.0.0.js [moved from utils/test/testapi/3rd_party/static/lib/handlebars-1.0.0.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/highlight.7.3.pack.js [moved from utils/test/testapi/3rd_party/static/lib/highlight.7.3.pack.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/jquery-1.8.0.min.js [moved from utils/test/testapi/3rd_party/static/lib/jquery-1.8.0.min.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/jquery.ba-bbq.min.js [moved from utils/test/testapi/3rd_party/static/lib/jquery.ba-bbq.min.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/jquery.slideto.min.js [moved from utils/test/testapi/3rd_party/static/lib/jquery.slideto.min.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/jquery.wiggle.min.js [moved from utils/test/testapi/3rd_party/static/lib/jquery.wiggle.min.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/shred.bundle.js [moved from utils/test/testapi/3rd_party/static/lib/shred.bundle.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/shred/content.js [moved from utils/test/testapi/3rd_party/static/lib/shred/content.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/swagger-oauth.js [moved from utils/test/testapi/3rd_party/static/lib/swagger-oauth.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/swagger.js [moved from utils/test/testapi/3rd_party/static/lib/swagger.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/lib/underscore-min.js [moved from utils/test/testapi/3rd_party/static/lib/underscore-min.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/o2c.html [moved from utils/test/testapi/3rd_party/static/o2c.html with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/swagger-ui.js [moved from utils/test/testapi/3rd_party/static/swagger-ui.js with 100% similarity]
utils/test/testapi/3rd_party/static/swagger/swagger-ui.min.js [moved from utils/test/testapi/3rd_party/static/swagger-ui.min.js with 100% similarity]
utils/test/testapi/3rd_party/static/testapi-ui/app.js
utils/test/testapi/3rd_party/static/testapi-ui/index.html
utils/test/testapi/install.sh
utils/test/testapi/opnfv_testapi/cmd/server.py
utils/test/testapi/opnfv_testapi/common/config.py
utils/test/testapi/opnfv_testapi/resources/ui_handlers.py
utils/test/testapi/opnfv_testapi/router/url_mappings.py
utils/test/testapi/opnfv_testapi/tests/unit/test_base.py
utils/test/testapi/opnfv_testapi/tornado_swagger/handlers.py
utils/test/testapi/opnfv_testapi/tornado_swagger/settings.py
utils/test/testapi/opnfv_testapi/tornado_swagger/views.py
utils/test/testapi/setup.cfg

diff --git a/utils/test/testapi/3rd_party/static/.gitignore b/utils/test/testapi/3rd_party/static/.gitignore
deleted file mode 100644 (file)
index ebf4281..0000000
+++ /dev/null
@@ -1 +0,0 @@
-!lib
index 91e53f4..4a2f23a 100644 (file)
         $stateProvider.
             state('home', {
                 url: '/',
-                templateUrl: '/swagger/testapi-ui/components/home/home.html'
+                templateUrl: '/testapi-ui/components/home/home.html'
             }).
             state('about', {
                 url: '/about',
-                templateUrl: '/swagger/testapi-ui/components/about/about.html'
+                templateUrl: '/testapi-ui/components/about/about.html'
             }).
             state('guidelines', {
                 url: '/guidelines',
-                templateUrl: '/swagger/testapi-ui/components/guidelines/guidelines.html',
+                templateUrl: '/testapi-ui/components/guidelines/guidelines.html',
                 controller: 'GuidelinesController as ctrl'
             }).
             state('communityResults', {
                 url: '/community_results',
-                templateUrl: '/swagger/testapi-ui/components/results/results.html',
+                templateUrl: '/testapi-ui/components/results/results.html',
                 controller: 'ResultsController as ctrl'
             }).
             state('userResults', {
                 url: '/user_results',
-                templateUrl: '/swagger/testapi-ui/components/results/results.html',
+                templateUrl: '/testapi-ui/components/results/results.html',
                 controller: 'ResultsController as ctrl'
             }).
             state('resultsDetail', {
                 url: '/results/:testID',
-                templateUrl: '/swagger/testapi-ui/components/results-report' +
+                templateUrl: '/testapi-ui/components/results-report' +
                              '/resultsReport.html',
                 controller: 'ResultsReportController as ctrl'
             }).
             state('profile', {
                 url: '/profile',
-                templateUrl: '/swagger/testapi-ui/components/profile/profile.html',
+                templateUrl: '/testapi-ui/components/profile/profile.html',
                 controller: 'ProfileController as ctrl'
             }).
             state('authFailure', {
                 url: '/auth_failure',
-                templateUrl: '/swagger/testapi-ui/components/home/home.html',
+                templateUrl: '/testapi-ui/components/home/home.html',
                 controller: 'AuthFailureController as ctrl'
             }).
             state('logout', {
                 url: '/logout',
-                templateUrl: '/swagger/testapi-ui/components/logout/logout.html',
+                templateUrl: '/testapi-ui/components/logout/logout.html',
                 controller: 'LogoutController as ctrl'
             }).
             state('userVendors', {
                 url: '/user_vendors',
-                templateUrl: '/swagger/testapi-ui/components/vendors/vendors.html',
+                templateUrl: '/testapi-ui/components/vendors/vendors.html',
                 controller: 'VendorsController as ctrl'
             }).
             state('publicVendors', {
                 url: '/public_vendors',
-                templateUrl: '/swagger/testapi-ui/components/vendors/vendors.html',
+                templateUrl: '/testapi-ui/components/vendors/vendors.html',
                 controller: 'VendorsController as ctrl'
             }).
             state('vendor', {
             }).
             state('userProducts', {
                 url: '/user_products',
-                templateUrl: '/swagger/testapi-ui/components/products/products.html',
+                templateUrl: '/testapi-ui/components/products/products.html',
                 controller: 'ProductsController as ctrl'
             }).
             state('publicProducts', {
                 url: '/public_products',
-                templateUrl: '/swagger/testapi-ui/components/products/products.html',
+                templateUrl: '/testapi-ui/components/products/products.html',
                 controller: 'ProductsController as ctrl'
             }).
             state('cloud', {
                 url: '/cloud/:id',
-                templateUrl: '/swagger/testapi-ui/components/products/cloud.html',
+                templateUrl: '/testapi-ui/components/products/cloud.html',
                 controller: 'ProductController as ctrl'
             }).
             state('distro', {
                 url: '/distro/:id',
-                templateUrl: '/swagger/testapi-ui/components/products/distro.html',
+                templateUrl: '/testapi-ui/components/products/distro.html',
                 controller: 'ProductController as ctrl'
             });
     }
             angular.bootstrap(document, ['testapiApp']);
         }
 
-        $http.get('swagger/testapi-ui/config.json').success(function (data) {
+        $http.get('testapi-ui/config.json').success(function (data) {
             startApp(data);
         }).error(function () {
             startApp({});
index 4bf3c0d..46ccc61 100644 (file)
         <meta name="viewport" content="width=device-width">
         <title>TestAPI</title>
 
-        <link rel="icon" type="image/png" href="swagger/testapi-ui/favicon-16x16.png" sizes="16x16" />
-        <link rel="icon" type="image/png" href="swagger/testapi-ui/favicon-32x32.png" sizes="32x32" />
+        <link rel="icon" type="image/png" href="testapi-ui/favicon-16x16.png" sizes="16x16" />
+        <link rel="icon" type="image/png" href="testapi-ui/favicon-32x32.png" sizes="32x32" />
 
-        <link rel="stylesheet" href="swagger/testapi-ui/assets/lib/bootstrap/dist/css/bootstrap.min.css">
-        <link rel="stylesheet" href="swagger/testapi-ui/assets/lib/angular-busy/dist/angular-busy.min.css">
-        <link rel="stylesheet" href="swagger/testapi-ui/assets/css/style.css">
+        <link rel="stylesheet" href="testapi-ui/assets/lib/bootstrap/dist/css/bootstrap.min.css">
+        <link rel="stylesheet" href="testapi-ui/assets/lib/angular-busy/dist/angular-busy.min.css">
+        <link rel="stylesheet" href="testapi-ui/assets/css/style.css">
 
-        <script src="swagger/testapi-ui/assets/lib/angular/angular.min.js"></script>
-        <script src="swagger/testapi-ui/assets/lib/angular-ui-router/release/angular-ui-router.min.js"></script>
-        <script src="swagger/testapi-ui/assets/lib/angular-resource/angular-resource.min.js"></script>
-        <script src="swagger/testapi-ui/assets/lib/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
-        <script src="swagger/testapi-ui/assets/lib/angular-busy/dist/angular-busy.min.js"></script>
-        <script src="swagger/testapi-ui/assets/lib/angular-confirm-modal/angular-confirm.js"></script>
-        <script src="swagger/testapi-ui/app.js"></script>
+        <script src="testapi-ui/assets/lib/angular/angular.min.js"></script>
+        <script src="testapi-ui/assets/lib/angular-ui-router/release/angular-ui-router.min.js"></script>
+        <script src="testapi-ui/assets/lib/angular-resource/angular-resource.min.js"></script>
+        <script src="testapi-ui/assets/lib/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+        <script src="testapi-ui/assets/lib/angular-busy/dist/angular-busy.min.js"></script>
+        <script src="testapi-ui/assets/lib/angular-confirm-modal/angular-confirm.js"></script>
+        <script src="testapi-ui/app.js"></script>
 
         <!-- Controllers -->
-        <script src="swagger/testapi-ui/shared/header/headerController.js"></script>
-        <script src="swagger/testapi-ui/shared/alerts/alertModalFactory.js"></script>
-        <script src="swagger/testapi-ui/shared/alerts/confirmModalFactory.js"></script>
-        <script src="swagger/testapi-ui/components/guidelines/guidelinesController.js"></script>
-        <script src="swagger/testapi-ui/components/results/resultsController.js"></script>
-        <script src="swagger/testapi-ui/components/results-report/resultsReportController.js"></script>
-        <script src="swagger/testapi-ui/components/profile/profileController.js"></script>
-        <script src="swagger/testapi-ui/components/auth-failure/authFailureController.js"></script>
-        <script src="swagger/testapi-ui/components/logout/logoutController.js"></script>
+        <script src="testapi-ui/shared/header/headerController.js"></script>
+        <script src="testapi-ui/shared/alerts/alertModalFactory.js"></script>
+        <script src="testapi-ui/shared/alerts/confirmModalFactory.js"></script>
+        <script src="testapi-ui/components/guidelines/guidelinesController.js"></script>
+        <script src="testapi-ui/components/results/resultsController.js"></script>
+        <script src="testapi-ui/components/results-report/resultsReportController.js"></script>
+        <script src="testapi-ui/components/profile/profileController.js"></script>
+        <script src="testapi-ui/components/auth-failure/authFailureController.js"></script>
+        <script src="testapi-ui/components/logout/logoutController.js"></script>
 
         <!-- Filters -->
-        <script src="swagger/testapi-ui/shared/filters.js"></script>
+        <script src="testapi-ui/shared/filters.js"></script>
 
     </head>
 
     <body class="container">
-        <header ng-include src="'swagger/testapi-ui/shared/header/header.html'"></header>
+        <header ng-include src="'testapi-ui/shared/header/header.html'"></header>
 
         <div ui-view></div>
     </body>
index bf828b5..d470e38 100755 (executable)
@@ -11,7 +11,6 @@ where:
     -h|--help         show this help text"
 
 # Ref :-  https://openstack.nimeyo.com/87286/openstack-packaging-all-definition-data-files-config-setup
-
 if [ -z "$VIRTUAL_ENV" ];
 then
     if [[ $(whoami) != "root" ]];
@@ -23,9 +22,9 @@ else
     sed -i -e 's#/etc/opnfv_testapi =#etc/opnfv_testapi =#g' setup.cfg
 fi
 
-cp -fr 3rd_party/static opnfv_testapi/tornado_swagger
+cp -fr 3rd_party/static opnfv_testapi/static
 python setup.py install
-rm -fr opnfv_testapi/tornado_swagger/static
+rm -fr opnfv_testapi/static
 if [ ! -z "$VIRTUAL_ENV" ]; then
     sed -i -e 's#etc/opnfv_testapi =#/etc/opnfv_testapi =#g' setup.cfg
 fi
\ No newline at end of file
index 8b092b8..2696bb3 100644 (file)
@@ -58,7 +58,8 @@ def get_db():
 
 
 def make_app():
-    swagger.docs(base_url=CONF.swagger_base_url)
+    swagger.docs(base_url=CONF.swagger_base_url,
+                 static_path=CONF.static_path)
     return swagger.Application(
         url_mappings.mappings,
         db=get_db(),
index 70d7bd6..46765ff 100644 (file)
@@ -17,6 +17,10 @@ class Config(object):
     def __init__(self):
         self.file = self.CONFIG if self.CONFIG else self._default_config()
         self._parse()
+        self.static_path = os.path.join(
+            os.path.dirname(os.path.normpath(__file__)),
+            os.pardir,
+            'static')
 
     def _parse(self):
         if not os.path.exists(self.file):
index ac8f816..4c14802 100644 (file)
@@ -1,14 +1,11 @@
 from opnfv_testapi.resources.handlers import GenericApiHandler
-from opnfv_testapi.tornado_swagger import settings
+from opnfv_testapi.common import config
 
 
 class UIHandler(GenericApiHandler):
-    def initialize(self, **kwargs):
-        self.static_path = settings.docs_settings.get('static_path')
-        self.base_url = 'http://localhost:8000'
 
     def get_template_path(self):
-        return self.static_path
+        return config.Config().static_path
 
     def get(self):
         self.render('testapi-ui/index.html')
index 94e71c6..ebe5994 100644 (file)
@@ -6,6 +6,9 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
+import tornado.web
+
+from opnfv_testapi.common import config
 from opnfv_testapi.resources import handlers
 from opnfv_testapi.resources import pod_handlers
 from opnfv_testapi.resources import project_handlers
@@ -49,4 +52,9 @@ mappings = [
     # scenarios
     (r"/api/v1/scenarios", scenario_handlers.ScenariosCLHandler),
     (r"/api/v1/scenarios/([^/]+)", scenario_handlers.ScenarioGURHandler),
+
+    # static path
+    (r'/(.*\.(css|png|gif|js|html|json))',
+     tornado.web.StaticFileHandler,
+     {'path': config.Config().static_path}),
 ]
index a6e7339..4d34456 100644 (file)
@@ -12,10 +12,13 @@ from os import path
 import mock
 from tornado import testing
 
-from opnfv_testapi.cmd import server
+from opnfv_testapi.common import config
 from opnfv_testapi.resources import models
 from opnfv_testapi.tests.unit import fake_pymongo
 
+config.Config.CONFIG = path.join(path.dirname(__file__),
+                                 '../../../etc/config.ini')
+
 
 class TestBase(testing.AsyncHTTPTestCase):
     headers = {'Content-Type': 'application/json; charset=UTF-8'}
@@ -36,6 +39,7 @@ class TestBase(testing.AsyncHTTPTestCase):
         self.db_patcher.stop()
 
     def _patch_server(self):
+        from opnfv_testapi.cmd import server
         server.parse_config([
             '--config-file',
             path.join(path.dirname(__file__), 'common/normal.ini')
@@ -49,6 +53,7 @@ class TestBase(testing.AsyncHTTPTestCase):
         return fake_pymongo
 
     def get_app(self):
+        from opnfv_testapi.cmd import server
         return server.make_app()
 
     def create_d(self, *args):
index c9c8a08..e39a9f6 100644 (file)
@@ -35,8 +35,4 @@ def swagger_handlers():
             views.SwaggerApiHandler,
             settings.docs_settings,
             name=settings.API_DECLARATION_NAME),
-        (
-            _path(r'(.*\.(css|png|gif|js|html|json))'),
-            tornado.web.StaticFileHandler,
-            {'path': settings.docs_settings.get('static_path')}),
     ]
index 03e9bbd..2842261 100644 (file)
@@ -6,17 +6,14 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
-import os.path
 
 API_DOCS_NAME = 'swagger-api-docs'
 RESOURCE_LISTING_NAME = 'swagger-resource-listing'
 API_DECLARATION_NAME = 'swagger-api-declaration'
-STATIC_PATH = os.path.join(os.path.dirname(os.path.normpath(__file__)),
-                           'static')
 
 docs_settings = {
     'base_url': '',
-    'static_path': STATIC_PATH,
+    'static_path': '',
     'swagger_prefix': '/swagger',
     'api_version': 'v1.0',
     'swagger_version': '1.2',
index 42b3748..7939997 100644 (file)
@@ -33,7 +33,7 @@ class SwaggerUIHandler(tornado.web.RequestHandler):
     def get(self):
         resource_url = self.reverse_url(settings.RESOURCE_LISTING_NAME)
         discovery_url = self.base_url + resource_url
-        self.render('index.html', discovery_url=discovery_url)
+        self.render('swagger/index.html', discovery_url=discovery_url)
 
 
 class SwaggerResourcesHandler(tornado.web.RequestHandler):
index bfa534f..ab1ef55 100644 (file)
@@ -25,19 +25,13 @@ packages =
     opnfv_testapi
 package_data =
     opnfv_testapi =
-        tornado_swagger/static/*.*
-        tornado_swagger/static/css/*.*
-        tornado_swagger/static/images/*.*
-        tornado_swagger/static/lib/*.*
-        tornado_swagger/static/lib/shred/*.*
-        tornado_swagger/static/testapi-ui/*.*
-        tornado_swagger/static/testapi-ui/components/*/*.*
-        tornado_swagger/static/testapi-ui/assets/*/*.*
-        tornado_swagger/static/testapi-ui/assets/*/*/*.*
-        tornado_swagger/static/testapi-ui/assets/*/*/*/*.*
-        tornado_swagger/static/testapi-ui/assets/*/*/*/*/*.*
-        tornado_swagger/static/testapi-ui/shared/*.*
-        tornado_swagger/static/testapi-ui/shared/*/*.*
+        static/*.*
+        static/*/*.*
+        static/*/*/*.*
+        static/*/*/*/*.*
+        static/*/*/*/*/*.*
+        static/*/*/*/*/*/*.*
+        static/*/*/*/*/*/*/*.*
 data_files =
     /etc/opnfv_testapi =
         etc/config.ini