X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Fns.py;h=8742488ba52bc3b0811ff9064695db81eaa699c9;hb=e64f7fb3e0efd6fcc78ea322c90106c7403a8a62;hp=e1c01b3e2b5f2a615a89c9df613e1af2ddc27b77;hpb=7ab529a15d7b441e5338eaea0f2f567fe67cd34c;p=osm%2FLCM.git diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index e1c01b3..8742488 100644 --- a/osm_lcm/ns.py +++ b/osm_lcm/ns.py @@ -304,36 +304,39 @@ class NsLcm(LcmBase): "wim_account": wim_account_2_RO(ns_params.get("wimAccountId")), # "scenario": ns_params["nsdId"], } - if n2vc_key_list: - for vnfd_ref, vnfd in vnfd_dict.items(): - vdu_needed_access = [] - mgmt_cp = None - if vnfd.get("vnf-configuration"): - if vnfd.get("mgmt-interface"): - if vnfd["mgmt-interface"].get("vdu-id"): - vdu_needed_access.append(vnfd["mgmt-interface"]["vdu-id"]) - elif vnfd["mgmt-interface"].get("cp"): - mgmt_cp = vnfd["mgmt-interface"]["cp"] - - for vdu in vnfd.get("vdu", ()): - if vdu.get("vdu-configuration"): + n2vc_key_list = n2vc_key_list or [] + for vnfd_ref, vnfd in vnfd_dict.items(): + vdu_needed_access = [] + mgmt_cp = None + if vnfd.get("vnf-configuration"): + ssh_required = vnfd["vnf-configuration"].get("config-access", {}).get("ssh-access").get("required") + if ssh_required and vnfd.get("mgmt-interface"): + if vnfd["mgmt-interface"].get("vdu-id"): + vdu_needed_access.append(vnfd["mgmt-interface"]["vdu-id"]) + elif vnfd["mgmt-interface"].get("cp"): + mgmt_cp = vnfd["mgmt-interface"]["cp"] + + for vdu in vnfd.get("vdu", ()): + if vdu.get("vdu-configuration"): + ssh_required = vdu["vdu-configuration"].get("config-access", {}).get("ssh-access").get("required") + if ssh_required: vdu_needed_access.append(vdu["id"]) - elif mgmt_cp: - for vdu_interface in vdu.get("interface"): - if vdu_interface.get("external-connection-point-ref") and \ - vdu_interface["external-connection-point-ref"] == mgmt_cp: - vdu_needed_access.append(vdu["id"]) - mgmt_cp = None - break + elif mgmt_cp: + for vdu_interface in vdu.get("interface"): + if vdu_interface.get("external-connection-point-ref") and \ + vdu_interface["external-connection-point-ref"] == mgmt_cp: + vdu_needed_access.append(vdu["id"]) + mgmt_cp = None + break - if vdu_needed_access: - for vnf_member in nsd.get("constituent-vnfd"): - if vnf_member["vnfd-id-ref"] != vnfd_ref: - continue - for vdu in vdu_needed_access: - populate_dict(RO_ns_params, - ("vnfs", vnf_member["member-vnf-index"], "vdus", vdu, "mgmt_keys"), - n2vc_key_list) + if vdu_needed_access: + for vnf_member in nsd.get("constituent-vnfd"): + if vnf_member["vnfd-id-ref"] != vnfd_ref: + continue + for vdu in vdu_needed_access: + populate_dict(RO_ns_params, + ("vnfs", vnf_member["member-vnf-index"], "vdus", vdu, "mgmt_keys"), + n2vc_key_list) if ns_params.get("vduImage"): RO_ns_params["vduImage"] = ns_params["vduImage"]