summaryrefslogtreecommitdiff
path: root/tests/common/netns.py
blob: 9b0d729b16b5b27d4a2c8ad6978708a7556706ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from common import process

# creates netns and returns netns name. if ok return 0
def create(netns_name):
    netns, out, err = process.run(["ip", "netns", "add", netns_name])
    print("netns.create: exit=%d out=%s err=%s" % (netns, out, err))

    return netns


# deletes netns. if ok return 0
def delete(netns_name):
    netns, out, err = process.run(["ip", "netns", "delete", netns_name])
    print("netns.delete: exit=%d out=%s err=%s" % (netns, out, err))

    return netns


# execute command in netns using process.run
# if netns_name is None, then execute in global rt
def exec(netns_name, command):
    if netns_name is None:
        exit, out, err = process.run(command)
    else:
        exit, out, err = process.run(["ip", "netns", "exec", netns_name] + command)

    print("netns.exec: netns=%s command=%s :: exit=%d out=%s err=%s" % (netns_name, str(command), exit, out, err))

    return (exit, out, err)