From c756b657f5fd3423b95c98d41c6fb0c007cbed08 Mon Sep 17 00:00:00 2001 From: "jan.hradil" Date: Thu, 23 Mar 2017 13:16:18 +0100 Subject: HC Test: SPAN Port Mirroring Suite Change-Id: Ideaae09aa0d062460f5dfb3e3732dee67d6a5aea Signed-off-by: jan.hradil --- .../python/honeycomb/HcAPIKwInterfaces.py | 28 +++++++++++++--------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'resources/libraries/python/honeycomb') diff --git a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py index f317d06a69..19ce8f26c8 100644 --- a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py +++ b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py @@ -1635,7 +1635,7 @@ class InterfaceKeywords(object): " of disabled interfaces.".format(interface)) @staticmethod - def configure_interface_span(node, dst_interface, *src_interfaces): + def configure_interface_span(node, dst_interface, src_interfaces=None): """Configure SPAN port mirroring on the specified interfaces. If no source interface is provided, SPAN will be disabled. @@ -1644,29 +1644,35 @@ class InterfaceKeywords(object): :param src_interfaces: List of interfaces to mirror packets from. :type node: dict :type dst_interface: str - :type src_interfaces: list of str + :type src_interfaces: list of dict :returns: Content of response. :rtype: bytearray :raises HoneycombError: If SPAN could not be configured. """ - interface = dst_interface.replace("/", "%2F") + interface = Topology.convert_interface_reference( + node, dst_interface, "name") + interface = interface.replace("/", "%2F") path = "/interface/" + interface + "/span" if not src_interfaces: status_code, _ = HcUtil.delete_honeycomb_data( node, "config_vpp_interfaces", path) - - data = { - "span": { - "mirrored-interfaces": { - "mirrored-interface": src_interfaces + else: + for src_interface in src_interfaces: + src_interface["iface-ref"] = Topology.\ + convert_interface_reference( + node, src_interface["iface-ref"], "name") + data = { + "span": { + "mirrored-interfaces": { + "mirrored-interface": src_interfaces + } } } - } - status_code, _ = HcUtil.put_honeycomb_data( - node, "config_vpp_interfaces", data, path) + status_code, _ = HcUtil.put_honeycomb_data( + node, "config_vpp_interfaces", data, path) if status_code not in (HTTPCodes.OK, HTTPCodes.ACCEPTED): raise HoneycombError( -- cgit 1.2.3-korg