summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorying.yunlong <ying.yunlong@zte.com.cn>2018-01-25 13:14:02 +0800
committeryunlong ying <ying.yunlong@zte.com.cn>2018-01-25 06:22:50 +0000
commit09a21ea186aff5cbee6dcc5573f570f49c251812 (patch)
tree63a751942804e0e782725e260405ee197bc67c95
parent96114591d43b8c73a6210a904c15f9314624150d (diff)
Refactor vfc-vnfres swagger function.
Change-Id: If403d965ddaf7f6d270ebb490a98025e8506f88b Issue-ID: VFC-679 Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
-rw-r--r--res/res/resources/tests.py4
-rw-r--r--res/res/resources/urls.py2
-rw-r--r--res/res/resources/views.py17
-rw-r--r--res/res/swagger/__init__.py13
-rw-r--r--res/res/swagger/swagger.json (renamed from res/res/resources/swagger.json)0
-rw-r--r--res/res/swagger/tests.py29
-rw-r--r--res/res/swagger/urls.py20
-rw-r--r--res/res/swagger/views.py27
-rw-r--r--res/res/urls.py1
9 files changed, 93 insertions, 20 deletions
diff --git a/res/res/resources/tests.py b/res/res/resources/tests.py
index a6b9ead..7f5026e 100644
--- a/res/res/resources/tests.py
+++ b/res/res/resources/tests.py
@@ -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)
diff --git a/res/res/resources/urls.py b/res/res/resources/urls.py
index 5bcfb9a..e282e86 100644
--- a/res/res/resources/urls.py
+++ b/res/res/resources/urls.py
@@ -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)
diff --git a/res/res/resources/views.py b/res/res/resources/views.py
index 049f584..70c38b3 100644
--- a/res/res/resources/views.py
+++ b/res/res/resources/views.py
@@ -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
index 0000000..342c2a8
--- /dev/null
+++ b/res/res/swagger/__init__.py
@@ -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/resources/swagger.json b/res/res/swagger/swagger.json
index 47dccc8..47dccc8 100644
--- a/res/res/resources/swagger.json
+++ b/res/res/swagger/swagger.json
diff --git a/res/res/swagger/tests.py b/res/res/swagger/tests.py
new file mode 100644
index 0000000..03bb77f
--- /dev/null
+++ b/res/res/swagger/tests.py
@@ -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
index 0000000..3cfa7a6
--- /dev/null
+++ b/res/res/swagger/urls.py
@@ -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
index 0000000..cc5a4a3
--- /dev/null
+++ b/res/res/swagger/views.py
@@ -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)
diff --git a/res/res/urls.py b/res/res/urls.py
index b9c08ca..83bbdaf 100644
--- a/res/res/urls.py
+++ b/res/res/urls.py
@@ -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'),