Add const file 57/63657/1
authorbiancunkang <bian.cunkang@zte.com.cn>
Thu, 30 Aug 2018 02:26:07 +0000 (10:26 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Thu, 30 Aug 2018 02:26:07 +0000 (10:26 +0800)
Add a const file and deal with the associated change

Change-Id: Ic9e3231b6afd4d5cffe28ab4d997b574af4f52d2
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/biz/ns_descriptor.py
catalog/packages/biz/pnf_descriptor.py
catalog/packages/biz/vnf_package.py
catalog/packages/const.py [new file with mode: 0644]
catalog/packages/serializers/nsd_infos.py
catalog/packages/serializers/pnfd_infos.py
catalog/packages/tests/test_ns_descriptor.py
catalog/packages/tests/test_pnf_descriptor.py
catalog/packages/tests/test_vnf_package.py
catalog/packages/views/vnf_package_views.py

index fc77108..56136d7 100644 (file)
@@ -23,6 +23,7 @@ from catalog.pub.database.models import NSPackageModel, PnfPackageModel, VnfPack
 from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
 from catalog.pub.utils import fileutil, toscaparser
 from catalog.pub.utils.values import ignore_case_get
+from catalog.packages.const import PKG_STATUS
 
 logger = logging.getLogger(__name__)
 
@@ -32,19 +33,19 @@ def create(data):
     user_defined_data = ignore_case_get(data, 'userDefinedData')
     data = {
         'id': str(uuid.uuid4()),
-        'nsdOnboardingState': 'CREATED',
-        'nsdOperationalState': 'DISABLED',
-        'nsdUsageState': 'NOT_IN_USE',
+        'nsdOnboardingState': PKG_STATUS.CREATED,
+        'nsdOperationalState': PKG_STATUS.DISABLED,
+        'nsdUsageState': PKG_STATUS.NOT_IN_USE,
         'userDefinedData': user_defined_data,
         '_links': None  # TODO
     }
-    NSPackageModel(
+    NSPackageModel.objects.create(
         nsPackageId=data['id'],
         onboardingState=data['nsdOnboardingState'],
         operationalState=data['nsdOperationalState'],
         usageState=data['nsdUsageState'],
         userDefinedData=data['userDefinedData']
-    ).save()
+    )
     logger.info('A NSD(%s) has been created.' % data['id'])
     return data
 
@@ -73,10 +74,10 @@ def delete_single(nsd_info_id):
         logger.info('NSD(%s) has been deleted.' % nsd_info_id)
         return
     '''
-    if ns_pkgs[0].operationalState != 'DISABLED':
+    if ns_pkgs[0].operationalState != PKG_STATUS.DISABLED:
         logger.error('NSD(%s) shall be DISABLED.' % nsd_info_id)
         raise CatalogException('NSD(%s) shall be DISABLED.' % nsd_info_id)
-    if ns_pkgs[0].usageState != 'NOT_IN_USE':
+    if ns_pkgs[0].usageState != PKG_STATUS.NOT_IN_USE:
         logger.error('NSD(%s) shall be NOT_IN_USE.' % nsd_info_id)
         raise CatalogException('NSD(%s) shall be NOT_IN_USE.' % nsd_info_id)
     '''
@@ -93,7 +94,7 @@ def upload(remote_file, nsd_info_id):
         logger.info('NSD(%s) does not exist.' % nsd_info_id)
         raise CatalogException('NSD(%s) does not exist.' % nsd_info_id)
 
-    ns_pkgs.update(onboardingState='UPLOADING')
+    ns_pkgs.update(onboardingState=PKG_STATUS.UPLOADING)
     local_file_name = remote_file.name
     local_file_dir = os.path.join(CATALOG_ROOT_PATH, nsd_info_id)
     local_file_name = os.path.join(local_file_dir, local_file_name)
@@ -109,7 +110,7 @@ def upload(remote_file, nsd_info_id):
 def parse_nsd_and_save(nsd_info_id, local_file_name):
     logger.info('Start to process NSD(%s)...' % nsd_info_id)
     ns_pkgs = NSPackageModel.objects.filter(nsPackageId=nsd_info_id)
-    ns_pkgs.update(onboardingState='PROCESSING')
+    ns_pkgs.update(onboardingState=PKG_STATUS.PROCESSING)
     nsd_json = toscaparser.parse_nsd(local_file_name)
     nsd = json.JSONDecoder().decode(nsd_json)
 
@@ -131,9 +132,9 @@ def parse_nsd_and_save(nsd_info_id, local_file_name):
         nsdDesginer=nsd["metadata"].get("vendor", "undefined"),
         nsdDescription=nsd["metadata"].get("description", ""),
         nsdVersion=nsd["metadata"].get("version", "undefined"),
-        onboardingState="ONBOARDED",
-        operationalState="ENABLED",
-        usageState="NOT_IN_USE",
+        onboardingState=PKG_STATUS.ONBOARDED,
+        operationalState=PKG_STATUS.ENABLED,
+        usageState=PKG_STATUS.NOT_IN_USE,
         nsPackageUri=local_file_name,
         sdcCsarId=nsd_info_id,
         localFilePath=local_file_name,
@@ -148,7 +149,7 @@ def download(nsd_info_id):
     if not ns_pkgs.exists():
         logger.error('NSD(%s) does not exist.' % nsd_info_id)
         raise ResourceNotFoundException('NSD(%s) does not exist.' % nsd_info_id)
-    if ns_pkgs[0].onboardingState != 'ONBOARDED':
+    if ns_pkgs[0].onboardingState != PKG_STATUS.ONBOARDED:
         logger.error('NSD(%s) is not ONBOARDED.' % nsd_info_id)
         raise CatalogException('NSD(%s) is not ONBOARDED.' % nsd_info_id)
     local_file_path = ns_pkgs[0].localFilePath
@@ -204,4 +205,4 @@ def fill_resp_data(ns_pkg):
 
 def handle_upload_failed(nsd_info_id):
     ns_pkg = NSPackageModel.objects.filter(nsPackageId=nsd_info_id)
-    ns_pkg.update(onboardingState="CREATED")
+    ns_pkg.update(onboardingState=PKG_STATUS.CREATED)
index 0eeb833..2a07d24 100644 (file)
@@ -23,6 +23,7 @@ from catalog.pub.database.models import NSPackageModel, PnfPackageModel
 from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
 from catalog.pub.utils import fileutil, toscaparser
 from catalog.pub.utils.values import ignore_case_get
+from catalog.packages.const import PKG_STATUS
 
 logger = logging.getLogger(__name__)
 
@@ -32,17 +33,17 @@ def create(data):
     user_defined_data = ignore_case_get(data, 'userDefinedData')
     data = {
         'id': str(uuid.uuid4()),
-        'pnfdOnboardingState': 'CREATED',
-        'pnfdUsageState': 'NOT_IN_USE',
+        'pnfdOnboardingState': PKG_STATUS.CREATED,
+        'pnfdUsageState': PKG_STATUS.NOT_IN_USE,
         'userDefinedData': user_defined_data,
         '_links': None  # TODO
     }
-    PnfPackageModel(
+    PnfPackageModel.objects.create(
         pnfPackageId=data['id'],
         onboardingState=data['pnfdOnboardingState'],
         usageState=data['pnfdUsageState'],
         userDefinedData=data['userDefinedData']
-    ).save()
+    )
     logger.info('A PNFD(%s) has been created.' % data['id'])
     return data
 
@@ -71,7 +72,7 @@ def upload(remote_file, pnfd_info_id):
         logger.info('PNFD(%s) does not exist.' % pnfd_info_id)
         raise CatalogException('PNFD (%s) does not exist.' % pnfd_info_id)
 
-    pnf_pkgs.update(onboardingState='UPLOADING')
+    pnf_pkgs.update(onboardingState=PKG_STATUS.UPLOADING)
     local_file_name = remote_file.name
     local_file_dir = os.path.join(CATALOG_ROOT_PATH, pnfd_info_id)
     local_file_name = os.path.join(local_file_dir, local_file_name)
@@ -87,7 +88,7 @@ def upload(remote_file, pnfd_info_id):
 def parse_pnfd_and_save(pnfd_info_id, local_file_name):
     logger.info('Start to process PNFD(%s)...' % pnfd_info_id)
     pnf_pkgs = PnfPackageModel.objects.filter(pnfPackageId=pnfd_info_id)
-    pnf_pkgs.update(onboardingState='PROCESSING')
+    pnf_pkgs.update(onboardingState=PKG_STATUS.PROCESSING)
 
     pnfd_json = toscaparser.parse_pnfd(local_file_name)
     pnfd = json.JSONDecoder().decode(pnfd_json)
@@ -101,8 +102,8 @@ def parse_pnfd_and_save(pnfd_info_id, local_file_name):
         pnfdId=pnfd_id,
         pnfdVersion=pnfd["metadata"].get("version", "undefined"),
         pnfPackageUri=local_file_name,
-        onboardingState="ONBOARDED",
-        usageState="NOT_IN_USE",
+        onboardingState=PKG_STATUS.ONBOARDED,
+        usageState=PKG_STATUS.NOT_IN_USE,
         localFilePath=local_file_name,
         pnfdModel=pnfd_json
     )
