CSIT-424: HC Test: JSON comparison function rework
[csit.git] / resources / libraries / python / topology.py
index 3c903e5..8a591df 100644 (file)
@@ -18,7 +18,7 @@ from collections import Counter
 from yaml import load
 
 from robot.api import logger
-from robot.libraries.BuiltIn import BuiltIn
+from robot.libraries.BuiltIn import BuiltIn, RobotNotRunningError
 from robot.api.deco import keyword
 
 __all__ = ["DICT__nodes", 'Topology']
@@ -27,11 +27,11 @@ __all__ = ["DICT__nodes", 'Topology']
 def load_topo_from_yaml():
     """Load topology from file defined in "${TOPOLOGY_PATH}" variable.
 
-    :return: Nodes from loaded topology.
+    :returns: Nodes from loaded topology.
     """
     try:
         topo_path = BuiltIn().get_variable_value("${TOPOLOGY_PATH}")
-    except:
+    except RobotNotRunningError:
         return ''
 
     with open(topo_path) as work_file:
@@ -125,6 +125,19 @@ class Topology(object):
         """
         node['interfaces'][iface_key]['vpp_sw_index'] = int(sw_if_index)
 
+    @staticmethod
+    def update_interface_name(node, iface_key, name):
+        """Update name on the interface from the node.
+
+        :param node: Node to update name on.
+        :param iface_key: Topology key of the interface.
+        :param name: Interface name to store.
+        :type node: dict
+        :type iface_key: str
+        :type name: str
+        """
+        node['interfaces'][iface_key]['name'] = str(name)
+
     @staticmethod
     def update_interface_mac_address(node, iface_key, mac_address):
         """Update mac_address on the interface from the node.
@@ -299,7 +312,7 @@ class Topology(object):
         try:
             if isinstance(iface_key, basestring):
                 return node['interfaces'][iface_key].get('vpp_sw_index')
-            #FIXME: use only iface_key, do not use integer
+            # TODO: use only iface_key, do not use integer
             else:
                 return int(iface_key)
         except (KeyError, ValueError):