Ido Barkan has uploaded a new change for review.
Change subject: net: add simple network namespace functions to ipwrapper ......................................................................
net: add simple network namespace functions to ipwrapper
Adding simple wrappers for adding, deleting, and executing ip commands in other namespaces.
Change-Id: I6b83c9635fba4feb4946ceba460f3ab8c09ad656 Signed-off-by: Ido Barkan ibarkan@redhat.com --- M lib/vdsm/ipwrapper.py M tests/nettestlib.py 2 files changed, 26 insertions(+), 0 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/47/46447/1
diff --git a/lib/vdsm/ipwrapper.py b/lib/vdsm/ipwrapper.py index 3ded776..e8aa6cd 100644 --- a/lib/vdsm/ipwrapper.py +++ b/lib/vdsm/ipwrapper.py @@ -585,3 +585,20 @@ def linkDel(dev): command = [_IP_BINARY.cmd, 'link', 'del', 'dev', dev] _execCmd(command) + + +def netns_add(name): + _execCmd([_IP_BINARY.cmd, 'netns', 'add', name]) + + +def netns_delete(name): + _execCmd([_IP_BINARY.cmd, 'netns', 'delete', name]) + + +def netns_exec(netns_name, command): + netns_command = [_IP_BINARY.cmd, 'netns', 'exec', netns_name] + _execCmd(netns_command + command) + + +def netns_assign(device, netns_name): + _execCmd([_IP_BINARY.cmd, 'link', 'set', device, 'netns', netns_name]) diff --git a/tests/nettestlib.py b/tests/nettestlib.py index 2ffb11a..c923f44 100644 --- a/tests/nettestlib.py +++ b/tests/nettestlib.py @@ -132,6 +132,15 @@ pass
+@contextmanager +def network_namespace(name): + netns_add(name) + try: + yield name + finally: + netns_delete(name) + + def _listenOnDevice(fd, icmp): while True: packet = os.read(fd, 2048)