@@ -115,7 +116,7 @@ def download(pnfd_info_id):
     if not pnf_pkgs.exists():
         logger.error('PNFD(%s) does not exist.' % pnfd_info_id)
         raise ResourceNotFoundException('PNFD(%s) does not exist.' % pnfd_info_id)
-    if pnf_pkgs[0].onboardingState != 'ONBOARDED':
+    if pnf_pkgs[0].onboardingState != PKG_STATUS.ONBOARDED:
         logger.error('PNFD(%s) is not ONBOARDED.' % pnfd_info_id)
         raise CatalogException('PNFD(%s) is not ONBOARDED.' % pnfd_info_id)
     local_file_path = pnf_pkgs[0].localFilePath
@@ -132,7 +133,7 @@ def delete_single(pnfd_info_id):
         logger.info('PNFD(%s) has been deleted.' % pnfd_info_id)
         return
     '''
-    if pnf_pkgs[0].usageState != 'NOT_IN_USE':
+    if pnf_pkgs[0].usageState != PKG_STATUS.NOT_IN_USE:
         logger.info('PNFD(%s) shall be NOT_IN_USE.' % pnfd_info_id)
         raise CatalogException('PNFD(%s) shall be NOT_IN_USE.' % pnfd_info_id)
     '''
@@ -177,4 +178,4 @@ def fill_response_data(pnf_pkg):
 
 def handle_upload_failed(pnf_pkg_id):
     pnf_pkg = PnfPackageModel.objects.filter(pnfPackageId=pnf_pkg_id)
