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
diff --git a/selftest/process_test.py b/selftest/process_test.py
index 9ad082b..71523c9 100755
--- a/selftest/process_test.py
+++ b/selftest/process_test.py
@@ -38,7 +38,7 @@
 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 2c2bcac..d702148 100644
--- a/src/osmo_gsm_tester/bts_sysmo.py
+++ b/src/osmo_gsm_tester/bts_sysmo.py
@@ -40,6 +40,7 @@
         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 @@
             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 @@
 
     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 78814c0..16f7905 100644
--- a/src/osmo_gsm_tester/process.py
+++ b/src/osmo_gsm_tester/process.py
@@ -210,8 +210,9 @@
 
 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 @@
             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)