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,
@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(),
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
@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(),
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
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:
"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"
# 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
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)
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(
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
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)
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):
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"])
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)
###############################################################
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},
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)
###############################################################
"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)
# 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
"inputs": []
}
resp = self.client.post(
- "/api/catalog/v1/parservnfd",
+ "/api/parser/v1/parservnfd",
req_data,
format='json'
)
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'
)
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'),
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()),
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
@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,
@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,
@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,
@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,
@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(
@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(
@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: "",
@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,
@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(
@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(
@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(
@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(
@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,
@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,
@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,
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):
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
@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(),
@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",
@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(),
@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(),
@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',
@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",
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__)
@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,
@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(),
@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(),
@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',
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
@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(),
@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",
@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(),
@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(),
@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",
@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',
@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,
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__)
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)
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__)
class CreateQuerySubscriptionView(APIView):
@swagger_auto_schema(
- tags=["VNF Package API"],
+ tags=[TAG_VNF_PACKAGE_API],
request_body=PkgmSubscriptionRequestSerializer,
responses={
status.HTTP_201_CREATED: PkgmSubscriptionSerializer(),
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(),
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(),
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(),
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
@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(),
@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(),
@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(),
@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",
@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"
}
@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",
@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(),
@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",
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__)
"""
List all samples.
"""
+
+ @swagger_auto_schema(
+ tags=[TAG_SAMPLE_INTERFACE])
def get(self, request, format=None):
logger.debug("get")
return Response({"status": "active"})
"""
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:
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