Change in osmo-gsm-tester[master]: Copy gnuradio zmq broker at runtime

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/.

pespin gerrit-no-reply at lists.osmocom.org
Fri Oct 16 17:31:42 UTC 2020


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


Change subject: Copy gnuradio zmq broker at runtime
......................................................................

Copy gnuradio zmq broker at runtime

The remotely run script is moved into a new subdir called "external",
where external utils to be used by osmo-gsm-tester (exernal to its own
process) are placed.
It needs to be in another directory because python files in obj/ are
loaded at startup of osmo-gsm-tester to dynamically load schemas.

Change-Id: I633a85294694f2c6efd58535729e9b8af166b3ff
---
M src/osmo_gsm_tester/core/util.py
R src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py
M src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py
3 files changed, 27 insertions(+), 4 deletions(-)



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

diff --git a/src/osmo_gsm_tester/core/util.py b/src/osmo_gsm_tester/core/util.py
index 4c7b1dd..e035a72 100644
--- a/src/osmo_gsm_tester/core/util.py
+++ b/src/osmo_gsm_tester/core/util.py
@@ -441,4 +441,9 @@
     assert val[:3] == 'a5_'
     return 'a5 ' + val[3:]
 
+# Return abs path to external dir, where utils to run out of the process are placed
+def external_dir():
+    # ../external/
+    return os.path.abspath(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'external'))
+
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/utils/bin/osmo-gsm-tester_zmq_broker.py b/src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py
similarity index 97%
rename from utils/bin/osmo-gsm-tester_zmq_broker.py
rename to src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py
index 3681e7e..fa69efd 100755
--- a/utils/bin/osmo-gsm-tester_zmq_broker.py
+++ b/src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python2
 
+# This is script is aimed at being copied to some remote target host where it
+# will be run by osmo-gsm-tester through ssh
+
 from distutils.version import StrictVersion
 
 from gnuradio.fft import window
diff --git a/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py b/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py
index ba43794..76fb1e5 100644
--- a/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py
+++ b/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py
@@ -19,6 +19,7 @@
 
 import json
 import socket
+import os
 
 from ..core import log
 from ..core import util
@@ -32,12 +33,18 @@
     refcount = 0
     instance = None
 
+    REMOTE_DIR = '/osmo-gsm-tester-grbroker'
+    TGT_SCRIPT_NAME = 'gnuradio_zmq_broker_remote.py' # File located in same directory as thine one
+    TGT_SCRIPT_LOCAL_PATH = os.path.join(util.external_dir(), TGT_SCRIPT_NAME)
+
     def __init__(self):
         super().__init__(log.C_RUN, 'gr_zmq_broker')
         self.process = None
         self.ctrl_port = 5005
         self.run_dir = None
         self.rem_host = None
+        self.remote_run_dir = None
+        self.remote_tgt_script = None
         self.enb_li = []
         self.addr = None
         self.ctrl_sk = None
@@ -116,19 +123,27 @@
         self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))
         if not self.enb_li[0]._run_node.is_local():
             self.rem_host = remote.RemoteHost(self.run_dir, self.enb_li[0]._run_node.ssh_user(), self.enb_li[0]._run_node.ssh_addr())
+            remote_prefix_dir = util.Dir(GrBroker.REMOTE_DIR)
+            self.remote_run_dir = util.Dir(remote_prefix_dir.child(self.name()))
+            self.remote_tgt_script = os.path.join(str(self.remote_run_dir), GrBroker.TGT_SCRIPT_NAME)
+            self.rem_host.recreate_remote_dir(self.remote_run_dir)
+            self.rem_host.scp('scp-grboker-to-remote', GrBroker.TGT_SCRIPT_LOCAL_PATH, self.remote_tgt_script)
 
     def start(self):
         self.num_enb_started += 1
         self.dbg('start(%d/%d)' % (self.num_enb_started, len(self.enb_li)))
         if self.num_enb_started == 1:
             self.configure()
-            args = ('osmo-gsm-tester_zmq_broker.py',
-                    '-c', str(self.ctrl_port),
-                    '-b', self.addr)
             if self.enb_li[0]._run_node.is_local():
+                args = (GrBroker.TGT_SCRIPT_LOCAL_PATH,
+                        '-c', str(self.ctrl_port),
+                        '-b', self.addr)
                 self.process = process.Process(self.name(), self.run_dir, args)
             else:
-                self.process = self.rem_host.RemoteProcessSafeExit('zmq_gr_broker', util.Dir('/tmp/ogt_%s' % self.name()), args, wait_time_sec=7)
+                args = (self.remote_tgt_script,
+                        '-c', str(self.ctrl_port),
+                        '-b', self.addr)
+                self.process = self.rem_host.RemoteProcessSafeExit(self.name(), self.remote_run_dir, args, wait_time_sec=7)
             self.testenv.remember_to_stop(self.process)
             self.process.launch()
         # Wait until all ENBs are configured/started:

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/20688
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: I633a85294694f2c6efd58535729e9b8af166b3ff
Gerrit-Change-Number: 20688
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201016/8cd22c67/attachment.htm>


More information about the gerrit-log mailing list