aboutsummaryrefslogtreecommitdiff
path: root/net.py
diff options
context:
space:
mode:
authorTrinity Pointard <trinity.pointard@gmail.com>2021-11-08 09:25:14 +0100
committerTrinity Pointard <trinity.pointard@gmail.com>2021-11-08 09:25:14 +0100
commit179d18fcecafc209d127604f78f18baa7f4926f1 (patch)
tree6bf4495f4b814219808c34d0da4200a0d45858c1 /net.py
parent610e5549033364a437a3e264716508ff2b6c43a0 (diff)
downloadmknet-179d18fcecafc209d127604f78f18baa7f4926f1.tar.gz
mknet-179d18fcecafc209d127604f78f18baa7f4926f1.zip
add support for upstream port and add garage example script
Diffstat (limited to 'net.py')
-rw-r--r--net.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/net.py b/net.py
index bc20e4d..8d0a248 100644
--- a/net.py
+++ b/net.py
@@ -1,4 +1,5 @@
import subprocess
+import os
_netns = ["ip", "netns"]
def run_netns(*cmd):
@@ -8,9 +9,16 @@ def run_netns(*cmd):
return process
class ns:
- def list():
- process = run_netns("list")
- return [ns for ns in process.stdout.split("\n") if ns.startswith("testnet-")]
+ def name_unconfined():
+ if "unconfined" not in ns.list(True):
+ run_netns("attach", "unconfined", str(os.getpid()))
+
+ def list(include_unconfined = False):
+ try:
+ nss = os.listdir("/var/run/netns")
+ return [ns for ns in nss if ns.startswith("testnet-") or include_unconfined and ns == "unconfined"]
+ except FileNotFoundError:
+ return []
def forget(name):
run_netns("del", name)