Deal with nfPackage 47/61947/2
authorbiancunkang <bian.cunkang@zte.com.cn>
Thu, 23 Aug 2018 03:15:43 +0000 (11:15 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Thu, 23 Aug 2018 03:24:35 +0000 (11:24 +0800)
Modify url and delete functions in old files

Change-Id: Ie90c59fda9f73335afee61eb7090a57ccdc0e04e
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/biz/vnfpackage.py
catalog/packages/tests/test_vnf_package.py
catalog/packages/urls.py
catalog/packages/views/vnfpkg_views.py

index 44f2f46..55de809 100644 (file)
@@ -18,8 +18,6 @@ import os
 import sys
 import threading
 import traceback
-import urllib2
-import uuid
 
 from catalog.pub.config.config import CATALOG_ROOT_PATH, CATALOG_URL_PATH, MSB_SERVICE_IP
 from catalog.pub.config.config import REG_TO_MSB_REG_PARAM
@@ -29,7 +27,6 @@ from catalog.pub.msapi import sdc
 from catalog.pub.utils import fileutil
 from catalog.pub.utils import toscaparser
 from catalog.pub.utils.jobutil import JobUtil
-from catalog.pub.utils.values import ignore_case_get
 
 logger = logging.getLogger(__name__)
 
@@ -79,40 +76,6 @@ def parse_vnfd(csar_id, inputs):
     return [0, ret]
 
 
-def create_vnf_pkg(data):
-    user_defined_data = ignore_case_get(data, "userDefinedData")
-    vnfPkgId = str(uuid.uuid4())
-    VnfPackageModel.objects.create(
-        vnfPackageId=vnfPkgId,
-        onboardingState="CREATED",
-        operationalState="DISABLED",
-        usageState="NOT_IN_USE",
-        userDefinedData=user_defined_data
-    )
-    data = {
-        "id": vnfPkgId,
-        "onboardingState": "CREATED",
-        "operationalState": "DISABLED",
-        "usageState": "NOT_IN_USE",
-        "userDefinedData": user_defined_data,
-        "_links": None
-    }
-    return data
-
-
-def query_multiple():
-    # TODO
-    data = {
-        "id": "1",
-        "onboardingState": "CREATED",
-        "operationalState": "DISABLED",
-        "usageState": "NOT_IN_USE",
-        "userDefinedData": "1",
-        "_links": None
-    }
-    return data
-
-
 class NfDistributeThread(threading.Thread):
     """
     Sdc NF Package Distribute
@@ -232,38 +195,6 @@ class NfPkgDeleteThread(threading.Thread):
         JobUtil.add_job_status(self.job_id, 100, "Delete CSAR(%s) successfully." % self.csar_id)
 
 
-class VnfpkgUploadThread(threading.Thread):
-    def __init__(self, data, vnfPkgId):
-        threading.Thread.__init__(self)
-        self.vnfPkgId = vnfPkgId
-        self.data = data
-
-    def run(self):
-        try:
-            self.upload_vnfPkg_from_uri()
-        except CatalogException as e:
-            logger.error(e.message)
-        except Exception as e:
-            logger.error(e.message)
-            logger.error(traceback.format_exc())
-            logger.error(str(sys.exc_info()))
-
-    def upload_vnfPkg_from_uri(self):
-        logger.debug("UploadVnf %s" % self.vnfPkgId)
-        uri = ignore_case_get(self.data, "addressInformation")
-        upload_path = os.path.join(CATALOG_ROOT_PATH, self.vnfPkgId)
-        if not os.path.exists(upload_path):
-            os.makedirs(upload_path, 0o777)
-        r = urllib2.Request(uri)
-        req = urllib2.urlopen(r)
-
-        upload_file_name = os.path.join(upload_path, os.path.basename(uri))
-        save_file = open(upload_file_name, "wb")
-        save_file.write(req.read())
-        save_file.close()
-        req.close()
-
-
 class NfPackage(object):
     """
     Actions for sdc nf package.
index 2f90e7b..bbb52a4 100644 (file)
@@ -21,7 +21,7 @@ from rest_framework.test import APIClient
 from django.test import TestCase
 from rest_framework import status
 from catalog.pub.config.config import CATALOG_ROOT_PATH
-from catalog.packages.biz.vnfpackage import VnfpkgUploadThread
+from catalog.packages.biz.vnf_package import VnfpkgUploadThread
 
 
 class MockReq():
index 3dec2eb..f5dfecc 100644 (file)
@@ -14,7 +14,7 @@
 
 from django.conf.urls import url
 
-from catalog.packages.views.vnfpkg_views import package_content, upload_from_uri, vnf_packages
+from catalog.packages.views import vnf_package_views
 from catalog.packages.views import (catalog_views, ns_descriptor_views,
                                     nsd_content_views, pnf_descriptor_views,
                                     pnfd_content_views)
@@ -42,13 +42,13 @@ urlpatterns = [
 
     # url(r'^api/nsd/v1/subscriptions', nsd_subscriptions.as_view(), name='subscriptions_rc'),
     # url(r'^api/nsd/v1/subscriptions/(?P<subscriptionId>[0-9a-zA-Z\-\_]+)$', nsd_subscription.as_view(), name='subscription_rd'),
-    url(r'^api/vnfpkgm/v1/vnf_packages$', vnf_packages.as_view(), name='vnf_packages_rc'),
+    url(r'^api/vnfpkgm/v1/vnf_packages$', vnf_package_views.vnf_packages_rc, name='vnf_packages_rc'),
     # url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)$', vnf_package.as_view(), name='vnf_package_rd'),
     # 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\-\_]+)/package_content$',
-        package_content.as_view(), name='package_content_ru'),
+        vnf_package_views.upload_vnf_pkg_content, name='package_content_ru'),
     url(r'^api/vnfpkgm/v1/vnf_packages/(?P<vnfPkgId>[0-9a-zA-Z\-\_]+)/package_content/upload_from_uri$',
-        upload_from_uri.as_view(), name='upload_from_uri_c'),
+        vnf_package_views.upload_vnf_pkg_from_uri, name='upload_from_uri_c'),
     # 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', vnfpkg_subscriptions.as_view(), name='subscriptions_rc'),
     # url(r'^api/vnfpkgm/v1/subscriptions/(?P<subscriptionId>[0-9a-zA-Z\-\_]+)$', vnfpkg_subscription.as_view(), name='subscription_rd'),
