Deal with nfPackage 43/61943/1
authorbiancunkang <bian.cunkang@zte.com.cn>
Thu, 23 Aug 2018 02:44:37 +0000 (10:44 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Thu, 23 Aug 2018 02:44:37 +0000 (10:44 +0800)
Rename nf_package to vnfpackage and seperate views from the old one

Change-Id: Id3dd306fbb2fd43d3c5986875dbc2dcf47719ccb
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/biz/vnfpackage.py [moved from catalog/packages/biz/nf_package.py with 100% similarity]
catalog/packages/tests/test_nf.py
catalog/packages/views/catalog_views.py
catalog/packages/views/vnf_package_views.py
catalog/packages/views/vnfpkg_views.py

index 576c956..85f45ba 100644 (file)
@@ -20,13 +20,13 @@ from rest_framework.test import APIClient
 from django.test import TestCase
 from rest_framework import status
 
-from catalog.packages.biz.nf_package import NfDistributeThread, NfPkgDeleteThread
+from catalog.packages.biz.vnfpackage import NfDistributeThread, NfPkgDeleteThread
 from catalog.pub.database.models import JobStatusModel, JobModel
 from catalog.pub.database.models import VnfPackageModel
 from catalog.pub.msapi import sdc
 from catalog.pub.utils import restcall, toscaparser
 from catalog.pub.config.config import CATALOG_ROOT_PATH
-from catalog.packages.biz.nf_package import VnfpkgUploadThread
+from catalog.packages.biz.vnfpackage import VnfpkgUploadThread
 
 
 class MockReq():
index 5fc6262..b735cb5 100644 (file)
@@ -21,7 +21,7 @@ from rest_framework import status
 from rest_framework.decorators import api_view
 from rest_framework.response import Response
 
-from catalog.packages.biz import nf_package, ns_package
+from catalog.packages.biz import vnfpackage, ns_package
 from catalog.packages.serializers.catalog_serializers import InternalErrorRequestSerializer
 from catalog.packages.serializers.catalog_serializers import NfPackageDistributeRequestSerializer
 from catalog.packages.serializers.catalog_serializers import NfPackageSerializer
@@ -114,7 +114,7 @@ def nfpackages_rc(request, *args, **kwargs):
         request.method)
     ret, normal_status, response_serializer, validation_error = None, None, None, None
     if request.method == 'GET':
-        ret = nf_package.nf_get_csars()
+        ret = vnfpackage.nf_get_csars()
         normal_status = status.HTTP_200_OK
         response_serializer = NfPackagesSerializer(data=ret[1])
     elif request.method == 'POST':
@@ -129,7 +129,7 @@ def nfpackages_rc(request, *args, **kwargs):
         vim_ids = ignore_case_get(request_serivalizer.data, "vimIds")
         lab_vim_id = ignore_case_get(request_serivalizer.data, "labVimId")
         job_id = str(uuid.uuid4())
-        nf_package.NfDistributeThread(
+        vnfpackage.NfDistributeThread(
             csar_id, vim_ids, lab_vim_id, job_id).start()
         ret = [0, {"jobId": job_id}]
         normal_status = status.HTTP_202_ACCEPTED
@@ -249,13 +249,13 @@ def nf_rd_csar(request, *args, **kwargs):
     ret, normal_status, response_serializer, validation_error = None, None, None, None
 
     if request.method == 'GET':
-        ret = nf_package.nf_get_csar(csar_id)
+        ret = vnfpackage.nf_get_csar(csar_id)
         normal_status = status.HTTP_200_OK
         response_serializer = NfPackageSerializer(data=ret[1])
 
     elif request.method == 'DELETE':
         job_id = str(uuid.uuid4())
-        nf_package.NfPkgDeleteThread(csar_id, job_id).start()
+        vnfpackage.NfPkgDeleteThread(csar_id, job_id).start()
         ret = [0, {"jobId": job_id}]
         normal_status = status.HTTP_202_ACCEPTED
         response_serializer = PostJobResponseSerializer(data=ret[1])
@@ -324,7 +324,7 @@ def vnf_model_parser(request, *args, **kwargs):
         fun_name(),
         csar_id,
         inputs)
