From: maopengzhang Date: Fri, 9 Nov 2018 12:51:58 +0000 (+0800) Subject: fix subscription error X-Git-Tag: 3.0.0-ONAP~9 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=a08a6c722d73b7fe81db8b9b22f9de8ac6e8e8f9;p=vfc%2Fnfvo%2Flcm.git fix subscription error fix subscription error Change-Id: Ibc3844a3979b86a63da6df9f7fce7fccfda8f354 Issue-ID: VFC-1158 Signed-off-by: maopengzhang --- diff --git a/lcm/ns_vnfs/biz/create_vnfs.py b/lcm/ns_vnfs/biz/create_vnfs.py index 5b7cfde9..b1caa393 100644 --- a/lcm/ns_vnfs/biz/create_vnfs.py +++ b/lcm/ns_vnfs/biz/create_vnfs.py @@ -171,10 +171,20 @@ class CreateVnfs(Thread): # SOL 003 align "id": vl_instance_id, "vimConnectionId": vl_instance.vimid, - "extCps": [{"cpdId": self.get_cpd_id_of_vl(network_info['key_name']), "cpConfig":[]}] + "extCps": self.get_cpds_of_vl(network_info['key_name']) }) return virtual_link_list, ext_virtual_link + def get_cpds_of_vl(self, vl_key): + extCps = [] + logger.debug("vl_keya; %s" % vl_key) + for cpd in self.vnfd_model["vnf_exposed"]["external_cps"]: + logger.debug("exposed_cpd; %s" % cpd) + if vl_key == cpd["key_name"]: + cp = {"cpdId": cpd["cpd_id"], "cpConfig": []} + extCps.append(cp) + return extCps + def get_cpd_id_of_vl(self, vl_key): for cpd in self.vnfd_model["vnf_exposed"]["external_cps"]: if vl_key == cpd["key_name"]: diff --git a/lcm/ns_vnfs/biz/subscribe.py b/lcm/ns_vnfs/biz/subscribe.py index 2a4a8173..21d410e0 100644 --- a/lcm/ns_vnfs/biz/subscribe.py +++ b/lcm/ns_vnfs/biz/subscribe.py @@ -20,6 +20,7 @@ from lcm.pub.exceptions import NSLCMException from lcm.pub.msapi.extsys import get_vnfm_by_id from lcm.pub.utils.restcall import req_by_msb from lcm.pub.utils.values import ignore_case_get +from lcm.pub.config import config as pub_config logger = logging.getLogger(__name__) @@ -35,13 +36,14 @@ class SubscriptionCreation(object): def do_biz(self): logger.debug('Start subscribing...') - self.prepare_subscription_request_data() + self.prepare_lccn_subscription_request_data() self.send_subscription_request() self.save_subscription_response_data() logger.debug('Subscribing has completed.') def prepare_lccn_subscription_request_data(self): vnfm_info = get_vnfm_by_id(self.vnfm_id) + call_back = "http://%s:%s/api/gvnfmdriver/v1/vnfs/lifecyclechangesnotification" % (pub_config.MSB_SERVICE_IP, pub_config.MSB_SERVICE_PORT) self.subscription_request_data = { "filter": { "notificationTypes": ["VnfLcmOperationOccurrenceNotification"], @@ -66,24 +68,28 @@ class SubscriptionCreation(object): "ROLLED_BACK" ], "vnfInstanceSubscriptionFilter": { - "vnfdIds": [], + # "vnfdIds": [], "vnfInstanceIds": [self.vnf_instance_id], - "vnfInstanceNames": [], - "vnfProductsFromProviders": {} + # "vnfInstanceNames": [], + # "vnfProductsFromProviders": {} } }, - "callbackUri": "api/gvnfmdriver/v1/vnfs/lifecyclechangesnotification", # TODO: need reconfirming + "callbackUri": call_back, # TODO: need reconfirming "authentication": { "authType": ["BASIC"], "paramsBasic": { - "userName": vnfm_info['userName'], - "password": vnfm_info['password'] + # "userName": vnfm_info['userName'], + # "password": vnfm_info['password'] } } } + if vnfm_info['userName']: + self.subscription_request_data["authentication"]["paramsBasic"]["userName"] = vnfm_info['userName'] + if vnfm_info['password']: + self.subscription_request_data["authentication"]["paramsBasic"]["password"] = vnfm_info['password'] def send_subscription_request(self): - ret = req_by_msb('api/gvnfmdrvier/v1/%s/subscriptions' % self.vnfm_id, 'POST', self.subscription_request_data) + ret = req_by_msb('api/gvnfmdriver/v1/%s/subscriptions' % self.vnfm_id, 'POST', json.JSONEncoder().encode(self.subscription_request_data)) if ret[0] != 0: logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) raise NSLCMException("Failed to subscribe from vnfm(%s)." % self.vnfm_id) @@ -125,7 +131,7 @@ class SubscriptionDeletion(object): def send_subscription_deletion_request(self): if self.subscription: self.subscription_id = ignore_case_get(self.subscription, 'id') - ret = req_by_msb('api/gvnfmdrvier/v1/%s/subscriptions/%s' % (self.vnfm_id, self.subscription_id), 'DELETE') + ret = req_by_msb('api/gvnfmdriver/v1/%s/subscriptions/%s' % (self.vnfm_id, self.subscription_id), 'DELETE') if ret[0] != 0: logger.error('Status code is %s, detail is %s.', ret[2], ret[1]) raise NSLCMException("Failed to subscribe from vnfm(%s)." % self.vnfm_id)