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):
"""Linux namespace utilities library."""
+from copy import deepcopy
+
from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd
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)