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)