Refactor logic of scale VNF 03/42203/1
authorfujinhua <fu.jinhua@zte.com.cn>
Wed, 11 Apr 2018 07:02:01 +0000 (15:02 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Wed, 11 Apr 2018 07:02:01 +0000 (15:02 +0800)
Change-Id: I5dc5d6349c227cbded5d7f45dab0590dfd916049
Issue-ID: VFC-872
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/ns/vnfs/scale_vnfs.py

index 5b4e978..9848c1a 100644 (file)
@@ -36,8 +36,6 @@ class NFManualScaleService(threading.Thread):
         self.data = data
         self.job_id = JobUtil.create_job(
             "NF", JOB_TYPE.MANUAL_SCALE_VNF, vnf_instance_id)
-        self.scale_vnf_data = ''
-        self.nf_model = {}
         self.nf_scale_params = []
         self.m_nf_inst_id = ''
         self.vnfm_inst_id = ''
@@ -50,58 +48,44 @@ class NFManualScaleService(threading.Thread):
         except Exception as ex:
             logger.error(ex.message)
             logger.error(traceback.format_exc())
-            JobUtil.add_job_status(self.job_id, JOB_ERROR, 'nf scale fail')
+            JobUtil.add_job_status(self.job_id, JOB_ERROR, 'VNF scale failed')
         finally:
             self.update_nf_status()
 
     def do_biz(self):
-        self.update_job(1, desc='nf scale start')
+        self.update_job(1, desc='VNF scale start')
         self.update_nf_status(VNF_STATUS.SCALING)
         self.get_and_check_params()
         self.send_nf_scaling_requests()
-        self.update_job(100, desc='nf scale success')
+        self.update_job(100, desc='VNF scale success')
 
     def get_and_check_params(self):
         nf_info = NfInstModel.objects.filter(nfinstid=self.vnf_instance_id)
         if not nf_info:
-            logger.error(
-                'NF instance[id=%s] does not exist' %
-                self.vnf_instance_id)
             raise NSLCMException(
                 'NF instance[id=%s] does not exist' %
                 self.vnf_instance_id)
         logger.debug('vnfd_model = %s, vnf_instance_id = %s' %
                      (nf_info[0].vnfd_model, self.vnf_instance_id))
-        self.nf_model = json.loads(nf_info[0].vnfd_model)
+        nf_model = json.loads(nf_info[0].vnfd_model)
         self.m_nf_inst_id = nf_info[0].mnfinstid
         self.vnfm_inst_id = nf_info[0].vnfm_inst_id
-        self.scale_vnf_data = ignore_case_get(self.data, 'scaleVnfData')
-        if not self.scale_vnf_data:
-            logger.error(
-                'scaleVnfData parameter does not exist or value incorrect')
-            raise NSLCMException(
-                'scaleVnfData parameter does not exist or value incorrect')
+        scale_vnf_data = ignore_case_get(self.data, 'scaleVnfData')
+        if not scale_vnf_data:
+            raise NSLCMException('scaleVnfData parameter does not exist')
 
-        scale_type = ignore_case_get(self.scale_vnf_data, 'type')
-        aspect_id = ignore_case_get(self.scale_vnf_data, 'aspectId')
-        number_of_steps = ignore_case_get(self.scale_vnf_data, 'numberOfSteps')
         self.nf_scale_params.append({
-            'type': scale_type,
-            'aspectId': aspect_id,
-            'numberOfSteps': number_of_steps,
-            'additionalParam': {'vnfdModel': self.nf_model}
+            'type': ignore_case_get(scale_vnf_data, 'type'),
+            'aspectId': ignore_case_get(scale_vnf_data, 'aspectId'),
+            'numberOfSteps': ignore_case_get(scale_vnf_data, 'numberOfSteps'),
+            'additionalParam': {'vnfdModel': nf_model}
         })
 
     def send_nf_scaling_requests(self):
-        for i in range(len(self.nf_scale_params)):
-            progress_range = [10 +
-                              80 /
-                              len(self.nf_scale_params) *
-                              i, 10 +
-                              80 /
-                              len(self.nf_scale_params) *
-                              (i +
-                                  1)]
+        nf_scale_num = len(self.nf_scale_params)
+        for i in range(nf_scale_num):
+            progress_range = [10 + 80 / nf_scale_num * i,
+                              10 + 80 / nf_scale_num * (i + 1)]
             self.send_nf_scaling_request(
                 self.nf_scale_params[i], progress_range)
 
@@ -118,8 +102,7 @@ class NFManualScaleService(threading.Thread):
             timeout=1200,
             mode='1')
         if ret != JOB_MODEL_STATUS.FINISHED:
-            logger.error('[NF scale] nf scale failed')
-            raise NSLCMException("nf scale failed")
+            raise NSLCMException("VNF scale failed")
 
     def update_nf_status(self, status=VNF_STATUS.ACTIVE):
         NfInstModel.objects.filter(