# For those usages not covered by the Apache License, Version 2.0 please
# contact: fbravo@whitestack.com
##
-
-from osm_lcm.data_utils.database.vim_account import VimAccountDB
-
-__author__ = (
- "Lluis Gifre <lluis.gifre@cttc.es>, Ricard Vilalta <ricard.vilalta@cttc.es>"
-)
-
-
-def get_vims_to_connect(db_nsr, db_vnfrs, target_vld):
- vims_to_connect = set()
- vld = next(
- (vld for vld in db_nsr["vld"] if vld["id"] == target_vld["id"]),
- None,
- )
- if vld is None:
- return vims_to_connect # VLD not in NS, means it is an internal VLD within a single VIM
- # iterate over VNFs and retrieve name of VIMs they are planned to be deployed to
- for vld_member_vnf_index_ref in vld["vnfd-connection-point-ref"]:
- vld_member_vnf_index_ref = vld_member_vnf_index_ref["member-vnf-index-ref"]
- db_vim = VimAccountDB.get_vim_account_with_id(
- db_vnfrs[vld_member_vnf_index_ref]["vim-account-id"]
- )
- if db_vim is None:
- continue
- vims_to_connect.add(db_vim["name"])
- return vims_to_connect