From: biancunkang Date: Wed, 22 Aug 2018 10:13:46 +0000 (+0800) Subject: Deal with nfPackage X-Git-Tag: 1.2.0~99^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F25%2F61825%2F2;p=vfc%2Fnfvo%2Fcatalog.git Deal with nfPackage Add view for query Change-Id: I091f7eba028820532d3d980e54b8cb4794c575b1 Issue-ID: VFC-1038 Signed-off-by: biancunkang --- diff --git a/catalog/packages/biz/nf_package.py b/catalog/packages/biz/nf_package.py index b660d07b..44f2f463 100644 --- a/catalog/packages/biz/nf_package.py +++ b/catalog/packages/biz/nf_package.py @@ -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 diff --git a/catalog/packages/views/vnfpkg_views.py b/catalog/packages/views/vnfpkg_views.py index 1ef8aebe..fc019770 100644 --- a/catalog/packages/views/vnfpkg_views.py +++ b/catalog/packages/views/vnfpkg_views.py @@ -25,7 +25,7 @@ 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.nf_package import create_vnf_pkg +from catalog.packages.biz.nf_package import create_vnf_pkg, query_multiple logger = logging.getLogger(__name__) @@ -33,13 +33,25 @@ logger = logging.getLogger(__name__) class vnf_packages(APIView): @swagger_auto_schema( responses={ - # status.HTTP_200_OK: Serializer(), + status.HTTP_200_OK: VnfPkgInfoSerializer(), status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error" } ) def get(self, request): - # TODO - return None + logger.debug("Query VNF Packages> %s" % request.data) + try: + res = query_multiple() + query_serializer = VnfPkgInfoSerializer(data=res) + if not query_serializer.is_valid(): + raise CatalogException + return Response(data=query_serializer.data, status=status.HTTP_200_OK) + except CatalogException: + logger.error(traceback.format_exc()) + return Response(data={'error': 'Querying 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) @swagger_auto_schema( request_body=CreateVnfPkgInfoRequestSerializer(), @@ -62,6 +74,10 @@ class vnf_packages(APIView): except CatalogException: logger.error(traceback.format_exc()) return Response(data={'error': 'Creating 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) class vnf_package(APIView): diff --git a/catalog/pub/database/models.py b/catalog/pub/database/models.py index 3094b2b6..889a7e6d 100644 --- a/catalog/pub/database/models.py +++ b/catalog/pub/database/models.py @@ -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