From 3895fec34bca8addd0ce049614bf2f8305225559 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 28 Apr 2017 16:13:03 +0200 Subject: [PATCH] Add remote user for RemoteProcress Use it to set root user for SysmoBTS, otherwise if osmo-gsm-tester is run by another user it will fail to connect Change-Id: I67d4126fc75cb9c2d249c713cd6f14db1f1e21da --- selftest/process_test.py | 2 +- src/osmo_gsm_tester/bts_sysmo.py | 7 ++++--- src/osmo_gsm_tester/process.py | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/selftest/process_test.py b/selftest/process_test.py index 9ad082b9..71523c9d 100755 --- a/selftest/process_test.py +++ b/selftest/process_test.py @@ -38,7 +38,7 @@ test_ssh = True test_ssh = False if test_ssh: # this part of the test requires ability to ssh to localhost - p = process.RemoteProcess('localhost', '/tmp', 'ssh-test', tmpdir, + p = process.RemoteProcess('ssh-test', '/tmp', os.getenv('USER'), 'localhost', tmpdir, ('ls', '-al')) p.launch() p.wait() diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py index 2c2bcac4..d7021487 100644 --- a/src/osmo_gsm_tester/bts_sysmo.py +++ b/src/osmo_gsm_tester/bts_sysmo.py @@ -40,6 +40,7 @@ class SysmoBts(log.Origin): self.set_name('osmo-bts-sysmo') self.set_log_category(log.C_RUN) self.remote_env = {} + self.remote_user = 'root' def start(self): with self: @@ -62,14 +63,14 @@ class SysmoBts(log.Origin): self.run_remote('rm-remote-dir', ('test', '!', '-d', SysmoBts.REMOTE_DIR, '||', 'rm', '-rf', SysmoBts.REMOTE_DIR)) self.run_remote('mk-remote-dir', ('mkdir', '-p', SysmoBts.REMOTE_DIR)) self.run_local('scp-inst-to-sysmobts', - ('scp', '-r', str(self.inst), '%s:%s' % (self.remote_addr, str(self.remote_inst)))) + ('scp', '-r', str(self.inst), '%s@%s:%s' % (self.remote_user, self.remote_addr, str(self.remote_inst)))) remote_run_dir = self.remote_dir.child(SysmoBts.BTS_SYSMO_BIN) self.run_remote('mk-remote-run-dir', ('mkdir', '-p', remote_run_dir)) remote_config_file = self.remote_dir.child(SysmoBts.BTS_SYSMO_CFG) self.run_local('scp-cfg-to-sysmobts', - ('scp', '-r', self.config_file, '%s:%s' % (self.remote_addr, remote_config_file))) + ('scp', '-r', self.config_file, '%s@%s:%s' % (self.remote_user, self.remote_addr, remote_config_file))) self.run_local('reload-dsp-firmware', ('ssh', self.remote_addr, '/bin/sh', '-c', '"cat /lib/firmware/sysmobts-v?.bit > /dev/fpgadl_par0 ; cat /lib/firmware/sysmobts-v?.out > /dev/dspdl_dm644x_0"')) @@ -82,7 +83,7 @@ class SysmoBts(log.Origin): def _process_remote(self, name, popen_args, remote_cwd=None): run_dir = self.run_dir.new_dir(name) - return process.RemoteProcess(name, run_dir, self.remote_addr, remote_cwd, + return process.RemoteProcess(name, run_dir, self.remote_user, self.remote_addr, remote_cwd, popen_args) def run_remote(self, name, popen_args, remote_cwd=None): diff --git a/src/osmo_gsm_tester/process.py b/src/osmo_gsm_tester/process.py index 78814c06..16f7905e 100644 --- a/src/osmo_gsm_tester/process.py +++ b/src/osmo_gsm_tester/process.py @@ -210,8 +210,9 @@ class Process(log.Origin): class RemoteProcess(Process): - def __init__(self, name, run_dir, remote_host, remote_cwd, popen_args, **popen_kwargs): + def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, popen_args, **popen_kwargs): super().__init__(name, run_dir, popen_args, **popen_kwargs) + self.remote_user = remote_user self.remote_host = remote_host self.remote_cwd = remote_cwd @@ -222,7 +223,7 @@ class RemoteProcess(Process): cd = 'cd "%s"; ' % self.remote_cwd else: cd = '' - self.popen_args = ['ssh', self.remote_host, + self.popen_args = ['ssh', self.remote_user+'@'+self.remote_host, '%s%s' % (cd, ' '.join(self.popen_args))] self.dbg(self.popen_args, dir=self.run_dir, conf=self.popen_kwargs)