class VnfInstances2NsInstances:
-
def __init__(self, db, fs, msg, auth):
"""
Constructor of Vnf Instances to Ns Instances
class NewVnfInstance(BaseMethod):
-
# sample ns descriptor
sample_nsd = {
"nsd": {
"virtual-link-connectivity": [
{
"constituent-cpd-id": [
- {"constituent-base-element-id": 1,
- "constituent-cpd-id": "eth0-ext"}
+ {
+ "constituent-base-element-id": 1,
+ "constituent-cpd-id": "eth0-ext",
+ }
],
"virtual-link-profile-id": "mgmtnet",
}
],
- "vnfd-id": "cirros_vnfd"
+ "vnfd-id": "cirros_vnfd",
}
],
}
formatted_indata = deepcopy(indata)
formatted_indata["nsdId"] = nsd_id
formatted_indata["nsName"] = indata["vnfInstanceName"] + "-ns"
- for invalid_key in ("vnfdId", "vnfInstanceName", "vnfInstanceDescription", "additionalParams"):
+ for invalid_key in (
+ "vnfdId",
+ "vnfInstanceName",
+ "vnfInstanceDescription",
+ "additionalParams",
+ ):
formatted_indata.pop(invalid_key)
return formatted_indata
_id, *others = self.nsdtopic.new(rollback, session, {}, None, headers)
new_nsd = deepcopy(NewVnfInstance.sample_nsd)
vnf_content = {
- "id":"default-df",
- "vnf-profile": [
+ "id": "default-df",
+ "vnf-profile": [
{
- "id": "1",
- "virtual-link-connectivity": [
- {
- "constituent-cpd-id": [
+ "id": "1",
+ "virtual-link-connectivity": [
{
- "constituent-base-element-id": "1",
- "constituent-cpd-id": indata["additionalParams"]["constituent-cpd-id"]
+ "constituent-cpd-id": [
+ {
+ "constituent-base-element-id": "1",
+ "constituent-cpd-id": indata["additionalParams"][
+ "constituent-cpd-id"
+ ],
+ }
+ ],
+ "virtual-link-profile-id": indata["additionalParams"][
+ "virtual-link-profile-id"
+ ],
}
- ],
- "virtual-link-profile-id": indata["additionalParams"]["virtual-link-profile-id"]
- }
- ],
- "vnfd-id": indata["vnfdId"]
+ ],
+ "vnfd-id": indata["vnfdId"],
}
- ]
+ ],
}
new_nsd["nsd"]["nsd"][0] = {
"description": indata["vnfInstanceDescription"],
"id": indata["vnfdId"] + "-ns",
"name": indata["vnfdId"] + "-ns",
"version": "1.0",
- "df": [vnf_content, ],
+ "df": [
+ vnf_content,
+ ],
"virtual-link-desc": indata["additionalParams"]["virtual-link-desc"],
- "vnfd-id": [indata["vnfdId"]]
+ "vnfd-id": [indata["vnfdId"]],
}
return _id, new_nsd
"""
return self.nsrtopic.new(rollback, session, indata, kwargs, headers)
- def __action_pre_processing(self, rollback, session, indata=None, kwargs=None, headers=None):
+ def __action_pre_processing(
+ self, rollback, session, indata=None, kwargs=None, headers=None
+ ):
"""
Pre process for creating new vnf instance
:param rollback: list to append the created items at database in case a rollback must be done
nsd_id, nsd = self.__create_nsd(rollback, session, indata, kwargs, headers)
self.nsdtopic.upload_content(session, nsd_id, nsd, kwargs, headers)
formatted_indata = NewVnfInstance.__get_formatted_indata(indata, nsd_id)
- nsr_id, _ = self.__create_nsr(rollback, session, formatted_indata, kwargs, headers)
+ nsr_id, _ = self.__create_nsr(
+ rollback, session, formatted_indata, kwargs, headers
+ )
nsr = self.nsrtopic.show(session, nsr_id)
- vnfr_id = nsr['constituent-vnfr-ref'][0]
+ vnfr_id = nsr["constituent-vnfr-ref"][0]
+ if vnfr_id:
+ links = {"vnfInstance": "/osm/vnflcm/v1/vnf_instances/" + vnfr_id}
+ indata["vnfInstanceId"] = vnfr_id
+ indata["_links"] = links
+ self.msg.write("vnf", "create", indata)
return vnfr_id, None
def action(self, rollback, session, indata=None, kwargs=None, headers=None):
class ListVnfInstance(BaseMethod):
-
def __init__(self, db, fs, msg, auth):
"""
Constructor call for listing vnfs
class ShowVnfInstance(BaseMethod):
-
def __init__(self, db, fs, msg, auth):
"""
Constructor call for showing vnf lcm operation
class DeleteVnfInstance(BaseMethod):
-
def __init__(self, db, fs, msg, auth):
"""
Constructor call for deleting vnf
vnfr = self.vnfrtopic.show(session, vnfInstanceId)
ns_id = vnfr.get("nsr-id-ref")
nsr = self.nsrtopic.show(session, ns_id)
- nsd_to_del = nsr['nsd']['_id']
+ nsd_to_del = nsr["nsd"]["_id"]
+ links = {"vnfInstance": "/osm/vnflcm/v1/vnf_instances/" + _id}
+ params = {"vnfdId": vnfr["vnfd-ref"], "vnfInstanceId": _id, "_links": links}
+ self.msg.write("vnf", "delete", params)
self.nsrtopic.delete(session, ns_id, dry_run, not_send_msg)
return self.nsdtopic.delete(session, nsd_to_del, dry_run, not_send_msg)