Refactor vfc-vnfres swagger function. 09/29109/3
authorying.yunlong <ying.yunlong@zte.com.cn>
Thu, 25 Jan 2018 05:14:02 +0000 (13:14 +0800)
committeryunlong ying <ying.yunlong@zte.com.cn>
Thu, 25 Jan 2018 06:22:50 +0000 (06:22 +0000)
Change-Id: If403d965ddaf7f6d270ebb490a98025e8506f88b
Issue-ID: VFC-679
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
res/res/resources/tests.py
res/res/resources/urls.py
res/res/resources/views.py
res/res/swagger/__init__.py [new file with mode: 0644]
res/res/swagger/swagger.json [moved from res/res/resources/swagger.json with 100% similarity]
res/res/swagger/tests.py [new file with mode: 0644]
res/res/swagger/urls.py [new file with mode: 0644]
res/res/swagger/views.py [new file with mode: 0644]
res/res/urls.py

index a6b9ead..7f5026e 100644 (file)
@@ -219,7 +219,3 @@ class ResourceTest(TestCase):
         response = self.client.get("/api/vnfres/v1/%s/volumes" % self.nf_inst_id)
         self.assertEqual(self.volumes_data, response.data)
         self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
-
-    def test_swagger_ok(self):
-        resp = self.client.get("/api/vnfres/v1/swagger.json", format="json")
-        self.assertEqual(resp.status_code, status.HTTP_200_OK, resp.content)
index 5bcfb9a..e282e86 100644 (file)
@@ -16,7 +16,6 @@ from django.conf.urls import url
 from rest_framework.urlpatterns import format_suffix_patterns
 
 from res.resources import views
-from res.resources.views import SwaggerJsonView
 
 urlpatterns = [
     url(r'^api/vnfres/v1/vnfs/(?P<vnfInstanceId>[0-9a-zA-Z\-\_]+)$', views.get_vnf, name='get_vnf'),
@@ -27,7 +26,6 @@ urlpatterns = [
     url(r'^api/vnfres/v1/(?P<vnfInstanceId>[0-9a-zA-Z\-\_]+)/subnets$', views.get_subnets, name='get_subnets'),
     url(r'^api/vnfres/v1/(?P<vnfInstanceId>[0-9a-zA-Z\-\_]+)/cps$', views.getCps.as_view(), name='get_cps'),
     url(r'^api/vnfres/v1/(?P<vnfInstanceId>[0-9a-zA-Z\-\_]+)/volumes$', views.getVolumes.as_view(), name='get_volumes'),
-    url(r'^api/vnfres/v1/swagger.json$', SwaggerJsonView.as_view()),
 ]
 
 urlpatterns = format_suffix_patterns(urlpatterns)
index 049f584..70c38b3 100644 (file)
@@ -12,9 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import json
 import logging
-import os
 import traceback
 
 from drf_yasg.utils import swagger_auto_schema
@@ -23,11 +21,11 @@ from rest_framework.decorators import api_view
 from rest_framework.response import Response
 from rest_framework.views import APIView
 
-from res.pub.exceptions import VNFRESException
-from res.pub.utils.values import ignore_case_get
-from res.pub.utils.syscomm import fun_name
 from res.pub.database.models import NfInstModel, StorageInstModel, NetworkInstModel, VLInstModel, \
     VNFCInstModel, VmInstModel, FlavourInstModel, SubNetworkInstModel, CPInstModel
+from res.pub.exceptions import VNFRESException
+from res.pub.utils.syscomm import fun_name
+from res.pub.utils.values import ignore_case_get
 from res.resources.serializers import VolumeInfoSerializer, NoneSerializer, CpsInfoSerializer
 
 logger = logging.getLogger(__name__)
@@ -388,12 +386,3 @@ def fill_volumes_data(v):
         "size": v.size
     }
     return volumes_data
-
-
-class SwaggerJsonView(APIView):
-    def get(self, request):
-        json_file = os.path.join(os.path.dirname(__file__), 'swagger.json')
-        f = open(json_file)
-        json_data = json.JSONDecoder().decode(f.read())
-        f.close()
-        return Response(json_data)
diff --git a/res/res/swagger/__init__.py b/res/res/swagger/__init__.py
new file mode 100644 (file)
index 0000000..342c2a8
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright 2018 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/res/res/swagger/tests.py b/res/res/swagger/tests.py
new file mode 100644 (file)
index 0000000..03bb77f
--- /dev/null
@@ -0,0 +1,29 @@
+# Copyright 2018 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import unittest
+
+from rest_framework import status
+from rest_framework.test import APIClient
+
+
+class SwaggerViewTest(unittest.TestCase):
+    def setUp(self):
+        self.client = APIClient()
+
+    def tearDown(self):
+        pass
+
+    def test_swagger_ok(self):
+        resp = self.client.get("/api/vnfres/v1/swagger.json", format="json")
+        self.assertEqual(resp.status_code, status.HTTP_200_OK, resp.content)
diff --git a/res/res/swagger/urls.py b/res/res/swagger/urls.py
new file mode 100644 (file)
index 0000000..3cfa7a6
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright 2018 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+from django.conf.urls import url
+
+from res.swagger.views import SwaggerJsonView
+
+urlpatterns = [
+    url(r'^api/vnfres/v1/swagger.json$', SwaggerJsonView.as_view()),
+]
diff --git a/res/res/swagger/views.py b/res/res/swagger/views.py
new file mode 100644 (file)
index 0000000..cc5a4a3
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright 2018 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import json
+import os
+
+from rest_framework.response import Response
+from rest_framework.views import APIView
+
+
+class SwaggerJsonView(APIView):
+    def get(self, request):
+        json_file = os.path.join(os.path.dirname(__file__), 'swagger.json')
+        f = open(json_file)
+        json_data = json.JSONDecoder().decode(f.read())
+        f.close()
+        return Response(json_data)
index b9c08ca..83bbdaf 100644 (file)
@@ -37,6 +37,7 @@ SchemaView = get_schema_view(
 
 urlpatterns = [
     url(r'^', include('res.samples.urls')),
+    url(r'^', include('res.swagger.urls')),
     url(r'^', include('res.resources.urls')),
     url(r'^swagger(?P<format>.json|.yaml)$', SchemaView.without_ui(cache_timeout=0), name='schema-json'),
     url(r'^swagger/$', SchemaView.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),