X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fnf%2Fvnfs%2Fvnf_create%2Finst_vnf.py;h=c950e1537e7f55c06fc757102abac5e5d5357af5;hb=b51f79348b419a755dd08f758c45ed56c2ea0a10;hp=cedc4a4281da5eebed5c6763a941a04c57f3f320;hpb=ea8804fa3d477d76736c9f14b931dda86b1c825e;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py index cedc4a42..c950e153 100644 --- a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py +++ b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py @@ -38,6 +38,7 @@ class InstVnf(Thread): self.data = data self.nf_inst_id = nf_inst_id self.job_id = job_id + self.vnfd_id = '' self.nfvo_inst_id = '' self.vnfm_inst_id = '' self.csar_id = '' @@ -73,20 +74,24 @@ class InstVnf(Thread): JobUtil.add_job_status(self.job_id, 5, 'Get packageinfo by vnfd_id') # get csar_id from nslcm by vnfd_id - self.package_info = get_packageinfo_by_vnfdid(vnf_insts[0].vnfdid) - self.package_id = ignore_case_get(self.package_info, "package_id") - self.csar_id = ignore_case_get(self.package_info, "csar_id") + self.vnfd_id = vnf_insts[0].vnfdid + self.package_info = get_packageinfo_by_vnfdid(self.vnfd_id) + for val in self.package_info: + if self.vnfd_id == ignore_case_get(val, "vnfd_id"): + self.package_id = ignore_case_get(val, "csar_id") + break JobUtil.add_job_status(self.job_id, 10, 'Get rawdata from catalog by csar_id') # get rawdata from catalog by csar_id input_parameters = [] for key, val in self.data['additionalParams'].items(): input_parameters.append({"key": key, "value": val}) - raw_data = query_rawdata_from_catalog(self.csar_id, input_parameters) + raw_data = query_rawdata_from_catalog(self.package_id, input_parameters) self.vnfd_info = toscautil.convert_vnfd_model(raw_data["rawData"]) # convert to inner json self.vnfd_info = json.JSONDecoder().decode(self.vnfd_info) self.vnfd_info = vnfd_model_dict # just for test + self.update_cps() self.checkParameterExist() # update NfInstModel @@ -205,7 +210,7 @@ class InstVnf(Thread): } logger.info('content_args=%s' % content_args) # call rest api - resp = notify_lcm_to_nfvo(content_args, self.nf_inst_id) + resp = notify_lcm_to_nfvo(content_args) logger.info('[NF instantiation] get lcm response %s' % resp) logger.info('[NF instantiation] send notify request to nfvo end') @@ -388,6 +393,16 @@ class InstVnf(Thread): # def do_notify_delete(self, ret): # logger.error('Deleting [%s] resource' % ret) + def update_cps(self): + for extlink in ignore_case_get(self.data, "extVirtualLinks"): + for cp in self.vnfd_info["cps"]: + cpdid = ignore_case_get(extlink, "cpdId") + if cpdid == ignore_case_get(cp, "cp_id"): + cp["networkId"] = ignore_case_get(extlink, "resourceId") + cp["subnetId"] = ignore_case_get(extlink, "resourceSubnetId") + break + pass + def checkParameterExist(self): # if ignore_case_get(self.data, "flavourId") not in self.vnfd_info: # raise NFLCMException('Input parameter is not defined in vnfd_info.')