index 5b5e4e8..9f1bbc9 100644 (file)
 # See the License for the specific language governing permissions and\r
 # limitations under the License.\r
 \r
-import os\r
-import traceback\r
 import logging\r
-from catalog.pub.config.config import CATALOG_ROOT_PATH\r
+\r
 from drf_yasg.utils import swagger_auto_schema\r
 from rest_framework import status\r
 from rest_framework.views import APIView\r
-from rest_framework.response import Response\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.vnfpackage import create_vnf_pkg, query_multiple\r
-\r
-logger = logging.getLogger(__name__)\r
 \r
 \r
-class vnf_packages(APIView):\r
-    @swagger_auto_schema(\r
-        responses={\r
-            status.HTTP_200_OK: VnfPkgInfoSerializer(),\r
-            status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
-        }\r
-    )\r
-    def get(self, request):\r
-        logger.debug("Query VNF Packages> %s" % request.data)\r
-        try:\r
-            res = query_multiple()\r
-            query_serializer = VnfPkgInfoSerializer(data=res)\r
-            if not query_serializer.is_valid():\r
-                raise CatalogException\r
-            return Response(data=query_serializer.data, status=status.HTTP_200_OK)\r
-        except CatalogException:\r
-            logger.error(traceback.format_exc())\r
-            return Response(data={'error': 'Querying vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
-        except Exception as e:\r
-            logger.error(e.message)\r
-            logger.error(traceback.format_exc())\r
-            return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
-\r
-    @swagger_auto_schema(\r
-        request_body=CreateVnfPkgInfoRequestSerializer(),\r
-        responses={\r
-            status.HTTP_201_CREATED: VnfPkgInfoSerializer(),\r
-            status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
-        }\r
-    )\r
-    def post(self, request):\r
-        logger.debug("CreateVnfPkg> %s" % request.data)\r
-        try:\r
-            req_serializer = CreateVnfPkgInfoRequestSerializer(data=request.data)\r
-            if not req_serializer.is_valid():\r
-                raise CatalogException\r
-            res = create_vnf_pkg(req_serializer.data)\r
-            create_vnf_pkg_resp_serializer = VnfPkgInfoSerializer(data=res)\r
-            if not create_vnf_pkg_resp_serializer.is_valid():\r
-                raise CatalogException\r
-            return Response(data=create_vnf_pkg_resp_serializer.data, status=status.HTTP_201_CREATED)\r
-        except CatalogException:\r
-            logger.error(traceback.format_exc())\r
-            return Response(data={'error': 'Creating vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
-        except Exception as e:\r
-            logger.error(e.message)\r
-            logger.error(traceback.format_exc())\r
-            return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
+logger = logging.getLogger(__name__)\r
 \r
 \r
 class vnf_package(APIView):\r
@@ -126,79 +68,6 @@ class vnfd(APIView):
         return None\r
 \r
 \r
-class package_content(APIView):\r
-    @swagger_auto_schema(\r
-        responses={\r
-            # status.HTTP_200_OK: Serializer(),\r
-            status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
-        }\r
-    )\r
-    def get(self, request):\r
-        # TODO\r
-        return None\r
-\r
-    @swagger_auto_schema(\r
-        # request_body=CreateVnfReqSerializer(),\r
-        responses={\r
-            #     status.HTTP_201_CREATED: CreateVnfRespSerializer(),\r
-            status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
-        }\r
-    )\r
-    def post(self, request):\r
-        # TODO\r
-        return None\r
-\r
-    def put(self, request, vnfPkgId):\r
-        logger.debug("UploadVnf %s" % vnfPkgId)\r
-        file_object = request.FILES.get('file')\r
-        upload_path = os.path.join(CATALOG_ROOT_PATH, vnfPkgId)\r
-        if not os.path.exists(upload_path):\r
-            os.makedirs(upload_path, 0o777)\r
-        try:\r
-            upload_file_name = os.path.join(upload_path, file_object.name)\r
-            with open(upload_file_name, 'wb+') as dest_file:\r
-                for chunk in file_object.chunks():\r
-                    dest_file.write(chunk)\r
-        except Exception as e:\r
-            logger.error("File upload exception.[%s:%s]" % (type(e), str(e)))\r
-            logger.error("%s", traceback.format_exc())\r
-        return Response(None, status.HTTP_202_ACCEPTED)\r
-\r
-\r
-class upload_from_uri(APIView):\r
-    @swagger_auto_schema(\r
-        responses={\r
-            # status.HTTP_200_OK: Serializer(),\r
-            status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
-        }\r
-    )\r
-    def get(self, request):\r
-        # TODO\r
-        return None\r
-\r
-    @swagger_auto_schema(\r
-        request_body=UploadVnfPackageFromUriRequestSerializer(),\r
-        responses={\r
-            status.HTTP_202_ACCEPTED: "Successfully",\r
-            status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
-        }\r
-    )\r
-    def post(self, request, vnfPkgId):\r
-        try:\r
-            req_serializer = UploadVnfPackageFromUriRequestSerializer(data=request.data)\r
-            if not req_serializer.is_valid():\r
-                raise CatalogException\r
-            VnfpkgUploadThread(req_serializer.data, vnfPkgId).start()\r
-            return Response(None, status=status.HTTP_202_ACCEPTED)\r
-        except CatalogException:\r
-            logger.error(traceback.format_exc())\r
-            return Response(data={'error': 'Upload vnfPkg failed.'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
-        except Exception as e:\r
-            logger.error(e.message)\r
-            logger.error(traceback.format_exc())\r
-            return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
-\r
-\r
 class artifacts(APIView):\r
     @swagger_auto_schema(\r
         responses={\r