Add possibility to create a VxLAN interface.
[csit.git] / resources / libraries / python / InterfaceUtil.py
index 3da0e1a..6790fb7 100644 (file)
@@ -494,30 +494,39 @@ class InterfaceUtil(object):
                                .format(node))
 
     @staticmethod
-    def vxlan_dump(node, interface):
+    def vxlan_dump(node, interface=None):
         """Get VxLAN data for the given interface.
 
         :param node: VPP node to get interface data from.
         :param interface: Numeric index or name string of a specific interface.
+        If None, information about all VxLAN interfaces is returned.
         :type node: dict
         :type interface: int or str
-        :return: Dictionary containing data for the given VxLAN.
-        :rtype dict
+        :return: Dictionary containing data for the given VxLAN interface or if
+        interface=None, the list of dictionaries with all VxLAN interfaces.
+        :rtype dict or list
         """
-
-        if isinstance(interface, basestring):
+        param = "sw_if_index"
+        if interface is None:
+            param = ''
+            sw_if_index = ''
+        elif isinstance(interface, basestring):
             sw_if_index = Topology.get_interface_sw_index(node, interface)
-        else:
+        elif isinstance(interface, int):
             sw_if_index = interface
+        else:
+            raise Exception("Wrong interface format {0}".format(interface))
 
         with VatTerminal(node) as vat:
             response = vat.vat_terminal_exec_cmd_from_template(
-                "vxlan_dump.vat", sw_if_index=sw_if_index)
-
-        for vxlan in response[0]:
-            if vxlan["sw_if_index"] == sw_if_index:
-                return vxlan
-        return {}
+                "vxlan_dump.vat", param=param, sw_if_index=sw_if_index)
+
+        if sw_if_index:
+            for vxlan in response[0]:
+                if vxlan["sw_if_index"] == sw_if_index:
+                    return vxlan
+            return {}
+        return response[0]
 
     @staticmethod
     def create_subinterface(node, interface, sub_id, outer_vlan_id,