aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lcm/ns_vnfs/biz/create_vnfs.py17
-rw-r--r--lcm/ns_vnfs/biz/grant_vnf.py9
-rw-r--r--lcm/ns_vnfs/biz/subscribe.py24
-rw-r--r--lcm/workflows/build_in.py2
4 files changed, 38 insertions, 14 deletions
diff --git a/lcm/ns_vnfs/biz/create_vnfs.py b/lcm/ns_vnfs/biz/create_vnfs.py
index 5dcdb7b3..b1caa393 100644
--- a/lcm/ns_vnfs/biz/create_vnfs.py
+++ b/lcm/ns_vnfs/biz/create_vnfs.py
@@ -167,10 +167,24 @@ class CreateVnfs(Thread):
"cpdId": self.get_cpd_id_of_vl(network_info['key_name']),
"vim": {
"vimid": vl_instance.vimid
- }
+ },
+ # SOL 003 align
+ "id": vl_instance_id,
+ "vimConnectionId": vl_instance.vimid,
+ "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"]:
@@ -189,6 +203,7 @@ class CreateVnfs(Thread):
'vnfInstanceName': self.vnf_inst_name,
'vnfPackageId': ignore_case_get(self.nf_package_info, "vnfPackageId"),
'vnfDescriptorId': self.vnfd_id,
+ 'flavourId': "default",
'extVirtualLink': ext_virtual_link,
'additionalParam': {
"properties": self.properties,
diff --git a/lcm/ns_vnfs/biz/grant_vnf.py b/lcm/ns_vnfs/biz/grant_vnf.py
index 6987fc07..0923eb15 100644
--- a/lcm/ns_vnfs/biz/grant_vnf.py
+++ b/lcm/ns_vnfs/biz/grant_vnf.py
@@ -52,9 +52,12 @@ class GrantVnf(object):
additional_param = ignore_case_get(self.data, "additionalparams")
vnfm_inst_id = ignore_case_get(additional_param, "vnfmid")
vim_id = ignore_case_get(additional_param, "vimid")
-
- vnfinsts = NfInstModel.objects.filter(
- nfinstid=m_vnf_inst_id, vnfm_inst_id=vnfm_inst_id)
+ if vnfm_inst_id and vnfm_inst_id != "":
+ vnfinsts = NfInstModel.objects.filter(
+ mnfinstid=m_vnf_inst_id, vnfm_inst_id=vnfm_inst_id)
+ else:
+ vnfinsts = NfInstModel.objects.filter(
+ mnfinstid=m_vnf_inst_id)
if not vnfinsts:
raise NSLCMException("Vnfinst(%s) is not found in vnfm(%s)" % (
m_vnf_inst_id, vnfm_inst_id))
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)
diff --git a/lcm/workflows/build_in.py b/lcm/workflows/build_in.py
index 993efbe6..fa267855 100644
--- a/lcm/workflows/build_in.py
+++ b/lcm/workflows/build_in.py
@@ -279,7 +279,7 @@ def confirm_sfc_status(sfc_inst_id):
def create_pnf(pnf_param_json):
if pnf_param_json and len(pnf_param_json) > 0:
pnfs = json.JSONDecoder().decode(pnf_param_json)
- for pnf in pnfs:
+ for pnf in pnfs.itervalues():
uri = "/api/nslcm/v1/pnfs"
method = "POST"
content = json.JSONEncoder().encode(pnf["input"]["content"])