-    pnf_pkg.update(onboardingState="CREATED")
+    pnf_pkg.update(onboardingState=PKG_STATUS.CREATED)
index d179250..d8fdfde 100644 (file)
@@ -28,6 +28,7 @@ from catalog.pub.database.models import VnfPackageModel
 from catalog.pub.exceptions import CatalogException, ResourceNotFoundException
 from catalog.pub.utils.values import ignore_case_get
 from catalog.pub.utils import fileutil, toscaparser
+from catalog.packages.const import PKG_STATUS
 
 
 logger = logging.getLogger(__name__)
@@ -38,16 +39,16 @@ def create_vnf_pkg(data):
     vnf_pkg_id = str(uuid.uuid4())
     VnfPackageModel.objects.create(
         vnfPackageId=vnf_pkg_id,
-        onboardingState="CREATED",
-        operationalState="DISABLED",
-        usageState="NOT_IN_USE",
+        onboardingState=PKG_STATUS.CREATED,
+        operationalState=PKG_STATUS.DISABLED,
+        usageState=PKG_STATUS.NOT_IN_USE,
         userDefinedData=user_defined_data
     )
     data = {
         "id": vnf_pkg_id,
-        "onboardingState": "CREATED",
-        "operationalState": "DISABLED",
-        "usageState": "NOT_IN_USE",
+        "onboardingState": PKG_STATUS.CREATED,
+        "operationalState": PKG_STATUS.DISABLED,
+        "usageState": PKG_STATUS.NOT_IN_USE,
         "userDefinedData": user_defined_data,
         "_links": None
     }
@@ -76,9 +77,9 @@ def delete_vnf_pkg(vnf_pkg_id):
         logger.debug('VNF package(%s) is deleted.' % vnf_pkg_id)
         return
     '''
-    if vnf_pkg[0].operationalState != "DISABLED":
+    if vnf_pkg[0].operationalState != PKG_STATUS.DISABLED:
         raise CatalogException("The VNF package (%s) is not disabled" % vnf_pkg_id)
-    if vnf_pkg[0].usageState != "NOT_IN_USE":
+    if vnf_pkg[0].usageState != PKG_STATUS.NOT_IN_USE:
         raise CatalogException("The VNF package (%s) is in use" % vnf_pkg_id)
     '''
     vnf_pkg.delete()
