Deal with nfPackage 25/61825/2
authorbiancunkang <bian.cunkang@zte.com.cn>
Wed, 22 Aug 2018 10:13:46 +0000 (18:13 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Wed, 22 Aug 2018 10:18:43 +0000 (18:18 +0800)
Add view for query

Change-Id: I091f7eba028820532d3d980e54b8cb4794c575b1
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/biz/nf_package.py
catalog/packages/views/vnfpkg_views.py
catalog/pub/database/models.py

index b660d07..44f2f46 100644 (file)
@@ -83,7 +83,11 @@ def create_vnf_pkg(data):
     user_defined_data = ignore_case_get(data, "userDefinedData")
     vnfPkgId = str(uuid.uuid4())
     VnfPackageModel.objects.create(
-        vnfPackageId=vnfPkgId
+        vnfPackageId=vnfPkgId,
+        onboardingState="CREATED",
+        operationalState="DISABLED",
+        usageState="NOT_IN_USE",
+        userDefinedData=user_defined_data
     )
     data = {
         "id": vnfPkgId,
@@ -96,6 +100,19 @@ def create_vnf_pkg(data):
     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
index 1ef8aeb..fc01977 100644 (file)
@@ -25,7 +25,7 @@ from catalog.pub.exceptions import CatalogException
 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\r
+from catalog.packages.biz.nf_package import create_vnf_pkg, query_multiple\r
 \r
 logger = logging.getLogger(__name__)\r
 \r
@@ -33,13 +33,25 @@ logger = logging.getLogger(__name__)
 class vnf_packages(APIView):\r
     @swagger_auto_schema(\r
         responses={\r
-            # status.HTTP_200_OK: Serializer(),\r
+            status.HTTP_200_OK: VnfPkgInfoSerializer(),\r
             status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"\r
         }\r
     )\r
     def get(self, request):\r
-        # TODO\r
-        return None\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
@@ -62,6 +74,10 @@ class vnf_packages(APIView):
         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
 \r
 \r
 class vnf_package(APIView):\r
index 3094b2b..889a7e6 100644 (file)
@@ -20,7 +20,6 @@ class NSPackageModel(models.Model):
     nsPackageUri = models.CharField(db_column='NSPACKAGEURI', max_length=300, null=True, blank=True)
     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
     sdcCsarId = models.CharField(db_column='SDCCSARID', max_length=50, null=True, blank=True)  # SdcCSARUri
-    onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
     operationalState = models.CharField(db_column='OPERATIONALSTATE', max_length=20, blank=True, null=True)  # operationalState
     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending
@@ -43,6 +42,7 @@ class VnfPackageModel(models.Model):
     vnfPackageUri = models.CharField(db_column='VNFPACKAGEURI', max_length=300, null=True, blank=True)  # downloadUri
     SdcCSARUri = models.CharField(db_column='SDCCSARURI', max_length=300, null=True, blank=True)  # SdcCSARUri
     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
+    onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
     operationalState = models.CharField(db_column='OPERATIONALSTATE', max_length=20, blank=True, null=True)  # operationalState
     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending