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
This commit is contained in:
Pau Espin 2017-04-28 16:13:03 +02:00 committed by Neels Hofmeyr
parent c9506b8b62
commit 3895fec34b
3 changed files with 8 additions and 6 deletions

View File

@ -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()

View File

@ -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):

View File

@ -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)