projects
/
osm
/
NBI.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bug 2150 to encrypt correct WIM account password field and check WIM accounts.
[osm/NBI.git]
/
osm_nbi
/
instance_topics.py
diff --git
a/osm_nbi/instance_topics.py
b/osm_nbi/instance_topics.py
index
aac0b0b
..
c60445f
100644
(file)
--- a/
osm_nbi/instance_topics.py
+++ b/
osm_nbi/instance_topics.py
@@
-27,8
+27,10
@@
from osm_nbi.validation import (
ns_action,
ns_scale,
ns_update,
ns_action,
ns_scale,
ns_update,
+ ns_heal,
nsi_instantiate,
ns_migrate,
nsi_instantiate,
ns_migrate,
+ ns_verticalscale,
)
from osm_nbi.base_topic import (
BaseTopic,
)
from osm_nbi.base_topic import (
BaseTopic,
@@
-439,7
+441,7
@@
class NsrTopic(BaseTopic):
return ns_k8s_namespace
return ns_k8s_namespace
- def _add_flavor_to_nsr(self, vdu, vnfd, nsr_descriptor):
+ def _add_flavor_to_nsr(self, vdu, vnfd, nsr_descriptor
, member_vnf_index, revision=None
):
flavor_data = {}
guest_epa = {}
# Find this vdu compute and storage descriptors
flavor_data = {}
guest_epa = {}
# Find this vdu compute and storage descriptors
@@
-509,7
+511,8
@@
class NsrTopic(BaseTopic):
if guest_epa:
flavor_data["guest-epa"] = guest_epa
if guest_epa:
flavor_data["guest-epa"] = guest_epa
- flavor_data["name"] = vdu["id"][:56] + "-flv"
+ revision = revision if revision is not None else 1
+ flavor_data["name"] = vdu["id"][:56] + "-" + member_vnf_index + "-" + str(revision) + "-flv"
flavor_data["id"] = str(len(nsr_descriptor["flavor"]))
nsr_descriptor["flavor"].append(flavor_data)
flavor_data["id"] = str(len(nsr_descriptor["flavor"]))
nsr_descriptor["flavor"].append(flavor_data)
@@
-557,6
+560,9
@@
class NsrTopic(BaseTopic):
"image": [],
"affinity-or-anti-affinity-group": [],
}
"image": [],
"affinity-or-anti-affinity-group": [],
}
+ if "revision" in nsd["_admin"]:
+ nsr_descriptor["revision"] = nsd["_admin"]["revision"]
+
ns_request["nsr_id"] = nsr_id
if ns_request and ns_request.get("config-units"):
nsr_descriptor["config-units"] = ns_request["config-units"]
ns_request["nsr_id"] = nsr_id
if ns_request and ns_request.get("config-units"):
nsr_descriptor["config-units"] = ns_request["config-units"]
@@
-588,7
+594,8
@@
class NsrTopic(BaseTopic):
vnfd.pop("_admin")
for vdu in vnfd.get("vdu", ()):
vnfd.pop("_admin")
for vdu in vnfd.get("vdu", ()):
- self._add_flavor_to_nsr(vdu, vnfd, nsr_descriptor)
+ member_vnf_index = vnf_profile.get("id")
+ self._add_flavor_to_nsr(vdu, vnfd, nsr_descriptor, member_vnf_index)
sw_image_id = vdu.get("sw-image-desc")
if sw_image_id:
image_data = self._get_image_data_from_vnfd(vnfd, sw_image_id)
sw_image_id = vdu.get("sw-image-desc")
if sw_image_id:
image_data = self._get_image_data_from_vnfd(vnfd, sw_image_id)
@@
-714,6
+721,7
@@
class NsrTopic(BaseTopic):
nsr_descriptor,
ns_request,
ns_k8s_namespace,
nsr_descriptor,
ns_request,
ns_k8s_namespace,
+ revision=None,
):
vnfr_id = str(uuid4())
nsr_id = nsr_descriptor["id"]
):
vnfr_id = str(uuid4())
nsr_id = nsr_descriptor["id"]
@@
-891,7
+899,10
@@
class NsrTopic(BaseTopic):
vdur["internal-connection-point"].append(vdu_icp)
for iface in icp.get("virtual-network-interface-requirement", ()):
vdur["internal-connection-point"].append(vdu_icp)
for iface in icp.get("virtual-network-interface-requirement", ()):
- iface_fields = ("name", "mac-address")
+ # Name, mac-address and interface position is taken from VNFD
+ # and included into VNFR. By this way RO can process this information
+ # while creating the VDU.
+ iface_fields = ("name", "mac-address", "position")
vdu_iface = {
x: iface[x] for x in iface_fields if iface.get(x) is not None
}
vdu_iface = {
x: iface[x] for x in iface_fields if iface.get(x) is not None
}
@@
-1015,7
+1026,8
@@
class NsrTopic(BaseTopic):
alt_image_ids.append(nsr_sw_image_data["id"])
vdur["alt-image-ids"] = alt_image_ids
alt_image_ids.append(nsr_sw_image_data["id"])
vdur["alt-image-ids"] = alt_image_ids
- flavor_data_name = vdu["id"][:56] + "-flv"
+ revision = revision if revision is not None else 1
+ flavor_data_name = vdu["id"][:56] + "-" + vnf_index + "-" + str(revision) + "-flv"
nsr_flavor_desc = utils.find_in_list(
nsr_descriptor["flavor"],
lambda flavor: flavor["name"] == flavor_data_name,
nsr_flavor_desc = utils.find_in_list(
nsr_descriptor["flavor"],
lambda flavor: flavor["name"] == flavor_data_name,
@@
-1160,8
+1172,10
@@
class NsLcmOpTopic(BaseTopic):
"action": ns_action,
"update": ns_update,
"scale": ns_scale,
"action": ns_action,
"update": ns_update,
"scale": ns_scale,
+ "heal": ns_heal,
"terminate": ns_terminate,
"migrate": ns_migrate,
"terminate": ns_terminate,
"migrate": ns_migrate,
+ "verticalscale": ns_verticalscale,
}
def __init__(self, db, fs, msg, auth):
}
def __init__(self, db, fs, msg, auth):
@@
-1172,7
+1186,7
@@
class NsLcmOpTopic(BaseTopic):
"""
Check that user has enter right parameters for the operation
:param session: contains "username", "admin", "force", "public", "project_id", "set_project"
"""
Check that user has enter right parameters for the operation
:param session: contains "username", "admin", "force", "public", "project_id", "set_project"
- :param operation: it can be: instantiate, terminate, action, update
. TODO:
heal
+ :param operation: it can be: instantiate, terminate, action, update
,
heal
:param indata: descriptor with the parameters of the operation
:return: None
"""
:param indata: descriptor with the parameters of the operation
:return: None
"""
@@
-1182,6
+1196,8
@@
class NsLcmOpTopic(BaseTopic):
self._check_scale_ns_operation(indata, nsr)
elif operation == "update":
self._check_update_ns_operation(indata, nsr)
self._check_scale_ns_operation(indata, nsr)
elif operation == "update":
self._check_update_ns_operation(indata, nsr)
+ elif operation == "heal":
+ self._check_heal_ns_operation(indata, nsr)
elif operation == "instantiate":
self._check_instantiate_ns_operation(indata, nsr, session)
elif operation == "instantiate":
self._check_instantiate_ns_operation(indata, nsr, session)
@@
-1384,6
+1400,9
@@
class NsLcmOpTopic(BaseTopic):
)
)
)
)
+ def _check_heal_ns_operation(self, indata, nsr):
+ return
+
def _check_instantiate_ns_operation(self, indata, nsr, session):
vnf_member_index_to_vnfd = {} # map between vnf_member_index to vnf descriptor.
vim_accounts = []
def _check_instantiate_ns_operation(self, indata, nsr, session):
vnf_member_index_to_vnfd = {} # map between vnf_member_index to vnf descriptor.
vim_accounts = []
@@
-1478,7
+1497,7
@@
class NsLcmOpTopic(BaseTopic):
if in_vdu["id"] == vdu["id"]:
for volume in get_iterable(in_vdu.get("volume")):
for volumed in get_iterable(vdu.get("virtual-storage-desc")):
if in_vdu["id"] == vdu["id"]:
for volume in get_iterable(in_vdu.get("volume")):
for volumed in get_iterable(vdu.get("virtual-storage-desc")):
- if volumed
["id"]
== volume["name"]:
+ if volumed == volume["name"]:
break
else:
raise EngineException(
break
else:
raise EngineException(
@@
-1498,7
+1517,7
@@
class NsLcmOpTopic(BaseTopic):
):
vdu_if_names.add(iface.get("name"))
):
vdu_if_names.add(iface.get("name"))
- for in_iface in get_iterable(in_vdu
["interface"]
):
+ for in_iface in get_iterable(in_vdu
.get("interface")
):
if in_iface["name"] in vdu_if_names:
break
else:
if in_iface["name"] in vdu_if_names:
break
else:
@@
-1583,7
+1602,7
@@
class NsLcmOpTopic(BaseTopic):
if wim_account in wim_accounts:
return
try:
if wim_account in wim_accounts:
return
try:
- db_filter = self._get_project_filter(session
, write=False, show_all=True
)
+ db_filter = self._get_project_filter(session)
db_filter["_id"] = wim_account
self.db.get_one("wim_accounts", db_filter)
except Exception:
db_filter["_id"] = wim_account
self.db.get_one("wim_accounts", db_filter)
except Exception:
@@
-2244,7
+2263,7
@@
class NsLcmOpTopic(BaseTopic):
vnf_index = vnfr["member-vnf-index-ref"]
self.logger.info("nsr {}".format(nsr))
for vdu in vnfd["vdu"]:
vnf_index = vnfr["member-vnf-index-ref"]
self.logger.info("nsr {}".format(nsr))
for vdu in vnfd["vdu"]:
- self.nsrtopic._add_flavor_to_nsr(vdu, vnfd, nsr)
+ self.nsrtopic._add_flavor_to_nsr(vdu, vnfd, nsr
, vnf_index, latest_vnfd_revision
)
sw_image_id = vdu.get("sw-image-desc")
if sw_image_id:
image_data = self.nsrtopic._get_image_data_from_vnfd(vnfd, sw_image_id)
sw_image_id = vdu.get("sw-image-desc")
if sw_image_id:
image_data = self.nsrtopic._get_image_data_from_vnfd(vnfd, sw_image_id)
@@
-2264,6
+2283,7
@@
class NsLcmOpTopic(BaseTopic):
nsr,
ns_request,
ns_k8s_namespace,
nsr,
ns_request,
ns_k8s_namespace,
+ latest_vnfd_revision,
)
indata["newVdur"] = vnfr_descriptor["vdur"]
nslcmop_desc = self._create_nslcmop(nsInstanceId, operation, indata)
)
indata["newVdur"] = vnfr_descriptor["vdur"]
nslcmop_desc = self._create_nslcmop(nsInstanceId, operation, indata)