aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordyh <dengyuanhong@chinamobile.com>2019-11-21 16:53:38 +0800
committerdyh <dengyuanhong@chinamobile.com>2019-11-21 17:17:32 +0800
commitb301e35367f860fae335c85227795008b531d79b (patch)
treef7505b957aeffcb6de2e584908cb7dcd48bbd191
parent1e1ba6cb568bbf426175ee8d5fa25c07d87678f1 (diff)
1.Update API endpoint; 2. update swagger information.
Issue-ID: MODELING-277 Change-Id: I6b3252ebc61d6bdf0ece483688a44f3838901940 Signed-off-by: dyh <dengyuanhong@chinamobile.com>
-rw-r--r--catalog/jobs/views.py20
-rw-r--r--catalog/packages/biz/vnf_pkg_artifacts.py2
-rw-r--r--catalog/packages/const.py13
-rw-r--r--catalog/packages/tests/test_nspackage.py11
-rw-r--r--catalog/packages/tests/test_pnf_descriptor.py6
-rw-r--r--catalog/packages/tests/test_servicepackage.py14
-rw-r--r--catalog/packages/tests/test_vnfpackage.py8
-rw-r--r--catalog/packages/urls.py11
-rw-r--r--catalog/packages/views/catalog_views.py33
-rw-r--r--catalog/packages/views/health_check_views.py4
-rw-r--r--catalog/packages/views/ns_descriptor_views.py13
-rw-r--r--catalog/packages/views/nsdm_subscription_views.py16
-rw-r--r--catalog/packages/views/pnf_descriptor_views.py23
-rw-r--r--catalog/packages/views/vnf_package_artifact_views.py12
-rw-r--r--catalog/packages/views/vnf_package_subscription_views.py21
-rw-r--r--catalog/packages/views/vnf_package_views.py29
-rw-r--r--catalog/samples/views.py13
17 files changed, 138 insertions, 111 deletions
diff --git a/catalog/jobs/views.py b/catalog/jobs/views.py
index 123af00..dd5299c 100644
--- a/catalog/jobs/views.py
+++ b/catalog/jobs/views.py
@@ -27,10 +27,10 @@ from catalog.pub.utils.jobutil import JobUtil
from catalog.pub.utils.values import ignore_case_get
logger = logging.getLogger(__name__)
+CATALOG_API = "Catalog interface"
class JobView(APIView):
-
input_job_id = openapi.Parameter(
'job_id',
openapi.IN_QUERY,
@@ -44,6 +44,7 @@ class JobView(APIView):
@swagger_auto_schema(
operation_description="Get job status",
+ tags=[CATALOG_API],
manual_parameters=[input_job_id, input_response_id],
responses={
status.HTTP_200_OK: GetJobResponseSerializer(),
@@ -53,8 +54,7 @@ class JobView(APIView):
response_id = ignore_case_get(request.META, 'responseId')
ret = GetJobInfoService(job_id, response_id).do_biz()
response_serializer = GetJobResponseSerializer(data=ret)
- validataion_error = self.handleValidatonError(
- response_serializer, False)
+ validataion_error = self.handleValidatonError(response_serializer, False)
if validataion_error:
return validataion_error
@@ -65,6 +65,7 @@ class JobView(APIView):
@swagger_auto_schema(
request_body=PostJobRequestSerializer(),
operation_description="Update job status",
+ tags=[CATALOG_API],
manual_parameters=[input_job_id],
responses={
status.HTTP_202_ACCEPTED: PostJobResponseResultSerializer(),
@@ -80,24 +81,19 @@ class JobView(APIView):
return Response(data=job_result_ok)
request_serializer = PostJobRequestSerializer(data=request.data)
- validataion_error = self.handleValidatonError(
- request_serializer, True)
+ validataion_error = self.handleValidatonError(request_serializer, True)
if not validataion_error:
return validataion_error
requestData = request_serializer.data
progress = ignore_case_get(requestData, "progress")
desc = ignore_case_get(requestData, "desc", '%s' % progress)
- errcode = '0' if ignore_case_get(
- requestData, 'errcode') in (
- 'true', 'active') else '255'
+ errcode = '0' if ignore_case_get(requestData, 'errcode') in ('true', 'active') else '255'
logger.debug("errcode=%s", errcode)
JobUtil.add_job_status(job_id, progress, desc, error_code=errcode)
- response_serializer = PostJobResponseResultSerializer(
- data=job_result_ok)
- validataion_error = self.handleValidatonError(
- response_serializer, False)
+ response_serializer = PostJobResponseResultSerializer(data=job_result_ok)
+ validataion_error = self.handleValidatonError(response_serializer, False)
if validataion_error:
return validataion_error
diff --git a/catalog/packages/biz/vnf_pkg_artifacts.py b/catalog/packages/biz/vnf_pkg_artifacts.py
index 37021eb..839f05c 100644
--- a/catalog/packages/biz/vnf_pkg_artifacts.py
+++ b/catalog/packages/biz/vnf_pkg_artifacts.py
@@ -35,7 +35,7 @@ class FetchVnfPkgArtifact(object):
vnf_extract_path = fileutil.unzip_csar_to_tmp(local_path)
artifact_path = fileutil.get_artifact_path(vnf_extract_path, artifactPath)
if not artifact_path:
- raise ArtifactNotFoundException("Couldn't artifact %s" % artifactPath)
+ raise ArtifactNotFoundException("Can't find artifact %s" % artifactPath)
with open(artifact_path, 'rt') as f:
file_content = f.read()
else:
diff --git a/catalog/packages/const.py b/catalog/packages/const.py
index 593f3a2..cc7dd2d 100644
--- a/catalog/packages/const.py
+++ b/catalog/packages/const.py
@@ -92,3 +92,16 @@ NSDM_NOTIFICATION_TYPES = [
"PnfdOnBoardingFailureNotification",
"PnfdDeletionNotification"
]
+
+# API swagger tag
+TAG_CATALOG_API = "Catalog interface"
+
+TAG_PARSER_API = "Parser interface"
+
+TAG_NSD_API = "NSD Management interface"
+
+TAG_PNFD_API = "NSD Management interface"
+
+TAG_VNF_PACKAGE_API = "VNF Package Management interface"
+
+TAG_HEALTH_CHECK = "Health Check interface"
diff --git a/catalog/packages/tests/test_nspackage.py b/catalog/packages/tests/test_nspackage.py
index 91f3503..0ca34a2 100644
--- a/catalog/packages/tests/test_nspackage.py
+++ b/catalog/packages/tests/test_nspackage.py
@@ -13,14 +13,15 @@
# limitations under the License.
import json
+
import mock
-from rest_framework import status
-from django.test import TestCase
from django.test import Client
+from django.test import TestCase
+from rest_framework import status
-from catalog.pub.utils import restcall, toscaparser
from catalog.pub.database.models import NSPackageModel, VnfPackageModel, PnfPackageModel
from catalog.pub.msapi import sdc
+from catalog.pub.utils import restcall, toscaparser
from .const import nsd_data
@@ -228,7 +229,7 @@ class TestNsPackage(TestCase):
mock_parse_nsd.return_value = json.JSONEncoder().encode({"a": "b"})
req_data = {"csarId": "18", "inputs": []}
resp = self.client.post(
- "/api/catalog/v1/parsernsd",
+ "/api/parser/v1/parsernsd",
req_data,
format='json')
self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
@@ -237,7 +238,7 @@ class TestNsPackage(TestCase):
def test_nsd_parse_when_csar_not_exist(self):
req_data = {"csarId": "1", "inputs": []}
resp = self.client.post(
- "/api/catalog/v1/parsernsd",
+ "/api/parser/v1/parsernsd",
req_data,
format='json')
self.assertEqual(
diff --git a/catalog/packages/tests/test_pnf_descriptor.py b/catalog/packages/tests/test_pnf_descriptor.py
index 8af8614..7abd46c 100644
--- a/catalog/packages/tests/test_pnf_descriptor.py
+++ b/catalog/packages/tests/test_pnf_descriptor.py
@@ -15,14 +15,14 @@
import copy
import json
-import mock
import os
import shutil
-
+import mock
from django.test import TestCase
from rest_framework import status
from rest_framework.test import APIClient
+
from catalog.packages.biz.pnf_descriptor import PnfDescriptor
from catalog.packages.const import PKG_STATUS
from catalog.packages.tests.const import pnfd_data
@@ -281,6 +281,6 @@ class TestPnfDescriptor(TestCase):
PnfPackageModel(pnfPackageId="8", pnfdId="10").save()
mock_parse_pnfd.return_value = json.JSONEncoder().encode({"c": "d"})
req_data = {"csarId": "8", "inputs": []}
- resp = self.client.post("/api/catalog/v1/parserpnfd", req_data, format='json')
+ resp = self.client.post("/api/parser/v1/parserpnfd", req_data, format='json')
self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
self.assertEqual({"model": '{"c": "d"}'}, resp.data)
diff --git a/catalog/packages/tests/test_servicepackage.py b/catalog/packages/tests/test_servicepackage.py
index 241d80d..babfa4d 100644
--- a/catalog/packages/tests/test_servicepackage.py
+++ b/catalog/packages/tests/test_servicepackage.py
@@ -24,7 +24,7 @@ from catalog.pub.exceptions import PackageNotFoundException, PackageHasExistsExc
from catalog.pub.msapi import sdc
from catalog.pub.utils import toscaparser
-PARSER_BASE_URL = "/api/parser/v1"
+CATALOG_BASE_URL = "/api/catalog/v1"
class TestServicePackage(TestCase):
@@ -352,7 +352,7 @@ class TestServicePackage(TestCase):
def test_api_service_pkg_distribute_when_pkg_exists(self):
ServicePackageModel(servicePackageId="1", servicedId="2").save()
resp = self.client.post(
- PARSER_BASE_URL + "/service_packages", {"csarId": "1"}, format='json')
+ CATALOG_BASE_URL + "/service_packages", {"csarId": "1"}, format='json')
self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual("Service CSAR(1) already exists.", resp.data["errorMessage"])
@@ -391,7 +391,7 @@ class TestServicePackage(TestCase):
servicedVersion="3",
servicePackageUri="14.csar",
servicedModel="").save()
- resp = self.client.get(PARSER_BASE_URL + "/service_packages")
+ resp = self.client.get(CATALOG_BASE_URL + "/service_packages")
self.assertEqual(resp.status_code, status.HTTP_200_OK)
###############################################################
@@ -421,11 +421,11 @@ class TestServicePackage(TestCase):
servicedVersion="4",
servicePackageUri="14.csar",
servicedModel="").save()
- resp = self.client.get(PARSER_BASE_URL + "/service_packages/14")
+ resp = self.client.get(CATALOG_BASE_URL + "/service_packages/14")
self.assertEqual(resp.status_code, status.HTTP_200_OK)
def test_api_service_pkg_get_one_not_found(self):
- resp = self.client.get(PARSER_BASE_URL + "/service_packages/22")
+ resp = self.client.get(CATALOG_BASE_URL + "/service_packages/22")
self.assertEqual(resp.status_code, status.HTTP_404_NOT_FOUND)
self.assertEqual(
{"errorMessage": "Service package[22] not Found.", 'error': 404},
@@ -449,7 +449,7 @@ class TestServicePackage(TestCase):
def test_api_service_pkg_normal_delete(self):
ServicePackageModel(servicePackageId="8", servicedId="2").save()
- resp = self.client.delete(PARSER_BASE_URL + "/service_packages/8")
+ resp = self.client.delete(CATALOG_BASE_URL + "/service_packages/8")
self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT)
###############################################################
@@ -477,5 +477,5 @@ class TestServicePackage(TestCase):
"packageType": "Service",
"inputs": "string"
}
- resp = self.client.post(PARSER_BASE_URL + "/parser", query_data, format='json')
+ resp = self.client.post(CATALOG_BASE_URL + "/parser", query_data, format='json')
self.assertEqual(resp.status_code, status.HTTP_404_NOT_FOUND)
diff --git a/catalog/packages/tests/test_vnfpackage.py b/catalog/packages/tests/test_vnfpackage.py
index 0d8cbad..f016d01 100644
--- a/catalog/packages/tests/test_vnfpackage.py
+++ b/catalog/packages/tests/test_vnfpackage.py
@@ -13,10 +13,12 @@
# limitations under the License.
import json
+
import mock
-from rest_framework.test import APIClient
from django.test import TestCase
from rest_framework import status
+from rest_framework.test import APIClient
+
from catalog.packages.biz.sdc_vnf_package import NfDistributeThread, NfPkgDeleteThread
from catalog.pub.database.models import JobStatusModel, JobModel
from catalog.pub.database.models import VnfPackageModel
@@ -240,7 +242,7 @@ class TestNfPackage(TestCase):
"inputs": []
}
resp = self.client.post(
- "/api/catalog/v1/parservnfd",
+ "/api/parser/v1/parservnfd",
req_data,
format='json'
)
@@ -250,7 +252,7 @@ class TestNfPackage(TestCase):
def test_vnfd_parse_when_csar_not_exist(self):
req_data = {"csarId": "1", "inputs": []}
resp = self.client.post(
- "/api/catalog/v1/parservnfd",
+ "/api/parser/v1/parservnfd",
req_data,
format='json'
)
diff --git a/catalog/packages/urls.py b/catalog/packages/urls.py
index 3ed6968..aa11883 100644
--- a/catalog/packages/urls.py
+++ b/catalog/packages/urls.py
@@ -29,17 +29,14 @@ urlpatterns = [
url(r'^api/catalog/v1/nspackages/(?P<csarId>[0-9a-zA-Z\-\_]+)$', catalog_views.ns_rd_csar, name='nspackage_rd'),
url(r'^api/catalog/v1/vnfpackages$', catalog_views.nfpackages_rc, name='nfpackages_rc'),
url(r'^api/catalog/v1/vnfpackages/(?P<csarId>[0-9a-zA-Z\-\_]+)$', catalog_views.nf_rd_csar, name='nfpackage_rd'),
- url(r'^api/parser/v1/service_packages$', catalog_views.servicepackages_rc, name='servicepackages_rc'),
- url(r'^api/parser/v1/service_packages/(?P<csarId>[0-9a-zA-Z\-\_]+)$', catalog_views.service_rd_csar, name='servicepackage_rd'),
+ url(r'^api/catalog/v1/service_packages$', catalog_views.servicepackages_rc, name='servicepackages_rc'),
+ url(r'^api/catalog/v1/service_packages/(?P<csarId>[0-9a-zA-Z\-\_]+)$', catalog_views.service_rd_csar, name='servicepackage_rd'),
# NFV Model Parser
url(r'^api/parser/v1/parser$', catalog_views.model_parser, name='modelparser_rc'),
url(r'^api/parser/v1/parsernsd$', catalog_views.ns_model_parser, name='nsmodelparser_rc'),
url(r'^api/parser/v1/parservnfd$', catalog_views.vnf_model_parser, name='vnfmodelparser_rc'),
url(r'^api/parser/v1/parserpnfd$', pnf_descriptor_views.pnf_model_parser, name='pnfmodelparser_rc'),
- url(r'^api/catalog/v1/parsernsd$', catalog_views.ns_model_parser, name='nsmodelparser_rc'),
- url(r'^api/catalog/v1/parservnfd$', catalog_views.vnf_model_parser, name='vnfmodelparser_rc'),
- url(r'^api/catalog/v1/parserpnfd$', pnf_descriptor_views.pnf_model_parser, name='pnfmodelparser_rc'),
# ETSI SOL005 NSD API
url(r'^api/nsd/v1/ns_descriptors$', ns_descriptor_views.ns_descriptors_rc, name='ns_descriptors_rc'),
@@ -64,10 +61,6 @@ urlpatterns = [
url(r'^api/vnfpkgm/v1/subscriptions$', CreateQuerySubscriptionView.as_view(), name='subscriptions_create_query'),
url(r'^api/vnfpkgm/v1/subscriptions/(?P<subscriptionId>[0-9a-zA-Z\-\_]+)$', QueryTerminateSubscriptionView.as_view(), name='subscriptions_query_terminate'),
url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/artifacts/(?P<artifactPath>[0-9a-zA-Z\-\_]+)$', FetchVnfPkgmArtifactsView.as_view(), name="fetch_vnf_artifacts"),
- # url(r'^api/vnfpkgm/v1/subscriptions/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)$', vnf_package_subscription_views.vnf_package_subscriptions_rc, name='subscriptions_rc'),
- # url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/vnfd$', vnfd.as_view(), name='vnfd_r'),# url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/artifacts/artifactPath$', artifacts.as_view(), name='artifacts_r'),
-
- # url(r'^api/vnfpkgm/v1/subscriptions/(?P<subscriptionId>[0-9a-zA-Z\-\_]+)$', vnfpkg_subscription.as_view(), name='subscription_rd'),
# health check
url(r'^api/vnfpkgm/v1/health_check$', HealthCheckView.as_view()),
diff --git a/catalog/packages/views/catalog_views.py b/catalog/packages/views/catalog_views.py
index 740c530..a83d9d2 100644
--- a/catalog/packages/views/catalog_views.py
+++ b/catalog/packages/views/catalog_views.py
@@ -20,9 +20,12 @@ from drf_yasg.utils import no_body, swagger_auto_schema
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
+
+from catalog.jobs.views import CATALOG_API
from catalog.packages.biz import sdc_vnf_package, sdc_ns_package
from catalog.packages.biz.pnf_descriptor import PnfDescriptor
from catalog.packages.biz.sdc_service_package import ServicePackage
+from catalog.packages.const import TAG_PARSER_API
from catalog.packages.serializers.catalog_serializers import InternalErrorRequestSerializer, \
ServicePackageDistributeRequestSerializer, ServicePackagesSerializer, ServicePackageSerializer
from catalog.packages.serializers.catalog_serializers import NfPackageDistributeRequestSerializer
@@ -46,7 +49,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method='POST',
operation_description="On distribute NS package",
- tags=["NS packages API"],
+ tags=[CATALOG_API],
request_body=NsPackageDistributeRequestSerializer,
responses={
status.HTTP_202_ACCEPTED: NsPackageDistributeResponseSerializer,
@@ -54,7 +57,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method='GET',
operation_description="Query NS packages",
- tags=["NS packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
responses={
status.HTTP_200_OK: NsPackagesSerializer,
@@ -100,7 +103,7 @@ def nspackages_rc(request, *args, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="On distribute Nf package",
- tags=["NF packages API"],
+ tags=[CATALOG_API],
request_body=NfPackageDistributeRequestSerializer(),
responses={
status.HTTP_202_ACCEPTED: PostJobResponseSerializer,
@@ -108,7 +111,7 @@ def nspackages_rc(request, *args, **kwargs):
@swagger_auto_schema(
method='GET',
operation_description="Query Nf packages",
- tags=["NF packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
responses={
status.HTTP_200_OK: NfPackagesSerializer,
@@ -162,7 +165,7 @@ def nfpackages_rc(request, *args, **kwargs):
@swagger_auto_schema(
method='DELETE',
operation_description="Delete one NS package",
- tags=["NS packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
manual_parameters=[
openapi.Parameter(
@@ -179,7 +182,7 @@ def nfpackages_rc(request, *args, **kwargs):
@swagger_auto_schema(
method='GET',
operation_description="Query one NS package",
- tags=["NS packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
manual_parameters=[
openapi.Parameter(
@@ -222,7 +225,7 @@ def ns_rd_csar(request, *args, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="On distribute Service package",
- tags=["Service packages API"],
+ tags=[CATALOG_API],
request_body=ServicePackageDistributeRequestSerializer,
responses={
status.HTTP_202_ACCEPTED: "",
@@ -231,7 +234,7 @@ def ns_rd_csar(request, *args, **kwargs):
@swagger_auto_schema(
method='GET',
operation_description="Query Service packages",
- tags=["Service packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
responses={
status.HTTP_200_OK: ServicePackagesSerializer,
@@ -275,7 +278,7 @@ def servicepackages_rc(request, *args, **kwargs):
@swagger_auto_schema(
method='DELETE',
operation_description="Delete one Service package",
- tags=["Service packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
manual_parameters=[
openapi.Parameter(
@@ -290,7 +293,7 @@ def servicepackages_rc(request, *args, **kwargs):
@swagger_auto_schema(
method='GET',
operation_description="Query one Service package",
- tags=["Service packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
manual_parameters=[
openapi.Parameter(
@@ -337,7 +340,7 @@ def service_rd_csar(request, *args, **kwargs):
@swagger_auto_schema(
method='DELETE',
operation_description="Delete one Nf package",
- tags=["NF packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
manual_parameters=[
openapi.Parameter(
@@ -354,7 +357,7 @@ def service_rd_csar(request, *args, **kwargs):
@swagger_auto_schema(
method='GET',
operation_description="Query one Nf package",
- tags=["NF packages API"],
+ tags=[CATALOG_API],
request_body=no_body,
manual_parameters=[
openapi.Parameter(
@@ -405,7 +408,7 @@ def nf_rd_csar(request, *args, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="Parse model(NS, Service, VNF, PNF)",
- tags=["Parser API"],
+ tags=[TAG_PARSER_API],
request_body=ParseModelRequestSerializer,
responses={
status.HTTP_202_ACCEPTED: ParseModelResponseSerializer,
@@ -466,7 +469,7 @@ def model_parser(request, *args, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="Parse NS model",
- tags=["Parser API"],
+ tags=[TAG_PARSER_API],
request_body=ParseModelRequestSerializer,
responses={
status.HTTP_202_ACCEPTED: ParseModelResponseSerializer,
@@ -500,7 +503,7 @@ def ns_model_parser(request, *args, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="Parse NF model",
- tags=["Parser API"],
+ tags=[TAG_PARSER_API],
request_body=ParseModelRequestSerializer,
responses={
status.HTTP_202_ACCEPTED: ParseModelResponseSerializer,
diff --git a/catalog/packages/views/health_check_views.py b/catalog/packages/views/health_check_views.py
index e5aad9a..fc5c25e 100644
--- a/catalog/packages/views/health_check_views.py
+++ b/catalog/packages/views/health_check_views.py
@@ -19,12 +19,14 @@ from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
+from catalog.packages.const import TAG_HEALTH_CHECK
+
logger = logging.getLogger(__name__)
class HealthCheckView(APIView):
@swagger_auto_schema(
- tags=["Health check API"],
+ tags=[TAG_HEALTH_CHECK],
responses={
status.HTTP_200_OK: 'Active'})
def get(self, request, format=None):
diff --git a/catalog/packages/views/ns_descriptor_views.py b/catalog/packages/views/ns_descriptor_views.py
index 797bfec..2d98628 100644
--- a/catalog/packages/views/ns_descriptor_views.py
+++ b/catalog/packages/views/ns_descriptor_views.py
@@ -21,6 +21,7 @@ from rest_framework.decorators import api_view
from rest_framework.response import Response
from catalog.packages.biz.ns_descriptor import NsDescriptor
+from catalog.packages.const import TAG_NSD_API
from catalog.packages.serializers.create_nsd_info_request import CreateNsdInfoRequestSerializer
from catalog.packages.serializers.nsd_info import NsdInfoSerializer
from catalog.packages.serializers.nsd_infos import NsdInfosSerializer
@@ -34,7 +35,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method='GET',
operation_description="Query a NSD",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_200_OK: NsdInfoSerializer(),
@@ -45,7 +46,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method='DELETE',
operation_description="Delete a NSD",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: "No content",
@@ -68,7 +69,7 @@ def ns_info_rd(request, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="Create a NSD",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=CreateNsdInfoRequestSerializer(),
responses={
status.HTTP_201_CREATED: NsdInfoSerializer(),
@@ -78,7 +79,7 @@ def ns_info_rd(request, **kwargs):
@swagger_auto_schema(
method='GET',
operation_description="Query multiple NSDs",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_200_OK: NsdInfosSerializer(),
@@ -104,7 +105,7 @@ def ns_descriptors_rc(request):
@swagger_auto_schema(
method='PUT',
operation_description="Upload NSD content",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: 'PNFD file',
@@ -114,7 +115,7 @@ def ns_descriptors_rc(request):
@swagger_auto_schema(
method='GET',
operation_description="Download NSD content",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: "No content",
diff --git a/catalog/packages/views/nsdm_subscription_views.py b/catalog/packages/views/nsdm_subscription_views.py
index b4b82ae..7e1b2f5 100644
--- a/catalog/packages/views/nsdm_subscription_views.py
+++ b/catalog/packages/views/nsdm_subscription_views.py
@@ -19,15 +19,15 @@ from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
+from catalog.packages.biz.nsdm_subscription import NsdmSubscription
+from catalog.packages.const import TAG_NSD_API
from catalog.packages.serializers.nsdm_filter_data import NsdmNotificationsFilter
-from catalog.packages.serializers.nsdm_subscription import NsdmSubscriptionsSerializer
from catalog.packages.serializers.nsdm_subscription import NsdmSubscriptionIdSerializer
-from catalog.packages.serializers.nsdm_subscription import NsdmSubscriptionSerializer
from catalog.packages.serializers.nsdm_subscription import NsdmSubscriptionRequestSerializer
+from catalog.packages.serializers.nsdm_subscription import NsdmSubscriptionSerializer
+from catalog.packages.serializers.nsdm_subscription import NsdmSubscriptionsSerializer
from catalog.packages.serializers.response import ProblemDetailsSerializer
-
from catalog.pub.exceptions import NsdmBadRequestException
-from catalog.packages.biz.nsdm_subscription import NsdmSubscription
from .common import view_safe_call_with_log
logger = logging.getLogger(__name__)
@@ -44,7 +44,7 @@ def validate_data(data, serializer):
@swagger_auto_schema(
method='POST',
operation_description="Create Subscription for NSD Management",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=NsdmSubscriptionRequestSerializer(),
responses={
status.HTTP_201_CREATED: NsdmSubscriptionSerializer,
@@ -56,7 +56,7 @@ def validate_data(data, serializer):
@swagger_auto_schema(
method='GET',
operation_description="Query subscriptions for Nsd Management",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_200_OK: NsdmSubscriptionsSerializer(),
@@ -96,7 +96,7 @@ def nsd_subscription_rc(request):
@swagger_auto_schema(
method='GET',
operation_description="Query subscriptions for Nsd Management",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_200_OK: NsdmSubscriptionSerializer(),
@@ -108,7 +108,7 @@ def nsd_subscription_rc(request):
@swagger_auto_schema(
method='DELETE',
operation_description="Delete subscription for Nsd Management",
- tags=["NSD API"],
+ tags=[TAG_NSD_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: 'No_Content',
diff --git a/catalog/packages/views/pnf_descriptor_views.py b/catalog/packages/views/pnf_descriptor_views.py
index 381b557..9e7a2c4 100644
--- a/catalog/packages/views/pnf_descriptor_views.py
+++ b/catalog/packages/views/pnf_descriptor_views.py
@@ -21,14 +21,15 @@ from rest_framework.decorators import api_view
from rest_framework.response import Response
from catalog.packages.biz.pnf_descriptor import PnfDescriptor
+from catalog.packages.const import TAG_PNFD_API, TAG_PARSER_API
+from catalog.packages.serializers.catalog_serializers import InternalErrorRequestSerializer
+from catalog.packages.serializers.catalog_serializers import ParseModelRequestSerializer
+from catalog.packages.serializers.catalog_serializers import ParseModelResponseSerializer
from catalog.packages.serializers.create_pnfd_info_request import CreatePnfdInfoRequestSerializer
from catalog.packages.serializers.pnfd_info import PnfdInfoSerializer
from catalog.packages.serializers.pnfd_infos import PnfdInfosSerializer
-from catalog.packages.views.common import validate_data
-from catalog.packages.serializers.catalog_serializers import ParseModelRequestSerializer
-from catalog.packages.serializers.catalog_serializers import ParseModelResponseSerializer
-from catalog.packages.serializers.catalog_serializers import InternalErrorRequestSerializer
from catalog.packages.serializers.response import ProblemDetailsSerializer
+from catalog.packages.views.common import validate_data
from catalog.pub.utils.syscomm import fun_name
from catalog.pub.utils.values import ignore_case_get
from .common import view_safe_call_with_log
@@ -39,7 +40,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method='GET',
operation_description="Query a PNFD",
- tags=["PNFD API"],
+ tags=[TAG_PNFD_API],
request_body=no_body,
responses={
status.HTTP_200_OK: PnfdInfoSerializer(),
@@ -50,7 +51,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method='DELETE',
operation_description="Delete a PNFD",
- tags=["PNFD API"],
+ tags=[TAG_PNFD_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: "No content",
@@ -76,7 +77,7 @@ def pnfd_info_rd(request, **kwargs): # TODO
@swagger_auto_schema(
method='POST',
operation_description="Create a PNFD",
- tags=["PNFD API"],
+ tags=[TAG_PNFD_API],
request_body=CreatePnfdInfoRequestSerializer(),
responses={
status.HTTP_201_CREATED: PnfdInfoSerializer(),
@@ -86,7 +87,7 @@ def pnfd_info_rd(request, **kwargs): # TODO
@swagger_auto_schema(
method='GET',
operation_description="Query multiple PNFDs",
- tags=["PNFD API"],
+ tags=[TAG_PNFD_API],
request_body=no_body,
responses={
status.HTTP_200_OK: PnfdInfosSerializer(),
@@ -111,7 +112,7 @@ def pnf_descriptors_rc(request):
@swagger_auto_schema(
method='PUT',
operation_description="Upload PNFD content",
- tags=["PNFD API"],
+ tags=[TAG_PNFD_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: "No content",
@@ -121,7 +122,7 @@ def pnf_descriptors_rc(request):
@swagger_auto_schema(
method='GET',
operation_description="Fetch PNFD content",
- tags=["PNFD API"],
+ tags=[TAG_PNFD_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: 'PNFD file',
@@ -151,7 +152,7 @@ def pnfd_content_ru(request, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="Parse PNF model",
- tags=["Parser API"],
+ tags=[TAG_PARSER_API],
request_body=ParseModelRequestSerializer,
responses={
status.HTTP_202_ACCEPTED: ParseModelResponseSerializer,
diff --git a/catalog/packages/views/vnf_package_artifact_views.py b/catalog/packages/views/vnf_package_artifact_views.py
index 23a76c7..9dd9b57 100644
--- a/catalog/packages/views/vnf_package_artifact_views.py
+++ b/catalog/packages/views/vnf_package_artifact_views.py
@@ -14,13 +14,13 @@
import logging
+from django.http import FileResponse
from drf_yasg.utils import swagger_auto_schema
from rest_framework import status
from rest_framework.views import APIView
-from django.http import FileResponse
-from catalog.packages.serializers.response import ProblemDetailsSerializer
from catalog.packages.biz.vnf_pkg_artifacts import FetchVnfPkgArtifact
+from catalog.packages.const import TAG_VNF_PACKAGE_API
from .common import view_safe_call_with_log
logger = logging.getLogger(__name__)
@@ -38,11 +38,11 @@ VALID_FILTERS = [
class FetchVnfPkgmArtifactsView(APIView):
@swagger_auto_schema(
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
responses={
- status.HTTP_200_OK: "HTTP_200_OK",
- status.HTTP_404_NOT_FOUND: ProblemDetailsSerializer(),
- status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer()
+ status.HTTP_200_OK: "Return the artifact file",
+ status.HTTP_404_NOT_FOUND: "Artifact not found",
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
}
)
@view_safe_call_with_log(logger=logger)
diff --git a/catalog/packages/views/vnf_package_subscription_views.py b/catalog/packages/views/vnf_package_subscription_views.py
index 27be798..8289275 100644
--- a/catalog/packages/views/vnf_package_subscription_views.py
+++ b/catalog/packages/views/vnf_package_subscription_views.py
@@ -16,19 +16,20 @@ import logging
from drf_yasg.utils import swagger_auto_schema
from rest_framework import status
-from rest_framework.views import APIView
from rest_framework.response import Response
+from rest_framework.views import APIView
-from catalog.packages.serializers.vnf_pkg_subscription import PkgmSubscriptionRequestSerializer
-from catalog.packages.serializers.vnf_pkg_subscription import PkgmSubscriptionSerializer
-from catalog.packages.serializers.vnf_pkg_subscription import PkgmSubscriptionsSerializer
-from catalog.packages.serializers.response import ProblemDetailsSerializer
from catalog.packages.biz.vnf_pkg_subscription import CreateSubscription
from catalog.packages.biz.vnf_pkg_subscription import QuerySubscription
from catalog.packages.biz.vnf_pkg_subscription import TerminateSubscription
+from catalog.packages.const import TAG_VNF_PACKAGE_API
+from catalog.packages.serializers.response import ProblemDetailsSerializer
+from catalog.packages.serializers.vnf_pkg_subscription import PkgmSubscriptionRequestSerializer
+from catalog.packages.serializers.vnf_pkg_subscription import PkgmSubscriptionSerializer
+from catalog.packages.serializers.vnf_pkg_subscription import PkgmSubscriptionsSerializer
from catalog.packages.views.common import validate_data
-from catalog.pub.exceptions import VnfPkgSubscriptionException
from catalog.pub.exceptions import BadRequestException
+from catalog.pub.exceptions import VnfPkgSubscriptionException
from .common import view_safe_call_with_log
logger = logging.getLogger(__name__)
@@ -46,7 +47,7 @@ VALID_FILTERS = [
class CreateQuerySubscriptionView(APIView):
@swagger_auto_schema(
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=PkgmSubscriptionRequestSerializer,
responses={
status.HTTP_201_CREATED: PkgmSubscriptionSerializer(),
@@ -63,7 +64,7 @@ class CreateQuerySubscriptionView(APIView):
return Response(data=subscription_info.data, status=status.HTTP_201_CREATED)
@swagger_auto_schema(
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
responses={
status.HTTP_200_OK: PkgmSubscriptionSerializer(),
status.HTTP_400_BAD_REQUEST: ProblemDetailsSerializer(),
@@ -89,7 +90,7 @@ class CreateQuerySubscriptionView(APIView):
class QueryTerminateSubscriptionView(APIView):
@swagger_auto_schema(
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
responses={
status.HTTP_200_OK: PkgmSubscriptionSerializer(),
status.HTTP_404_NOT_FOUND: ProblemDetailsSerializer(),
@@ -109,7 +110,7 @@ class QueryTerminateSubscriptionView(APIView):
return Response(data=subscription_serializer.data, status=status.HTTP_200_OK)
@swagger_auto_schema(
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
responses={
status.HTTP_204_NO_CONTENT: "",
status.HTTP_404_NOT_FOUND: ProblemDetailsSerializer(),
diff --git a/catalog/packages/views/vnf_package_views.py b/catalog/packages/views/vnf_package_views.py
index 76891f2..6747269 100644
--- a/catalog/packages/views/vnf_package_views.py
+++ b/catalog/packages/views/vnf_package_views.py
@@ -20,14 +20,15 @@ from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
-from catalog.packages.serializers.upload_vnf_pkg_from_uri_req import UploadVnfPackageFromUriRequestSerializer
-from catalog.packages.serializers.create_vnf_pkg_info_req import CreateVnfPkgInfoRequestSerializer
-from catalog.packages.serializers.vnf_pkg_info import VnfPkgInfoSerializer
-from catalog.packages.serializers.vnf_pkg_infos import VnfPkgInfosSerializer
from catalog.packages.biz.vnf_package import VnfPackage
from catalog.packages.biz.vnf_package import VnfPkgUploadThread
-from catalog.packages.biz.vnf_package import parse_vnfd_and_save
from catalog.packages.biz.vnf_package import handle_upload_failed
+from catalog.packages.biz.vnf_package import parse_vnfd_and_save
+from catalog.packages.const import TAG_VNF_PACKAGE_API
+from catalog.packages.serializers.create_vnf_pkg_info_req import CreateVnfPkgInfoRequestSerializer
+from catalog.packages.serializers.upload_vnf_pkg_from_uri_req import UploadVnfPackageFromUriRequestSerializer
+from catalog.packages.serializers.vnf_pkg_info import VnfPkgInfoSerializer
+from catalog.packages.serializers.vnf_pkg_infos import VnfPkgInfosSerializer
from .common import validate_data
from .common import view_safe_call_with_log
@@ -37,7 +38,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method="GET",
operation_description="Query multiple VNF package resource",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=no_body,
responses={
status.HTTP_200_OK: VnfPkgInfosSerializer(),
@@ -47,7 +48,7 @@ logger = logging.getLogger(__name__)
@swagger_auto_schema(
method="POST",
operation_description="Create an individual VNF package resource",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=CreateVnfPkgInfoRequestSerializer,
responses={
status.HTTP_201_CREATED: VnfPkgInfoSerializer(),
@@ -75,7 +76,7 @@ def vnf_packages_rc(request):
@swagger_auto_schema(
method="GET",
operation_description="Read VNFD of an on-boarded VNF package",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=no_body,
responses={
status.HTTP_200_OK: VnfPkgInfosSerializer(),
@@ -99,7 +100,7 @@ def vnfd_rd(request, **kwargs):
@swagger_auto_schema(
method='PUT',
operation_description="Upload VNF package content",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=no_body,
responses={
status.HTTP_202_ACCEPTED: "Successfully",
@@ -109,10 +110,10 @@ def vnfd_rd(request, **kwargs):
@swagger_auto_schema(
method="GET",
operation_description="Fetch VNF package content",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=no_body,
responses={
- status.HTTP_200_OK: VnfPkgInfosSerializer(),
+ status.HTTP_200_OK: "Return csar file of VNF package",
status.HTTP_404_NOT_FOUND: "VNF package does not exist",
status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
}
@@ -141,7 +142,7 @@ def package_content_ru(request, **kwargs):
@swagger_auto_schema(
method='POST',
operation_description="Upload VNF package content from uri",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=UploadVnfPackageFromUriRequestSerializer,
responses={
status.HTTP_202_ACCEPTED: "Successfully",
@@ -165,7 +166,7 @@ def upload_from_uri_c(request, **kwargs):
@swagger_auto_schema(
method='GET',
operation_description="Query an individual VNF package resource",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=no_body,
responses={
status.HTTP_200_OK: VnfPkgInfoSerializer(),
@@ -176,7 +177,7 @@ def upload_from_uri_c(request, **kwargs):
@swagger_auto_schema(
method='DELETE',
operation_description="Delete an individual VNF package resource",
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=no_body,
responses={
status.HTTP_204_NO_CONTENT: "No content",
diff --git a/catalog/samples/views.py b/catalog/samples/views.py
index 006f0e5..bca716a 100644
--- a/catalog/samples/views.py
+++ b/catalog/samples/views.py
@@ -15,10 +15,13 @@
import logging
import traceback
+from drf_yasg.utils import swagger_auto_schema
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
+TAG_SAMPLE_INTERFACE = "Sample interface"
+
logger = logging.getLogger(__name__)
@@ -26,6 +29,9 @@ class SampleList(APIView):
"""
List all samples.
"""
+
+ @swagger_auto_schema(
+ tags=[TAG_SAMPLE_INTERFACE])
def get(self, request, format=None):
logger.debug("get")
return Response({"status": "active"})
@@ -35,12 +41,17 @@ class CallbackSample(APIView):
"""
Callback Sample.
"""
+
+ @swagger_auto_schema(
+ tags=[TAG_SAMPLE_INTERFACE])
def get(self, request, format=None):
logger.debug("Callback Sample")
return Response(data={}, status=status.HTTP_204_NO_CONTENT)
class TablesList(APIView):
+ @swagger_auto_schema(
+ tags=[TAG_SAMPLE_INTERFACE])
def delete(self, request, modelName):
logger.debug("Start delete model %s", modelName)
try:
@@ -54,6 +65,8 @@ class TablesList(APIView):
return Response(data={"error": "failed"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
return Response(data={}, status=status.HTTP_204_NO_CONTENT)
+ @swagger_auto_schema(
+ tags=["Sample interface"])
def get(self, request, modelName):
logger.debug("Get model %s", modelName)
count = 0