Ns descriptor related stuffs. 91/63191/2
authorlaili <lai.li@zte.com.cn>
Tue, 28 Aug 2018 05:59:56 +0000 (13:59 +0800)
committerlaili <lai.li@zte.com.cn>
Tue, 28 Aug 2018 06:03:53 +0000 (14:03 +0800)
Make some small modifications and correct some errors.

Change-Id: I4a19a2fcbd914f0cf300f41295950ae06cfb0422
Issue-ID: VFC-1037
Signed-off-by: laili <lai.li@zte.com.cn>
catalog/packages/biz/ns_descriptor.py
catalog/packages/biz/pnf_descriptor.py
catalog/packages/views/ns_descriptor_views.py
catalog/packages/views/pnf_descriptor_views.py
catalog/pub/database/models.py

index 424406c..d5fb985 100644 (file)
@@ -73,7 +73,7 @@ def delete_single(nsd_info_id):
     logger.info('Start to delete NSD(%s)...' % nsd_info_id)
     ns_pkgs = NSPackageModel.objects.filter(nsPackageId=nsd_info_id)
     if not ns_pkgs.exists():
-        logger.info('NSD(%s) is deleted.' % nsd_info_id)
+        logger.info('NSD(%s) has been deleted.' % nsd_info_id)
         return
 
     if ns_pkgs[0].onboardingState == 'ONBOARDED':
