FIX: Namespace deletion 55/29555/1
authorpmikus <pmikus@cisco.com>
Tue, 20 Oct 2020 14:37:33 +0000 (14:37 +0000)
committerpmikus <pmikus@cisco.com>
Tue, 20 Oct 2020 14:37:33 +0000 (14:37 +0000)
+ Not sure who was doing code.
+ Set interface up should have namespace version

Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I1103cddb9dd11e25a8ab0ce3f5126b2db9444749

resources/libraries/python/IPUtil.py
resources/libraries/python/Namespaces.py

index 10a231f..552ba27 100644 (file)
@@ -326,18 +326,24 @@ class IPUtil:
         return None
 
     @staticmethod
-    def set_linux_interface_up(node, interface):
+    def set_linux_interface_up(
+            node, interface, namespace=None):
         """Set the specified interface up.
-
         :param node: VPP/TG node.
         :param interface: Interface in namespace.
+        :param namespace: Execute command in namespace. Optional
         :type node: dict
         :type interface: str
+        :type namespace: str
         :raises RuntimeError: If the interface could not be set up.
         """
-        cmd = f"ip link set {interface} up"
+        if namespace is not None:
+            cmd = f"ip netns exec {namespace} ip link set dev {interface} up"
+        else:
+            cmd = f"ip link set dev {interface} up"
         exec_cmd_no_error(node, cmd, timeout=30, sudo=True)
 
+
     @staticmethod
     def set_linux_interface_ip(
             node, interface, ip_addr, prefix, namespace=None):
index 2bdcbcb..4bea8b5 100644 (file)
@@ -13,6 +13,8 @@
 
 """Linux namespace utilities library."""
 
+from copy import deepcopy
+
 from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd
 
 
@@ -145,5 +147,6 @@ class Namespaces:
             Namespaces.delete_namespace(node, namespace)
             return
 
-        for namespace_name in Namespaces.__namespaces:
+        namespace_copy = deepcopy(Namespaces.__namespaces)
+        for namespace_name in namespace_copy:
             Namespaces.delete_namespace(node, namespace_name)