<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/20688">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Copy gnuradio zmq broker at runtime<br><br>The remotely run script is moved into a new subdir called "external",<br>where external utils to be used by osmo-gsm-tester (exernal to its own<br>process) are placed.<br>It needs to be in another directory because python files in obj/ are<br>loaded at startup of osmo-gsm-tester to dynamically load schemas.<br><br>Change-Id: I633a85294694f2c6efd58535729e9b8af166b3ff<br>---<br>M src/osmo_gsm_tester/core/util.py<br>R src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py<br>M src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py<br>3 files changed, 27 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/88/20688/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo_gsm_tester/core/util.py b/src/osmo_gsm_tester/core/util.py</span><br><span>index 4c7b1dd..e035a72 100644</span><br><span>--- a/src/osmo_gsm_tester/core/util.py</span><br><span>+++ b/src/osmo_gsm_tester/core/util.py</span><br><span>@@ -441,4 +441,9 @@</span><br><span>     assert val[:3] == 'a5_'</span><br><span>     return 'a5 ' + val[3:]</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# Return abs path to external dir, where utils to run out of the process are placed</span><br><span style="color: hsl(120, 100%, 40%);">+def external_dir():</span><br><span style="color: hsl(120, 100%, 40%);">+    # ../external/</span><br><span style="color: hsl(120, 100%, 40%);">+    return os.path.abspath(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'external'))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # vim: expandtab tabstop=4 shiftwidth=4</span><br><span>diff --git a/utils/bin/osmo-gsm-tester_zmq_broker.py b/src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py</span><br><span>similarity index 97%</span><br><span>rename from utils/bin/osmo-gsm-tester_zmq_broker.py</span><br><span>rename to src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py</span><br><span>index 3681e7e..fa69efd 100755</span><br><span>--- a/utils/bin/osmo-gsm-tester_zmq_broker.py</span><br><span>+++ b/src/osmo_gsm_tester/external/gnuradio_zmq_broker_remote.py</span><br><span>@@ -1,5 +1,8 @@</span><br><span> #!/usr/bin/env python2</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# This is script is aimed at being copied to some remote target host where it</span><br><span style="color: hsl(120, 100%, 40%);">+# will be run by osmo-gsm-tester through ssh</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> from distutils.version import StrictVersion</span><br><span> </span><br><span> from gnuradio.fft import window</span><br><span>diff --git a/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py b/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py</span><br><span>index ba43794..76fb1e5 100644</span><br><span>--- a/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py</span><br><span>+++ b/src/osmo_gsm_tester/obj/gnuradio_zmq_broker.py</span><br><span>@@ -19,6 +19,7 @@</span><br><span> </span><br><span> import json</span><br><span> import socket</span><br><span style="color: hsl(120, 100%, 40%);">+import os</span><br><span> </span><br><span> from ..core import log</span><br><span> from ..core import util</span><br><span>@@ -32,12 +33,18 @@</span><br><span>     refcount = 0</span><br><span>     instance = None</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    REMOTE_DIR = '/osmo-gsm-tester-grbroker'</span><br><span style="color: hsl(120, 100%, 40%);">+    TGT_SCRIPT_NAME = 'gnuradio_zmq_broker_remote.py' # File located in same directory as thine one</span><br><span style="color: hsl(120, 100%, 40%);">+    TGT_SCRIPT_LOCAL_PATH = os.path.join(util.external_dir(), TGT_SCRIPT_NAME)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     def __init__(self):</span><br><span>         super().__init__(log.C_RUN, 'gr_zmq_broker')</span><br><span>         self.process = None</span><br><span>         self.ctrl_port = 5005</span><br><span>         self.run_dir = None</span><br><span>         self.rem_host = None</span><br><span style="color: hsl(120, 100%, 40%);">+        self.remote_run_dir = None</span><br><span style="color: hsl(120, 100%, 40%);">+        self.remote_tgt_script = None</span><br><span>         self.enb_li = []</span><br><span>         self.addr = None</span><br><span>         self.ctrl_sk = None</span><br><span>@@ -116,19 +123,27 @@</span><br><span>         self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))</span><br><span>         if not self.enb_li[0]._run_node.is_local():</span><br><span>             self.rem_host = remote.RemoteHost(self.run_dir, self.enb_li[0]._run_node.ssh_user(), self.enb_li[0]._run_node.ssh_addr())</span><br><span style="color: hsl(120, 100%, 40%);">+            remote_prefix_dir = util.Dir(GrBroker.REMOTE_DIR)</span><br><span style="color: hsl(120, 100%, 40%);">+            self.remote_run_dir = util.Dir(remote_prefix_dir.child(self.name()))</span><br><span style="color: hsl(120, 100%, 40%);">+            self.remote_tgt_script = os.path.join(str(self.remote_run_dir), GrBroker.TGT_SCRIPT_NAME)</span><br><span style="color: hsl(120, 100%, 40%);">+            self.rem_host.recreate_remote_dir(self.remote_run_dir)</span><br><span style="color: hsl(120, 100%, 40%);">+            self.rem_host.scp('scp-grboker-to-remote', GrBroker.TGT_SCRIPT_LOCAL_PATH, self.remote_tgt_script)</span><br><span> </span><br><span>     def start(self):</span><br><span>         self.num_enb_started += 1</span><br><span>         self.dbg('start(%d/%d)' % (self.num_enb_started, len(self.enb_li)))</span><br><span>         if self.num_enb_started == 1:</span><br><span>             self.configure()</span><br><span style="color: hsl(0, 100%, 40%);">-            args = ('osmo-gsm-tester_zmq_broker.py',</span><br><span style="color: hsl(0, 100%, 40%);">-                    '-c', str(self.ctrl_port),</span><br><span style="color: hsl(0, 100%, 40%);">-                    '-b', self.addr)</span><br><span>             if self.enb_li[0]._run_node.is_local():</span><br><span style="color: hsl(120, 100%, 40%);">+                args = (GrBroker.TGT_SCRIPT_LOCAL_PATH,</span><br><span style="color: hsl(120, 100%, 40%);">+                        '-c', str(self.ctrl_port),</span><br><span style="color: hsl(120, 100%, 40%);">+                        '-b', self.addr)</span><br><span>                 self.process = process.Process(self.name(), self.run_dir, args)</span><br><span>             else:</span><br><span style="color: hsl(0, 100%, 40%);">-                self.process = self.rem_host.RemoteProcessSafeExit('zmq_gr_broker', util.Dir('/tmp/ogt_%s' % self.name()), args, wait_time_sec=7)</span><br><span style="color: hsl(120, 100%, 40%);">+                args = (self.remote_tgt_script,</span><br><span style="color: hsl(120, 100%, 40%);">+                        '-c', str(self.ctrl_port),</span><br><span style="color: hsl(120, 100%, 40%);">+                        '-b', self.addr)</span><br><span style="color: hsl(120, 100%, 40%);">+                self.process = self.rem_host.RemoteProcessSafeExit(self.name(), self.remote_run_dir, args, wait_time_sec=7)</span><br><span>             self.testenv.remember_to_stop(self.process)</span><br><span>             self.process.launch()</span><br><span>         # Wait until all ENBs are configured/started:</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/20688">change 20688</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/20688"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I633a85294694f2c6efd58535729e9b8af166b3ff </div>
<div style="display:none"> Gerrit-Change-Number: 20688 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>