Minor fix regarding "related" in WIM
[osm/RO.git] / osm_ro / wim / engine.py
index 39defb1..3fdd032 100644 (file)
@@ -331,7 +331,7 @@ class WimEngine(object):
     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]
@@ -347,7 +347,8 @@ class WimEngine(object):
             '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):
@@ -356,7 +357,7 @@ class WimEngine(object):
         (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.
@@ -366,6 +367,9 @@ class WimEngine(object):
             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)
@@ -374,11 +378,11 @@ class WimEngine(object):
         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):
@@ -511,7 +515,7 @@ def _group_networks(networks):
             (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')