@@ -99,7 +99,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[0].onboardingState = 'UPLOADING'  # TODO: if failed, should be set to created
+    ns_pkgs.update(onboardingState='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)
@@ -114,7 +114,7 @@ def upload(remote_file, nsd_info_id):
 def process(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[0].onboardingState = 'PROCESSING'  # TODO: if failed, should be set to created
+    ns_pkgs.update(onboardingState='PROCESSING')
     nsd_json = toscaparser.parse_nsd(local_file_name)
     nsd = json.JSONDecoder().decode(nsd_json)
 
@@ -130,8 +130,7 @@ def process(nsd_info_id, local_file_name):
             logger.error("VNFD is not distributed.")
             raise CatalogException("VNF package(%s) is not distributed." % vnfd_id)
 
-    NSPackageModel(
-        nsPackageId=nsd_info_id,
+    ns_pkgs.update(
         nsdId=nsd_id,
         nsdName=nsd["metadata"].get("name", nsd_id),
         nsdDesginer=nsd["metadata"].get("vendor", "undefined"),
@@ -141,7 +140,7 @@ def process(nsd_info_id, local_file_name):
         sdcCsarId=nsd_info_id,
         localFilePath=local_file_name,
         nsdModel=nsd_json
-    ).save()
+    )
     logger.info('NSD(%s) has been processed.' % nsd_info_id)
 
 
@@ -155,8 +154,10 @@ def download(nsd_info_id):
         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
+    local_file_name = local_file_path.split('/')[-1]
+    local_file_name = local_file_name.split('\\')[-1]
     logger.info('NSD(%s) has been downloaded.' % nsd_info_id)
-    return local_file_path
+    return local_file_path, local_file_name, os.path.getsize(local_file_path)
 
 
 def fill_resp_data(ns_pkg):
index 0e2a477..ebc965b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2017 ZTE Corporation.
+# 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.
@@ -74,7 +74,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[0].onboardingState = 'UPLOADING'
+    pnf_pkgs.update(onboardingState='UPLOADING')
     local_file_name = remote_file.name  # TODO: common method
     local_file_dir = os.path.join(CATALOG_ROOT_PATH, pnfd_info_id)
     local_file_name = os.path.join(local_file_dir, local_file_name)
@@ -86,10 +86,11 @@ def upload(remote_file, pnfd_info_id):
     logger.info('PNFD(%s) content has been uploaded.' % pnfd_info_id)
 
 
-def process(pnfd_info_id, local_file_name):  # TODO: onboardingState changes
+def process(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[0].onboardingState = 'PROCESSING'  # TODO: if failed, should be set to created
+    pnf_pkgs.update(onboardingState='PROCESSING')
+
     pnfd_json = toscaparser.parse_pnfd(local_file_name)
     pnfd = json.JSONDecoder().decode(pnfd_json)
 
@@ -98,18 +99,17 @@ def process(pnfd_info_id, local_file_name):  # TODO: onboardingState changes
         logger.info('PNFD(%s) already exists.' % pnfd_id)
         raise CatalogException("PNFD(%s) already exists." % pnfd_id)
 
-    PnfPackageModel(
-        pnfPackageId=pnfd_info_id,
+    pnf_pkgs.update(
         pnfdId=pnfd_id,
         pnfdName=pnfd["metadata"].get("name", pnfd_id),
         pnfdDesginer=pnfd["metadata"].get("vendor", "undefined"),
         pnfdDescription=pnfd["metadata"].get("description", ""),
         pnfdVersion=pnfd["metadata"].get("version", "undefined"),
-        nsPackageUri=local_file_name,  # TODO
+        pnfPackageUri=local_file_name,  # TODO
         sdcCsarId=pnfd_info_id,
         localFilePath=local_file_name,
         pnfdModel=pnfd_json
-    ).save()
+    )
     logger.info('PNFD(%s) has been processed.' % pnfd_info_id)
 
 
@@ -123,15 +123,17 @@ def download(pnfd_info_id):
         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
+    local_file_name = local_file_path.split('/')[-1]
+    local_file_name = local_file_name.split('\\')[-1]
     logger.info('PNFD(%s) has been downloaded.' % pnfd_info_id)
-    return local_file_path
+    return local_file_path, local_file_name, os.path.getsize(local_file_path)
 
 
 def delete_single(pnfd_info_id):
     logger.info('Start to delete PNFD(%s)...' % pnfd_info_id)
     pnf_pkgs = PnfPackageModel.objects.filter(pnfPackageId=pnfd_info_id)
     if not pnf_pkgs.exists():
-        logger.info('PNFD(%s) is deleted.' % pnfd_info_id)
+        logger.info('PNFD(%s) has been deleted.' % pnfd_info_id)
         return
 
     if pnf_pkgs[0].usageState != 'NOT_IN_USE':
@@ -150,8 +152,8 @@ def delete_single(pnfd_info_id):
             raise CatalogException('PNFD(%s) is referenced.' % pnfd_info_id)
 
     pnf_pkgs.delete()
-    vnf_pkg_path = os.path.join(CATALOG_ROOT_PATH, pnfd_info_id)
-    fileutil.delete_dirs(vnf_pkg_path)
+    pnf_pkg_path = os.path.join(CATALOG_ROOT_PATH, pnfd_info_id)
+    fileutil.delete_dirs(pnf_pkg_path)
     logger.debug('PNFD(%s) has been deleted.' % pnfd_info_id)
 
 
index 19f9d1d..05e957a 100644 (file)
@@ -13,7 +13,6 @@
 # limitations under the License.
 
 import logging
-import os
 import traceback
 
 from django.http import StreamingHttpResponse
@@ -162,11 +161,8 @@ def nsd_content_ru(request, *args, **kwargs):
 
     if request.method == 'GET':
         try:
-            file_path = download(nsd_info_id)
-            file_name = file_path.split('/')[-1]
-            file_name = file_name.split('\\')[-1]
-
-            start, end = 0, os.path.getsize(file_path)
+            file_path, file_name, file_size = download(nsd_info_id)
+            start, end = 0, file_size
             file_range = request.META.get('RANGE')
             if file_range:
                 [start, end] = file_range.split('-')
index bf7f1cd..c489df5 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2017 ZTE Corporation.
+# 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.
@@ -13,7 +13,6 @@
 # limitations under the License.
 
 import logging
-import os
 import traceback
 
 from django.http import FileResponse
@@ -165,12 +164,10 @@ def pnfd_content_ru(request, *args, **kwargs):
 
     if request.method == 'GET':
         try:
-            file_path = download(pnfd_info_id)
-            file_name = file_path.split('/')[-1]
-            file_name = file_name.split('\\')[-1]
+            file_path, file_name, file_size = download(pnfd_info_id)
             response = FileResponse(open(file_path, 'rb'), status=status.HTTP_200_OK)
             response['Content-Disposition'] = 'attachment; filename=%s' % file_name.encode('utf-8')
-            response['Content-Length'] = os.path.getsize(file_path)
+            response['Content-Length'] = file_size
             return response
         except Exception as e:
             logger.error(e.message)
index 3b9e909..7d215cc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2016 ZTE Corporation.
+# Copyright 2016-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.
@@ -64,7 +64,7 @@ class PnfPackageModel(models.Model):
     # uuid = models.CharField(db_column='UUID', primary_key=True, max_length=255)
     pnfPackageId = models.CharField(db_column='PNFPACKAGEID', primary_key=True, max_length=50)   # onboardedPnfPkgInfoId
     pnfPackageUri = models.CharField(db_column='PNFPACKAGEURI', max_length=300, null=True, blank=True)  # downloadUri
-    SdcCSARUri = models.CharField(db_column='SDCCSARURI', max_length=300, null=True, blank=True)  # SdcCSARUri
+    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)
     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState