Change in osmo-gsm-tester[master]: Process: Add remote_port as new parameter

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

ninjab3s gerrit-no-reply at lists.osmocom.org
Mon Nov 23 15:00:54 UTC 2020


ninjab3s has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21300 )


Change subject: Process: Add remote_port as new parameter
......................................................................

Process: Add remote_port as new parameter

remote_port defines a custom/additional port for
connections over ssh. It may be used in case several
ssh instances are running on a single mashine.

Change-Id: I2c93fd2ea1c10c333d00eafd3c1066c35796e398
---
M src/osmo_gsm_tester/core/process.py
M src/osmo_gsm_tester/core/remote.py
M src/osmo_gsm_tester/obj/run_node.py
3 files changed, 19 insertions(+), 5 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/00/21300/1

diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py
index ffc42c1..122f62c 100644
--- a/src/osmo_gsm_tester/core/process.py
+++ b/src/osmo_gsm_tester/core/process.py
@@ -381,12 +381,14 @@
 
 class RemoteProcess(Process):
 
-    def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, popen_args, remote_env={}, **popen_kwargs):
+    def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, popen_args,
+                 remote_env={}, remote_port=None, **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
         self.remote_env = remote_env
+        self.remote_port = remote_port
 
         # hacky: instead of just prepending ssh, i.e. piping stdout and stderr
         # over the ssh link, we should probably run on the remote side,
@@ -402,6 +404,12 @@
                            '%s %s %s' % (cd,
                                          ' '.join(['%s=%r'%(k,v) for k,v in self.remote_env.items()]),
                                          ' '.join(self.popen_args))]
+
+        # If remote_port is set the command will be executed over ssh on the Android UE.
+        if self.remote_port:
+            self.popen_args.insert(1, '-p')
+            self.popen_args.insert(2, self.remote_port)
+
         self.dbg(self.popen_args, dir=self.run_dir, conf=self.popen_kwargs, remote_env=self.remote_env)
 
     def RunError(self, msg_prefix):
diff --git a/src/osmo_gsm_tester/core/remote.py b/src/osmo_gsm_tester/core/remote.py
index 8deb25d..6848f29 100644
--- a/src/osmo_gsm_tester/core/remote.py
+++ b/src/osmo_gsm_tester/core/remote.py
@@ -51,9 +51,10 @@
     def get_remote_env(self):
         return self.remote_env
 
-    def RemoteProcess(self, name, popen_args, remote_env={}, **popen_kwargs):
+    def RemoteProcess(self, name, popen_args, remote_env={}, remote_port=None, **popen_kwargs):
         run_dir = self.run_dir.new_dir(name)
-        return process.RemoteProcess(name, run_dir, self.user(), self.host(), self.cwd(), popen_args, remote_env=remote_env, **popen_kwargs)
+        return process.RemoteProcess(name, run_dir, self.user(), self.host(), self.cwd(), popen_args,
+                                     remote_env=remote_env, remote_port=remote_port, **popen_kwargs)
 
     def generate_wrapper_script(self, wait_time_sec):
         wrapper_script = self.run_dir.new_file(RemoteHost.WRAPPER_SCRIPT)
diff --git a/src/osmo_gsm_tester/obj/run_node.py b/src/osmo_gsm_tester/obj/run_node.py
index 6a030ac..d3ee398 100644
--- a/src/osmo_gsm_tester/obj/run_node.py
+++ b/src/osmo_gsm_tester/obj/run_node.py
@@ -30,13 +30,14 @@
     T_LOCAL = 'local'
     T_REM_SSH = 'ssh'
 
-    def __init__(self, type=None, run_addr=None, ssh_user=None, ssh_addr=None, run_label=None):
+    def __init__(self, type=None, run_addr=None, ssh_user=None, ssh_addr=None, run_label=None, remote_port=None):
         super().__init__(log.C_RUN, 'runnode')
         self._type = type
         self._run_addr = run_addr
         self._ssh_user = ssh_user
         self._ssh_addr = ssh_addr
         self._run_label = run_label
+        self._remote_port = remote_port
         if not self._type:
             raise log.Error('run_type not set')
         if not self._run_addr:
@@ -55,7 +56,7 @@
     def from_conf(cls, conf):
         return cls(conf.get('run_type', None), conf.get('run_addr', None),
                    conf.get('ssh_user', None), conf.get('ssh_addr', None),
-                   conf.get('run_label', None))
+                   conf.get('run_label', None), conf.get('remote_port', None))
 
     @classmethod
     def schema(cls):
@@ -65,6 +66,7 @@
             'ssh_user': schema.STR,
             'ssh_addr': schema.IPV4,
             'run_label': schema.STR,
+            'remote_port': schema.STR,
             }
         return resource_schema
 
@@ -89,4 +91,7 @@
     def run_label(self):
         return self._run_label
 
+    def remote_port(self):
+        return self._remote_port
+
 # vim: expandtab tabstop=4 shiftwidth=4

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21300
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Change-Id: I2c93fd2ea1c10c333d00eafd3c1066c35796e398
Gerrit-Change-Number: 21300
Gerrit-PatchSet: 1
Gerrit-Owner: ninjab3s <nils.fuerste at softwareradiosystems.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201123/504f5df2/attachment.htm>


More information about the gerrit-log mailing list