import logging
+from django.http import FileResponse
from drf_yasg.utils import swagger_auto_schema
+from drf_yasg import openapi
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
+from catalog.swagger.views import EtsiCatalogFileAutoSchema
logger = logging.getLogger(__name__)
class FetchVnfPkgmArtifactsView(APIView):
@swagger_auto_schema(
- tags=["VNF Package API"],
+ auto_schema=EtsiCatalogFileAutoSchema,
+ 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: openapi.Response("Return the artifact file",
+ schema=openapi.Schema(format=openapi.FORMAT_BINARY,
+ type=openapi.TYPE_STRING)),
+ status.HTTP_404_NOT_FOUND: openapi.Response("Artifact not found",
+ schema=openapi.Schema(type=openapi.TYPE_STRING)),
+ status.HTTP_500_INTERNAL_SERVER_ERROR: openapi.Response("Internal error",
+ schema=openapi.Schema(type=openapi.TYPE_STRING))
}
)
@view_safe_call_with_log(logger=logger)
def get(self, request, vnfPkgId, artifactPath):
+ """
+ Fetch artifact from vnf package
+ :param request:
+ :param vnfPkgId:
+ :param artifactPath:
+ :return:
+ """
logger.debug("FetchVnfPkgmArtifactsView--get::> ")
resp_data = FetchVnfPkgArtifact().fetch(vnfPkgId, artifactPath)