diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-09-23 19:36:48 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-09-23 19:37:14 +0200 |
commit | 2f77cfd21ee4ca17db89b9e668090cc4bd487fab (patch) | |
tree | 1b1cc9df3429c4c39d3077ef48e3da2701b1fb56 | |
parent | 2abb0715dfa7148554fe7c26597e3c0c5e4c9cbe (diff) |
process: Support passing ssh parameters to RemoteProcess
Change-Id: I7961708d8b56f64757bd0b58bbbe295cedcdf28e
-rw-r--r-- | src/osmo_gsm_tester/process.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/osmo_gsm_tester/process.py b/src/osmo_gsm_tester/process.py index b73673f..bfe5a31 100644 --- a/src/osmo_gsm_tester/process.py +++ b/src/osmo_gsm_tester/process.py @@ -353,7 +353,7 @@ class Process(log.Origin): class RemoteProcess(Process): - def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, popen_args, **popen_kwargs): + def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, popen_args, ssh_args=[], **popen_kwargs): super().__init__(name, run_dir, popen_args, **popen_kwargs) self.remote_user = remote_user self.remote_host = remote_host @@ -369,9 +369,10 @@ class RemoteProcess(Process): # We need double -t to force tty and be able to forward signals to # processes (SIGHUP) when we close ssh on the local side. As a result, # stderr seems to be merged into stdout in ssh client. - self.popen_args = ['ssh', '-t', '-t', self.remote_user+'@'+self.remote_host, - '%s%s' % (cd, - ' '.join(self.popen_args))] + self.popen_args = ['ssh', '-t', '-t'] + self.popen_args.extend(ssh_args) + self.popen_args.append(self.remote_user+'@'+self.remote_host) + self.popen_args.append('%s%s' % (cd, ' '.join(self.popen_args))) self.dbg(self.popen_args, dir=self.run_dir, conf=self.popen_kwargs) class NetNSProcess(Process): @@ -405,9 +406,9 @@ def run_local_netns_sync(run_dir, name, netns, popen_args): proc = NetNSProcess(name, run_dir, netns, popen_args) proc.launch_sync() -def run_remote_sync(run_dir, remote_user, remote_addr, name, popen_args, remote_cwd=None): +def run_remote_sync(run_dir, remote_user, remote_addr, name, popen_args, remote_cwd=None, ssh_args=[]): run_dir = run_dir.new_dir(name) - proc = RemoteProcess(name, run_dir, remote_user, remote_addr, remote_cwd, popen_args) + proc = RemoteProcess(name, run_dir, remote_user, remote_addr, remote_cwd, popen_args, ssh_args) proc.launch_sync() def scp(run_dir, remote_user, remote_addr, name, local_path, remote_path): |