@@ -88,7 +89,7 @@ def delete_vnf_pkg(vnf_pkg_id):
 
 def parse_vnfd_and_save(vnf_pkg_id, vnf_pkg_path):
     vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId=vnf_pkg_id)
-    vnf_pkg.update(onboardingState="PROCESSING")
+    vnf_pkg.update(onboardingState=PKG_STATUS.PROCESSING)
     vnfd_json = toscaparser.parse_vnfd(vnf_pkg_path)
     vnfd = json.JSONDecoder().decode(vnfd_json)
 
@@ -99,18 +100,18 @@ def parse_vnfd_and_save(vnf_pkg_id, vnf_pkg_path):
     vnfd_ver = vnfd["metadata"].get("vnfd_version")
     if not vnfd_ver:
         vnfd_ver = vnfd["metadata"].get("vnfdVersion", "undefined")
-    VnfPackageModel(
+    vnf_pkg.update(
         vnfPackageId=vnf_pkg_id,
         vnfdId=vnfd_id,
         vnfVendor=vnfd["metadata"].get("vendor", "undefined"),
         vnfdVersion=vnfd_ver,
         vnfSoftwareVersion=vnfd["metadata"].get("version", "undefined"),
         vnfdModel=vnfd_json,
-        onboardingState="ONBOARDED",
-        operationalState="ENABLED",
-        usageState="NOT_IN_USE",
+        onboardingState=PKG_STATUS.ONBOARDED,
+        operationalState=PKG_STATUS.ENABLED,
+        usageState=PKG_STATUS.NOT_IN_USE,
         localFilePath=vnf_pkg_path
-    ).save()
+    )
 
 
 class VnfPkgUploadThread(threading.Thread):
@@ -134,9 +135,9 @@ class VnfPkgUploadThread(threading.Thread):
     def upload_vnf_pkg_from_uri(self):
         logger.debug("UploadVnf %s" % self.vnf_pkg_id)
         vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId=self.vnf_pkg_id)
-        if vnf_pkg[0].onboardingState != "CREATED":
+        if vnf_pkg[0].onboardingState != PKG_STATUS.CREATED:
             raise CatalogException("VNF package (%s) is not created" % self.vnf_pkg_id)
-        vnf_pkg.update(onboardingState="UPLOADING")
+        vnf_pkg.update(onboardingState=PKG_STATUS.UPLOADING)
         uri = ignore_case_get(self.data, "addressInformation")
         upload_path = os.path.join(CATALOG_ROOT_PATH, self.vnf_pkg_id)
         if not os.path.exists(upload_path):
@@ -175,7 +176,7 @@ def fetch_vnf_pkg(request, vnf_pkg_id):
     nf_pkg = VnfPackageModel.objects.filter(vnfPackageId=vnf_pkg_id)
     if not nf_pkg.exists():
         raise ResourceNotFoundException('VNF package(%s) does not exist.' % vnf_pkg_id)
-    if nf_pkg[0].onboardingState != "ONBOARDED":
+    if nf_pkg[0].onboardingState != PKG_STATUS.ONBOARDED:
         raise CatalogException("VNF package (%s) is not on-boarded" % vnf_pkg_id)
     file_path = nf_pkg[0].localFilePath
     file_name = file_path.split('/')[-1]
@@ -199,4 +200,4 @@ def fetch_vnf_pkg(request, vnf_pkg_id):
 
 def handle_upload_failed(vnf_pkg_id):
     vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId=vnf_pkg_id)
-    vnf_pkg.update(onboardingState="CREATED")
+    vnf_pkg.update(onboardingState=PKG_STATUS.CREATED)
diff --git a/catalog/packages/const.py b/catalog/packages/const.py
new file mode 100644 (file)
index 0000000..9d3f6eb
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright 2018 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from catalog.pub.utils.jobutil import enum
+
+PKG_STATUS = enum(CREATED="CREATED", UPLOADING="UPLOADING", PROCESSING="PROCESSING", ONBOARDED="ONBOARDED",
+                  IN_USE="IN_USE", NOT_IN_USE="NOT_IN_USE", ENABLED="ENABLED", DISABLED="DISABLED")
index b5055ec..f8ad029 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright 2018 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
index 26df221..4509fc2 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright 2018 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
index 83fbd9b..e1ea124 100644 (file)
@@ -23,6 +23,7 @@ from rest_framework.test import APIClient
 from catalog.pub.database.models import NSPackageModel, VnfPackageModel
 from catalog.pub.config.config import CATALOG_ROOT_PATH
 from catalog.pub.utils import toscaparser
