Add handlers to run process under a specific netns on a remote host
It will be used later to run iiperf3-cli connected to srsue on another host.
Change-Id: I8d223fc302df42446f5876ba020cfbea94be09b9
diff --git a/src/osmo_gsm_tester/process.py b/src/osmo_gsm_tester/process.py
index 3880630..2735c6a 100644
--- a/src/osmo_gsm_tester/process.py
+++ b/src/osmo_gsm_tester/process.py
@@ -396,6 +396,12 @@
kill_cmd = ('kill', '-%d' % int(sig), str(self.process_obj.pid))
run_local_netns_sync(self.run_dir, self.name()+"-kill"+str(sig), self.netns, kill_cmd)
+class RemoteNetNSProcess(RemoteProcess):
+ NETNS_EXEC_BIN = 'osmo-gsm-tester_netns_exec.sh'
+ def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, netns, popen_args, **popen_kwargs):
+ args = ['sudo', self.NETNS_EXEC_BIN, self.netns] + list(popen_args)
+ super().__init__(name, run_dir, remote_user, remote_host, remote_cwd, args, **popen_kwargs)
+ self.netns = netns
def run_local_sync(run_dir, name, popen_args):
run_dir =run_dir.new_dir(name)
diff --git a/src/osmo_gsm_tester/remote.py b/src/osmo_gsm_tester/remote.py
index 6be0a5e..771f2b8 100644
--- a/src/osmo_gsm_tester/remote.py
+++ b/src/osmo_gsm_tester/remote.py
@@ -93,6 +93,10 @@
args = (remote_wrapper_script,) + popen_args
return self.RemoteProcess(name, args, remote_env, **popen_kwargs)
+ def RemoteNetNSProcess(self, name, netns, popen_args, **popen_kwargs):
+ run_dir = self.run_dir.new_dir(name)
+ return self.RemoteNetNSProcess(name, run_dir, self.user(), self.host(), self.cwd(), netns, popen_args, **popen_kwargs)
+
def run_remote_sync(self, name, popen_args):
proc = self.RemoteProcess(name, popen_args, remote_env=self.remote_env)
proc.launch_sync()