vnfrs: dict,
vca_records: list,
vnf_count: str = None,
+ vdu_id: str = None,
vdu_count: str = None,
) -> str:
"""Generate application name to make the relevant charm of VDU/KDU
Limiting the app name to 50 characters.
Args:
- charm_level (str): VNF ID
- vnfrs (dict): VDU ID
+ charm_level (str): level of charm
+ vnfrs (dict): vnf record dict
vca_records (list): db_nsr["_admin"]["deployed"]["VCA"] as list
vnf_count (str): vnf count index
+ vdu_id (str): VDU ID
vdu_count (str): vdu count index
Returns:
# Charms are also used for deployments with Helm charts.
# If deployment unit is a Helm chart/KDU,
# vdu_profile_id and vdu_count will be empty string.
- vdu_profile_id = ""
-
if vdu_count is None:
vdu_count = ""
- elif vdu_count:
- vdu_profile_id = vnfrs["vdur"][int(vdu_count)]["vdu-id-ref"]
-
# If vnf/vdu is scaled, more than one VCA record may be included in vca_records
# but ee_descriptor_id is same.
# Shorten the ee_descriptor_id, member-vnf-index-ref and vdu_profile_id
# to first 12 characters.
+ if not vdu_id:
+ raise N2VCException(message="vdu-id should be provided.")
+ vca_record = next(
+ filter(lambda record: record["vdu_id"] == vdu_id, vca_records), {}
+ )
application_name = (
- vca_records[0]["ee_descriptor_id"][:12]
+ vca_record["ee_descriptor_id"][:12]
+ "-"
+ vnf_count
+ "-"
+ vnfrs["member-vnf-index-ref"][:12]
+ "-"
- + vdu_profile_id[:12]
+ + vdu_id[:12]
+ "-"
+ vdu_count
+ "-vdu"
db_vnfr,
vca_records,
vnf_count=vnf_count,
+ vdu_id=vdu_id,
vdu_count=vdu_count,
)
else:
]
vnf_count = ""
vdu_count = ""
+ vdu_id = None
expected_result = "simple-ns-charm-abc-000-rrrr-nnnn-4444-h-ns"
application_name = self.n2vc._generate_application_name(
charm_level,
vnfrs,
vca_records,
vnf_count=vnf_count,
+ vdu_id=vdu_id,
vdu_count=vdu_count,
)
self.assertEqual(application_name, expected_result)
vca_records = []
vnf_count = ""
vdu_count = ""
+ vdu_id = None
with self.assertRaises(N2VCException):
self.n2vc._generate_application_name(
charm_level,
vnfrs,
vca_records,
vnf_count=vnf_count,
+ vdu_id=vdu_id,
vdu_count=vdu_count,
)
]
vnf_count = "1"
vdu_count = ""
+ vdu_id = None
expected_result = "simple-ee-ab-1-vnf111-xxx-y-vnf"
application_name = self.n2vc._generate_application_name(
charm_level,
vnfrs,
vca_records,
vnf_count=vnf_count,
+ vdu_id=vdu_id,
vdu_count=vdu_count,
)
self.assertEqual(application_name, expected_result)
{
"target_element": "vnf/vnf1/mgmtvm",
"member-vnf-index": "vnf111-xxx-yyy-zzz",
- "vdu_id": "38912ff7-5bdd-4228-911f-c2bee259c44a",
+ "vdu_id": "mgmtVM",
"kdu_name": None,
"vdu_count_index": None,
"vnfd_id": "r7fbd751-3de4-4e68-bd40-ec5ae0a53898",
]
vnf_count = "2"
vdu_count = "0"
+ vdu_id = "mgmtVM"
expected_result = "simple-ee-ab-2-vnf111-xxx-y-mgmtVM-0-vdu"
application_name = self.n2vc._generate_application_name(
charm_level,
vnfrs,
vca_records,
vnf_count=vnf_count,
+ vdu_id=vdu_id,
vdu_count=vdu_count,
)
self.assertEqual(application_name, expected_result)
self.assertLess(len(application_name), 50)
- def test_generate_application_name_vdu_charm_wrong_vnfrs(self):
+ def test_generate_application_name_vdu_charm_vdu_id_none(self):
charm_level = "vdu-level"
vnfrs = {
"member-vnf-index-ref": "vnf111-xxx-yyy-zzz",
{
"target_element": "vnf/vnf1/mgmtvm",
"member-vnf-index": "vnf111-xxx-yyy-zzz",
- "vdu_id": "38912ff7-5bdd-4228-911f-c2bee259c44a",
+ "vdu_id": None,
"kdu_name": None,
"vdu_count_index": None,
"vnfd_id": "r7fbd751-3de4-4e68-bd40-ec5ae0a53898",
]
vnf_count = "2"
vdu_count = "0"
- with self.assertRaises(KeyError):
+ vdu_id = None
+ with self.assertRaises(N2VCException):
self.n2vc._generate_application_name(
charm_level,
vnfrs,
vca_records,
vnf_count=vnf_count,
+ vdu_id=vdu_id,
vdu_count=vdu_count,
)
{
"target_element": "vnf/vnf1/mgmtvm",
"member-vnf-index": "vnf111-xxx-yyy-zzz",
- "vdu_id": "38912ff7-5bdd-4228-911f-c2bee259c44a",
+ "vdu_id": "mgmtVM",
"kdu_name": None,
"vdu_count_index": None,
"vnfd_id": "r7fbd751-3de4-4e68-bd40-ec5ae0a53898",
{
"target_element": "vnf/openldap/kdu/ldap",
"member-vnf-index": "openldap",
- "vdu_id": None,
+ "vdu_id": "ldap",
"kdu_name": "ldap",
"vdu_count_index": 0,
"operational-status": "init",
}
vnf_count = "0"
mock_vnf_count_and_record.return_value = (vnf_count, db_vnfr)
- expected_result = "openldap-ee-z0-openldap-vdu"
+ expected_result = "openldap-ee-z0-openldap-ldap-vdu"
with patch.object(self.n2vc, "db", self.db), patch.object(
self.n2vc, "_get_vnf_count_and_record", mock_vnf_count_and_record
):