+from catalog.packages.const import PKG_STATUS
 
 
 class TestNsDescriptor(TestCase):
@@ -366,7 +367,7 @@ class TestNsDescriptor(TestCase):
             file_content = '%s%s' % (file_content, data)
         ns_pkg = NSPackageModel.objects.filter(nsPackageId="22")
         self.assertEqual("VCPE_NS", ns_pkg[0].nsdId)
-        self.assertEqual("ONBOARDED", ns_pkg[0].onboardingState)
+        self.assertEqual(PKG_STATUS.ONBOARDED, ns_pkg[0].onboardingState)
         self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT)
         self.assertEqual(None, resp.data)
         self.assertEqual(file_content, 'test')
index 21953a0..a7dcd82 100644 (file)
@@ -24,6 +24,7 @@ from rest_framework import status
 from rest_framework.test import APIClient
 from catalog.pub.database.models import PnfPackageModel
 from catalog.pub.utils import toscaparser
+from catalog.packages.const import PKG_STATUS
 
 
 class TestPnfDescriptor(TestCase):
@@ -142,7 +143,7 @@ class TestPnfDescriptor(TestCase):
             )
         pnf_pkg = PnfPackageModel.objects.filter(pnfPackageId="22")
         self.assertEqual(pnf_pkg[0].pnfdId, "zte-1.0")
-        self.assertEqual(pnf_pkg[0].onboardingState, "ONBOARDED")
+        self.assertEqual(pnf_pkg[0].onboardingState, PKG_STATUS.ONBOARDED)
         self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT)
         self.assertEqual(None, resp.data)
         os.remove('pnfd_content.txt')
index 10527cc..05307cb 100644 (file)
@@ -24,6 +24,7 @@ from catalog.pub.config.config import CATALOG_ROOT_PATH
 from catalog.packages.biz.vnf_package import VnfPkgUploadThread
 from catalog.pub.database.models import VnfPackageModel
 from catalog.pub.utils import toscaparser
+from catalog.packages.const import PKG_STATUS
 
 
 class MockReq():
@@ -254,12 +255,13 @@ class TestVnfPackage(TestCase):
         )
         mock_parse_vnfd.return_value = json.JSONEncoder().encode(self.vnfd_data)
         response = self.client.put("/api/vnfpkgm/v1/vnf_packages/222/package_content", data=data)
-        vnf_pkg1 = VnfPackageModel.objects.filter(vnfPackageId="222")
-        self.assertEqual("zte-hss-1.0", vnf_pkg1[0].vnfdId)
+        vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId="222")
+        self.assertEqual("zte-hss-1.0", vnf_pkg[0].vnfdId)
+        self.assertEqual(PKG_STATUS.ONBOARDED, vnf_pkg[0].onboardingState)
         self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)
 
-        os.remove(vnf_pkg1[0].localFilePath)
-        os.removedirs(os.path.join(CATALOG_ROOT_PATH, vnf_pkg1[0].vnfPackageId))
+        os.remove(vnf_pkg[0].localFilePath)
+        os.removedirs(os.path.join(CATALOG_ROOT_PATH, vnf_pkg[0].vnfPackageId))
 
     @mock.patch.object(toscaparser, 'parse_vnfd')
     @mock.patch.object(urllib2, 'urlopen')
index b448871..28c680a 100644 (file)
@@ -30,6 +30,7 @@ from catalog.packages.biz.vnf_package import create_vnf_pkg, query_multiple, Vnf
     query_single, delete_vnf_pkg, parse_vnfd_and_save, fetch_vnf_pkg, handle_upload_failed
 from catalog.pub.database.models import VnfPackageModel
 from catalog.packages.views.ns_descriptor_views import validate_data
+from catalog.packages.const import PKG_STATUS
 
 logger = logging.getLogger(__name__)
 
@@ -111,7 +112,7 @@ def upload_vnf_pkg_content(request, vnfPkgId):
         logger.debug("Upload VNF package %s" % vnfPkgId)
         try:
             vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId=vnfPkgId)
-            if vnf_pkg[0].onboardingState != "CREATED":
+            if vnf_pkg[0].onboardingState != PKG_STATUS.CREATED:
                 raise CatalogException("VNF package (%s) is not created" % vnfPkgId)
             file_object = request.FILES.get('file')
             upload_path = os.path.join(CATALOG_ROOT_PATH, vnfPkgId)