diff options
author | Jan Gelety <jgelety@cisco.com> | 2019-08-13 22:57:07 +0200 |
---|---|---|
committer | Jan Gelety <jgelety@cisco.com> | 2019-08-14 04:54:43 +0200 |
commit | e6dd772435e4736170aaa43a779840196e714254 (patch) | |
tree | b056721462415d6a6b9ef17e1287aae839febb5a /resources/libraries/python/topology.py | |
parent | 16226fd221af3345c02de6d685c90ee6bf7cf9f9 (diff) |
FIX: Remove eth_avf and portX_vifY interfaces from topo in TC/TS tear down
Change-Id: I90901c4ab14dfa76dc3e1f786a4b986479e0ba47
Signed-off-by: Jan Gelety <jgelety@cisco.com>
Diffstat (limited to 'resources/libraries/python/topology.py')
-rw-r--r-- | resources/libraries/python/topology.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/resources/libraries/python/topology.py b/resources/libraries/python/topology.py index 698c97b426..1e5ce4bd62 100644 --- a/resources/libraries/python/topology.py +++ b/resources/libraries/python/topology.py @@ -13,6 +13,8 @@ """Defines nodes and topology structure.""" +import re + from collections import Counter from yaml import load @@ -59,6 +61,7 @@ class NodeSubTypeTG(object): # IxNetwork IXNET = 'IXNET' + DICT__nodes = load_topo_from_yaml() @@ -139,7 +142,7 @@ class Topology(object): """ port_types = ('subinterface', 'vlan_subif', 'memif', 'tap', 'vhost', 'loopback', 'gre_tunnel', 'vxlan_tunnel', 'eth_bond', - 'avf') + 'eth_avf') for node_data in nodes.values(): if node_data['type'] == NodeType.DUT: @@ -147,6 +150,32 @@ class Topology(object): Topology.remove_all_ports(node_data, ptype) @staticmethod + def remove_all_vif_ports(node): + """Remove all Virtual Interfaces on DUT node. + + :param node: Node to remove VIF ports on. + :type node: dict + :returns: Nothing + """ + reg_ex = re.compile(r'port\d+_vif\d+') + for if_key in list(node['interfaces']): + if re.match(reg_ex, if_key): + node['interfaces'].pop(if_key) + + @staticmethod + def remove_all_added_vif_ports_on_all_duts_from_topology(nodes): + """Remove all added Virtual Interfaces on all DUT nodes in + the topology. + + :param nodes: Nodes in the topology. + :type nodes: dict + :returns: Nothing + """ + for node_data in nodes.values(): + if node_data['type'] == NodeType.DUT: + Topology.remove_all_vif_ports(node_data) + + @staticmethod def update_interface_sw_if_index(node, iface_key, sw_if_index): """Update sw_if_index on the interface from the node. |