Allow passing remote env to process running in remote host
Change-Id: Icc0ae8d79ca30ed0a289b67546735251fc46cb10
diff --git a/src/osmo_gsm_tester/remote.py b/src/osmo_gsm_tester/remote.py
index 92dd113..6be0a5e 100644
--- a/src/osmo_gsm_tester/remote.py
+++ b/src/osmo_gsm_tester/remote.py
@@ -34,6 +34,7 @@
self.remote_user = remote_user
self.remote_host = remote_host
self.remote_cwd = remote_cwd
+ self.remote_env = {}
def user(self):
return self.remote_user
@@ -44,9 +45,15 @@
def cwd(self):
return self.remote_cwd
- def RemoteProcess(self, name, popen_args, **popen_kwargs):
+ def set_remote_env(self, remote_env_dict):
+ self.remote_env = remote_env_dict
+
+ def get_remote_env(self):
+ return self.remote_env
+
+ def RemoteProcess(self, name, popen_args, remote_env={}, **popen_kwargs):
run_dir = self.run_dir.new_dir(name)
- return process.RemoteProcess(name, run_dir, self.user(), self.host(), self.cwd(), popen_args, **popen_kwargs)
+ return process.RemoteProcess(name, run_dir, self.user(), self.host(), self.cwd(), popen_args, remote_env=remote_env, **popen_kwargs)
def generate_wrapper_script(self):
wrapper_script = self.run_dir.new_file(RemoteHost.WRAPPER_SCRIPT)
@@ -72,7 +79,7 @@
os.chmod(wrapper_script, st.st_mode | stat.S_IEXEC)
return wrapper_script
- def RemoteProcessFixIgnoreSIGHUP(self, name, remote_dir, popen_args, prepend_ldlibpath=None, **popen_kwargs):
+ def RemoteProcessFixIgnoreSIGHUP(self, name, remote_dir, popen_args, remote_env={}, **popen_kwargs):
# Run remotely through ssh. We need to run binary under a wrapper
# script since osmo-trx ignores SIGHUP and will keep running after
# we close local ssh session. The wrapper script catches SIGHUP and
@@ -83,15 +90,11 @@
remote_wrapper_script = remote_dir.child(RemoteHost.WRAPPER_SCRIPT)
self.scp('scp-wrapper-to-remote', wrapper_script, remote_wrapper_script)
- # Used fi to run stuff from an osmo-gsm-tester copied inst
- if prepend_ldlibpath is not None:
- args = ('LD_LIBRARY_PATH=%s' % prepend_ldlibpath, remote_wrapper_script,) + popen_args
- else:
- args = (remote_wrapper_script,) + popen_args
- return self.RemoteProcess(name, args, **popen_kwargs)
+ args = (remote_wrapper_script,) + popen_args
+ return self.RemoteProcess(name, args, remote_env, **popen_kwargs)
def run_remote_sync(self, name, popen_args):
- proc = self.RemoteProcess(name, popen_args)
+ proc = self.RemoteProcess(name, popen_args, remote_env=self.remote_env)
proc.launch_sync()
return proc