-    ret = nf_package.parse_vnfd(csar_id, inputs)
+    ret = vnfpackage.parse_vnfd(csar_id, inputs)
     logger.info("Leave %s, Return value is %s", fun_name(), ret)
     if ret[0] != 0:
         return Response(
index e3a5d69..11de348 100644 (file)
 
 import traceback
 import logging
+import os
+
+from catalog.pub.config.config import CATALOG_ROOT_PATH
 from drf_yasg.utils import swagger_auto_schema, no_body
 from rest_framework import status
 from rest_framework.decorators import api_view
 from rest_framework.response import Response
 from catalog.pub.exceptions import CatalogException
+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.biz.vnf_package import create_vnf_pkg, query_multiple
+from catalog.packages.biz.vnf_package import create_vnf_pkg, query_multiple, VnfpkgUploadThread
 
 logger = logging.getLogger(__name__)
 
@@ -80,3 +84,56 @@ def vnf_packages_rc(request):
             logger.error(e.message)
             logger.error(traceback.format_exc())
             return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+
+
+@swagger_auto_schema(
+    method='PUT',
+    operation_description="Upload VNF package content",
+    request_body=no_body,
+    responses={
+        status.HTTP_202_ACCEPTED: "Successfully",
+        status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
+    }
+)
+@api_view(http_method_names=['PUT'])
+def upload_vnf_pkg_content(request, vnfPkgId):
+    logger.debug("UploadVnf %s" % vnfPkgId)
+    file_object = request.FILES.get('file')
+    upload_path = os.path.join(CATALOG_ROOT_PATH, vnfPkgId)
+    if not os.path.exists(upload_path):
+        os.makedirs(upload_path, 0o777)
+    try:
+        upload_file_name = os.path.join(upload_path, file_object.name)
+        with open(upload_file_name, 'wb+') as dest_file:
+            for chunk in file_object.chunks():
+                dest_file.write(chunk)
+    except Exception as e:
+        logger.error("File upload exception.[%s:%s]" % (type(e), str(e)))
+        logger.error("%s", traceback.format_exc())
+    return Response(None, status.HTTP_202_ACCEPTED)
+
+
+@swagger_auto_schema(
+    method='POST',
+    operation_description="Upload VNF package content from uri",
+    request_body=UploadVnfPackageFromUriRequestSerializer,
+    responses={
+        status.HTTP_202_ACCEPTED: "Successfully",
+        status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
+    }
+)
+@api_view(http_method_names=['POST'])
+def upload_vnf_pkg_from_uri(request, vnfPkgId):
+    try:
+        req_serializer = UploadVnfPackageFromUriRequestSerializer(data=request.data)
+        if not req_serializer.is_valid():
+            raise CatalogException
+        VnfpkgUploadThread(req_serializer.data, vnfPkgId).start()
+        return Response(None, status=status.HTTP_202_ACCEPTED)
+    except CatalogException:
+        logger.error(traceback.format_exc())
+        return Response(data={'error': 'Upload vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+    except Exception as e:
+        logger.error(e.message)
+        logger.error(traceback.format_exc())
+        return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
index fc01977..5b5e4e8 100644 (file)
@@ -20,12 +20,12 @@ from drf_yasg.utils import swagger_auto_schema
 from rest_framework import status\r
 from rest_framework.views import APIView\r
 from rest_framework.response import Response\r
-from catalog.packages.biz.nf_package import VnfpkgUploadThread\r
+from catalog.packages.biz.vnfpackage import VnfpkgUploadThread\r
 from catalog.pub.exceptions import CatalogException\r
 from catalog.packages.serializers.upload_vnf_pkg_from_uri_req import UploadVnfPackageFromUriRequestSerializer\r
 from catalog.packages.serializers.create_vnf_pkg_info_req import CreateVnfPkgInfoRequestSerializer\r
 from catalog.packages.serializers.vnf_pkg_info import VnfPkgInfoSerializer\r
-from catalog.packages.biz.nf_package import create_vnf_pkg, query_multiple\r
+from catalog.packages.biz.vnfpackage import create_vnf_pkg, query_multiple\r
 \r
 logger = logging.getLogger(__name__)\r
 \r