<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17702">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Make amarisoft license server optional<br><br>* Since license_server_addr logic is generic among all amarisoft<br>  software, let's move it to its own config category "amarisoft", which<br>  all amarisoft classes (amarisoft_{enb,epc}.py as of now) will import<br>  during configure().<br>* The license server is disabled by default (value 0.0.0.0) since the<br>  usual case is to have a license in the local system.<br>* the license server can be enabled using scenario<br>  cfg-amarisoft-license@A.B.C.D where A.B.C.D is the address to use.<br><br>Change-Id: Id5456ad9497e91370857b80ff9a389111d3611ff<br>---<br>M example/defaults.conf<br>A example/scenarios/cfg-amarisoft-license@.conf<br>M src/osmo_gsm_tester/amarisoft_enb.py<br>M src/osmo_gsm_tester/amarisoft_epc.py<br>M src/osmo_gsm_tester/enb.py<br>M src/osmo_gsm_tester/epc.py<br>M src/osmo_gsm_tester/resource.py<br>M src/osmo_gsm_tester/srs_enb.py<br>M src/osmo_gsm_tester/srs_epc.py<br>M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl<br>M src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl<br>11 files changed, 25 insertions(+), 13 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/02/17702/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/example/defaults.conf b/example/defaults.conf</span><br><span>index 56a41e5..aa1e1dc 100644</span><br><span>--- a/example/defaults.conf</span><br><span>+++ b/example/defaults.conf</span><br><span>@@ -101,8 +101,8 @@</span><br><span>   rlc_drb_mode: UM</span><br><span>   enable_pcap: false</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-amarisoftepc:</span><br><span style="color: hsl(0, 100%, 40%);">-  license_server_addr: 10.12.1.139</span><br><span style="color: hsl(120, 100%, 40%);">+amarisoft:</span><br><span style="color: hsl(120, 100%, 40%);">+  license_server_addr: 0.0.0.0</span><br><span> </span><br><span> enb:</span><br><span>   mcc: 901</span><br><span>@@ -115,7 +115,6 @@</span><br><span>   enable_pcap: false</span><br><span> </span><br><span> amarisoftenb:</span><br><span style="color: hsl(0, 100%, 40%);">-  license_server_addr: 10.12.1.139</span><br><span>   num_prb: 100</span><br><span>   enable_pcap: false</span><br><span> </span><br><span>diff --git a/example/scenarios/cfg-amarisoft-license@.conf b/example/scenarios/cfg-amarisoft-license@.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..3e4813b</span><br><span>--- /dev/null</span><br><span>+++ b/example/scenarios/cfg-amarisoft-license@.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+config:</span><br><span style="color: hsl(120, 100%, 40%);">+  amarisoft:</span><br><span style="color: hsl(120, 100%, 40%);">+    license_server_addr: ${param1}</span><br><span>diff --git a/src/osmo_gsm_tester/amarisoft_enb.py b/src/osmo_gsm_tester/amarisoft_enb.py</span><br><span>index 0890f90..79b90a7 100644</span><br><span>--- a/src/osmo_gsm_tester/amarisoft_enb.py</span><br><span>+++ b/src/osmo_gsm_tester/amarisoft_enb.py</span><br><span>@@ -159,7 +159,7 @@</span><br><span>             self.remote_config_drb_file = remote_run_dir.child(AmarisoftENB.CFGFILE_DRB)</span><br><span>             self.remote_log_file = remote_run_dir.child(AmarisoftENB.LOGFILE)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        values = super().configure('amarisoftenb')</span><br><span style="color: hsl(120, 100%, 40%);">+        values = super().configure(['amarisoft', 'amarisoftenb'])</span><br><span>         self._num_cells = int(values['enb'].get('num_cells', None))</span><br><span>         assert self._num_cells</span><br><span> </span><br><span>diff --git a/src/osmo_gsm_tester/amarisoft_epc.py b/src/osmo_gsm_tester/amarisoft_epc.py</span><br><span>index 0361f54..eb9be94 100644</span><br><span>--- a/src/osmo_gsm_tester/amarisoft_epc.py</span><br><span>+++ b/src/osmo_gsm_tester/amarisoft_epc.py</span><br><span>@@ -141,7 +141,7 @@</span><br><span>             self.remote_log_file = remote_run_dir.child(AmarisoftEPC.LOGFILE)</span><br><span>             self.remote_ifup_file = remote_run_dir.child(AmarisoftEPC.IFUPFILE)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        values = super().configure('amarisoftepc')</span><br><span style="color: hsl(120, 100%, 40%);">+        values = super().configure(['amarisoft', 'amarisoftepc'])</span><br><span> </span><br><span>         logfile = self.log_file if self._run_node.is_local() else self.remote_log_file</span><br><span>         ifupfile = self.ifup_file if self._run_node.is_local() else self.remote_ifup_file</span><br><span>diff --git a/src/osmo_gsm_tester/enb.py b/src/osmo_gsm_tester/enb.py</span><br><span>index 197ad25..d069f84 100644</span><br><span>--- a/src/osmo_gsm_tester/enb.py</span><br><span>+++ b/src/osmo_gsm_tester/enb.py</span><br><span>@@ -37,10 +37,13 @@</span><br><span>         self._num_prb = 0</span><br><span>         self._epc = None</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def configure(self, default_specifics):</span><br><span style="color: hsl(120, 100%, 40%);">+    def configure(self, config_specifics_li):</span><br><span>         values = dict(enb=config.get_defaults('enb'))</span><br><span style="color: hsl(0, 100%, 40%);">-        config.overlay(values, dict(enb=config.get_defaults(default_specifics)))</span><br><span style="color: hsl(120, 100%, 40%);">+        for config_specifics in config_specifics_li:</span><br><span style="color: hsl(120, 100%, 40%);">+            config.overlay(values, dict(enb=config.get_defaults(config_specifics)))</span><br><span>         config.overlay(values, dict(enb=self.suite_run.config().get('enb', {})))</span><br><span style="color: hsl(120, 100%, 40%);">+        for config_specifics in config_specifics_li:</span><br><span style="color: hsl(120, 100%, 40%);">+            config.overlay(values, dict(enb=self.suite_run.config().get(config_specifics, {})))</span><br><span>         config.overlay(values, dict(enb=self._conf))</span><br><span>         self._num_prb = int(values['enb'].get('num_prb', None))</span><br><span>         assert self._num_prb</span><br><span>diff --git a/src/osmo_gsm_tester/epc.py b/src/osmo_gsm_tester/epc.py</span><br><span>index da8302c..6aa17e7 100644</span><br><span>--- a/src/osmo_gsm_tester/epc.py</span><br><span>+++ b/src/osmo_gsm_tester/epc.py</span><br><span>@@ -33,10 +33,13 @@</span><br><span>         self.suite_run = suite_run</span><br><span>         self._run_node = run_node</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def configure(self, default_specifics):</span><br><span style="color: hsl(120, 100%, 40%);">+    def configure(self, config_specifics_li):</span><br><span>         values = dict(epc=config.get_defaults('epc'))</span><br><span style="color: hsl(0, 100%, 40%);">-        config.overlay(values, dict(epc=config.get_defaults(default_specifics)))</span><br><span style="color: hsl(120, 100%, 40%);">+        for config_specifics in config_specifics_li:</span><br><span style="color: hsl(120, 100%, 40%);">+            config.overlay(values, dict(epc=config.get_defaults(config_specifics)))</span><br><span>         config.overlay(values, dict(epc=self.suite_run.config().get('epc', {})))</span><br><span style="color: hsl(120, 100%, 40%);">+        for config_specifics in config_specifics_li:</span><br><span style="color: hsl(120, 100%, 40%);">+            config.overlay(values, dict(epc=self.suite_run.config().get(config_specifics, {})))</span><br><span>         config.overlay(values, dict(epc={'run_addr': self.addr()}))</span><br><span>         return values</span><br><span> </span><br><span>diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py</span><br><span>index 383f09e..a13fd2d 100644</span><br><span>--- a/src/osmo_gsm_tester/resource.py</span><br><span>+++ b/src/osmo_gsm_tester/resource.py</span><br><span>@@ -126,6 +126,7 @@</span><br><span>       'config.epc.rlc_drb_mode': schema.LTE_RLC_DRB_MODE,</span><br><span>       'config.epc.enable_pcap': schema.BOOL_STR,</span><br><span>       'config.modem.enable_pcap': schema.BOOL_STR,</span><br><span style="color: hsl(120, 100%, 40%);">+      'config.amarisoft.license_server_addr': schema.IPV4,</span><br><span>     },</span><br><span>     dict([('resources.%s' % key, val) for key, val in WANT_SCHEMA.items()]),</span><br><span>     dict([('modifiers.%s' % key, val) for key, val in WANT_SCHEMA.items()]))</span><br><span>diff --git a/src/osmo_gsm_tester/srs_enb.py b/src/osmo_gsm_tester/srs_enb.py</span><br><span>index 15c1e0c..6f47e75 100644</span><br><span>--- a/src/osmo_gsm_tester/srs_enb.py</span><br><span>+++ b/src/osmo_gsm_tester/srs_enb.py</span><br><span>@@ -187,7 +187,7 @@</span><br><span>             f.write(r)</span><br><span> </span><br><span>     def configure(self):</span><br><span style="color: hsl(0, 100%, 40%);">-        values = super().configure('srsenb')</span><br><span style="color: hsl(120, 100%, 40%);">+        values = super().configure(['srsenb'])</span><br><span> </span><br><span>         # Convert parsed boolean string to Python boolean:</span><br><span>         self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false'))</span><br><span>diff --git a/src/osmo_gsm_tester/srs_epc.py b/src/osmo_gsm_tester/srs_epc.py</span><br><span>index 708ca5b..b2d728a 100644</span><br><span>--- a/src/osmo_gsm_tester/srs_epc.py</span><br><span>+++ b/src/osmo_gsm_tester/srs_epc.py</span><br><span>@@ -158,7 +158,7 @@</span><br><span>         self.pcap_file = self.run_dir.child(srsEPC.PCAPFILE)</span><br><span>         self.dbg(config_file=self.config_file, db_file=self.db_file)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        values = super().configure('srsepc')</span><br><span style="color: hsl(120, 100%, 40%);">+        values = super().configure(['srsepc'])</span><br><span> </span><br><span>         # Convert parsed boolean string to Python boolean:</span><br><span>         self.enable_pcap = util.str2bool(values['epc'].get('enable_pcap', 'false'))</span><br><span>diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl</span><br><span>index 73b4fd2..fab1649 100644</span><br><span>--- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl</span><br><span>+++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl</span><br><span>@@ -3,11 +3,12 @@</span><br><span>  */</span><br><span> {</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+%if enb.license_server_addr != '0.0.0.0':</span><br><span>   license_server: {</span><br><span>     server_addr: "${enb.license_server_addr}",</span><br><span>     name: "amarisoft",</span><br><span>   },</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+%endif</span><br><span> </span><br><span>   /* Log filter: syntax: layer.field=value[,...]</span><br><span> </span><br><span>diff --git a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl</span><br><span>index a2af69a..54334f5 100644</span><br><span>--- a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl</span><br><span>+++ b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl</span><br><span>@@ -4,10 +4,12 @@</span><br><span>  */</span><br><span> {</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+%if epc.license_server_addr != '0.0.0.0':</span><br><span>   license_server: {</span><br><span style="color: hsl(0, 100%, 40%);">-    server_addr: "${epc.license_server_addr}",</span><br><span style="color: hsl(120, 100%, 40%);">+    server_addr: "${enb.license_server_addr}",</span><br><span>     name: "amarisoft",</span><br><span>   },</span><br><span style="color: hsl(120, 100%, 40%);">+%endif</span><br><span> </span><br><span>   /* Log filter: syntax: layer.field=value[,...]</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17702">change 17702</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/+/17702"/><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: Id5456ad9497e91370857b80ff9a389111d3611ff </div>
<div style="display:none"> Gerrit-Change-Number: 17702 </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>