def derive_wan_link(self,
wim_usage,
instance_scenario_id, sce_net_id,
- networks, tenant):
+ networks, tenant, related=None):
"""Create a instance_wim_nets record for the given information"""
if sce_net_id in wim_usage:
account_id = wim_usage[sce_net_id]
'instance_scenario_id': instance_scenario_id,
'sce_net_id': sce_net_id,
'wim_id': wim_id,
- 'wim_account_id': account['uuid']
+ 'wim_account_id': account['uuid'],
+ related: related
}
def derive_wan_links(self, wim_usage, networks, tenant=None):
(NSR).
Arguments:
- wim_usage(dict): Mapping between sce_net_id and wim_id
+ wim_usage(dict): Mapping between sce_net_id and wim_id. If wim_id is False, means not create wam_links
networks(list): Dicts containing the information about the networks
that will be instantiated to materialize a Network Service
(scenario) instance.
list: list of WAN links to be written to the database
"""
# Group networks by key=(instance_scenario_id, sce_net_id)
+ related = None
+ if networks:
+ related = networks[0].get("related")
filtered = _filter_multi_vim(networks)
grouped_networks = _group_networks(filtered)
datacenters_per_group = _count_datacenters(grouped_networks)
wan_groups = [key
for key, counter in datacenters_per_group
if counter > 1]
-
+ # Keys are tuples(instance_scenario_id, sce_net_id)
return [
self.derive_wan_link(wim_usage,
- key[0], key[1], grouped_networks[key], tenant)
- for key in wan_groups
+ key[0], key[1], grouped_networks[key], tenant, related)
+ for key in wan_groups if wim_usage.get(key[1]) is not False
]
def create_action(self, wan_link):
(scenario) instance.
Returns:
dict: Keys are tuples (instance_scenario_id, sce_net_id) and values
- are lits of networks.
+ are list of networks.
"""
criteria = itemgetter('instance_scenario_id', 'sce_net_id')