Change in osmo-gsm-tester[master]: WIP

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
Thu Jun 4 15:39:14 UTC 2020


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


Change subject: WIP
......................................................................

WIP

Change-Id: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309
---
A selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl
A selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl
D selftest/template_test/osmo-nitb.cfg.tmpl
M selftest/template_test/template_test.ok
M selftest/template_test/template_test.py
M src/osmo_gsm_tester/core/template.py
6 files changed, 214 insertions(+), 85 deletions(-)



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

diff --git a/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl b/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl
new file mode 100644
index 0000000..efafbca
--- /dev/null
+++ b/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl
@@ -0,0 +1 @@
+test-overlay-works-fine-only-available ${one.two.works}
diff --git a/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl b/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl
new file mode 100644
index 0000000..5c9400b
--- /dev/null
+++ b/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl
@@ -0,0 +1 @@
+test-overlay-works-fine ${foo.bar.works}
diff --git a/selftest/template_test/osmo-nitb.cfg.tmpl b/selftest/template_test/osmo-nitb.cfg.tmpl
deleted file mode 100644
index c0a5c46..0000000
--- a/selftest/template_test/osmo-nitb.cfg.tmpl
+++ /dev/null
@@ -1,82 +0,0 @@
-!
-! OpenBSC configuration saved from vty
-!
-password foo
-!
-log stderr
- logging filter all 1
- logging color 0
- logging print category 0
- logging print extended-timestamp 1
- logging level set-all debug
-!
-line vty
- no login
- bind ${vty_bind_ip}
-!
-e1_input
- e1_line 0 driver ipa
- ipa bind ${abis_bind_ip}
-network
- network country code ${mcc}
- mobile network code ${mnc}
- short name ${net_name_short}
- long name ${net_name_long}
- auth policy ${net_auth_policy}
- location updating reject cause 13
- encryption ${encryption}
- neci 1
- rrlp mode none
- mm info 1
- handover 0
- handover window rxlev averaging 10
- handover window rxqual averaging 1
- handover window rxlev neighbor averaging 10
- handover power budget interval 6
- handover power budget hysteresis 3
- handover maximum distance 9999
-smpp
- local-tcp-ip ${nitb.ip_address.addr} 2775
- system-id test-nitb
- policy ${smsc.policy}
- %for esme in esme_list:
-  esme ${esme.system_id}
- % if esme.password == '':
-   no password
- % else:
-   password ${esme.password}
- % endif
-   default-route
- %endfor
-ctrl
- bind ${ctrl_bind_ip}
-%for bts in bts_list:
- bts ${loop.index}
-  type ${bts.type}
-  band ${bts.band}
-  cell_identity ${bts.cell_identity}
-  location_area_code ${bts.location_area_code}
-  training_sequence_code 7
-  base_station_id_code ${bts.base_station_id_code}
-  ms max power 15
-  cell reselection hysteresis 4
-  rxlev access min 0
-  channel allocator ascending
-  rach tx integer 9
-  rach max transmission 7
-  ip.access unit_id ${bts.unit_id} 0
-  oml ip.access stream_id ${bts.stream_id} line 0
-  gprs mode none
-% for trx in bts.trx_list:
-  trx ${loop.index}
-   rf_locked 0
-   arfcn ${trx.arfcn}
-   nominal power 23
-   max_power_red ${trx.max_power_red}
-   rsl e1 tei 0
-%  for ts in trx.timeslot_list:
-   timeslot ${loop.index}
-    phys_chan_config ${ts.phys_chan_config}
-%  endfor
-% endfor
-%endfor
diff --git a/selftest/template_test/template_test.ok b/selftest/template_test/template_test.ok
index 88b77b0..718ef6e 100644
--- a/selftest/template_test/template_test.ok
+++ b/selftest/template_test/template_test.ok
@@ -191,3 +191,201 @@
 - Testing: expect to fail on invalid templates dir
 sucess: setting non-existing templates dir raised RuntimeError
 
+- Testing: template directory overlay (still can find default one?)
+cnf Templates: DBG: rendering osmo-nitb.cfg.tmpl
+! Configuration rendered by osmo-gsm-tester
+password foo
+!
+log stderr
+ logging filter all 1
+ logging color 1
+ logging print category 1
+ logging print extended-timestamp 1
+ logging level set-all debug
+!
+line vty
+ no login
+ bind val_ip_address
+!
+e1_input
+ e1_line 0 driver ipa
+ ipa bind val_ip_address
+network
+ network country code val_mcc
+ mobile network code val_mnc
+ short name val_short_name
+ long name val_long_name
+ auth policy val_auth_policy
+ location updating reject cause 13
+ encryption val_encryption
+ neci 1
+ rrlp mode none
+ mm info 1
+ handover 0
+ handover window rxlev averaging 10
+ handover window rxqual averaging 1
+ handover window rxlev neighbor averaging 10
+ handover power budget interval 6
+ handover power budget hysteresis 3
+ handover maximum distance 9999
+ bts 0
+  type val_type_bts0
+  band val_band_bts0
+  cell_identity val_bts.cell_identity_bts0
+  location_area_code val_bts.location_area_code_bts0
+  training_sequence_code 7
+  base_station_id_code val_bts.base_station_id_code_bts0
+  ms max power 33
+  cell reselection hysteresis 4
+  rxlev access min 0
+  channel allocator ascending
+  rach tx integer 9
+  rach max transmission 7
+  ip.access unit_id val_bts.unit_id_bts0 0
+  oml ip.access stream_id val_bts.stream_id_bts0 line 0
+  gprs mode gprs
+  gprs routing area val_bts.routing_area_code_bts0
+  gprs network-control-order nc1
+  gprs cell bvci val_bts.bvci_bts0
+  gprs cell timer blocking-timer 3
+  gprs cell timer blocking-retries 3
+  gprs cell timer unblocking-retries 3
+  gprs cell timer reset-timer 3
+  gprs cell timer reset-retries 3
+  gprs cell timer suspend-timer 10
+  gprs cell timer suspend-retries 3
+  gprs cell timer resume-timer 10
+  gprs cell timer resume-retries 3
+  gprs cell timer capability-update-timer 10
+  gprs cell timer capability-update-retries 3
+  gprs nsei val_bts.bvci_bts0
+  gprs ns timer tns-block 3
+  gprs ns timer tns-block-retries 3
+  gprs ns timer tns-reset 3
+  gprs ns timer tns-reset-retries 3
+  gprs ns timer tns-test 30
+  gprs ns timer tns-alive 3
+  gprs ns timer tns-alive-retries 10
+  gprs nsvc 0 nsvci val_bts.bvci_bts0
+  gprs nsvc 0 local udp port 23020
+  gprs nsvc 0 remote udp port 23000
+  gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts0
+  trx 0
+   rf_locked 0
+   arfcn val_trx_arfcn_trx0
+   nominal power val_trx_nominal_power_trx0
+   max_power_red val_trx_max_power_red_trx0
+   rsl e1 tei 0
+   timeslot 0
+    phys_chan_config val_phys_chan_config_0
+   timeslot 1
+    phys_chan_config val_phys_chan_config_1
+   timeslot 2
+    phys_chan_config val_phys_chan_config_2
+   timeslot 3
+    phys_chan_config val_phys_chan_config_3
+  trx 1
+   rf_locked 0
+   arfcn val_trx_arfcn_trx1
+   nominal power val_trx_nominal_power_trx1
+   max_power_red val_trx_max_power_red_trx1
+   rsl e1 tei 0
+   timeslot 0
+    phys_chan_config val_phys_chan_config_0
+   timeslot 1
+    phys_chan_config val_phys_chan_config_1
+   timeslot 2
+    phys_chan_config val_phys_chan_config_2
+   timeslot 3
+    phys_chan_config val_phys_chan_config_3
+ bts 1
+  type val_type_bts1
+  band val_band_bts1
+  cell_identity val_bts.cell_identity_bts1
+  location_area_code val_bts.location_area_code_bts1
+  training_sequence_code 7
+  base_station_id_code val_bts.base_station_id_code_bts1
+  ms max power 33
+  cell reselection hysteresis 4
+  rxlev access min 0
+  channel allocator ascending
+  rach tx integer 9
+  rach max transmission 7
+  ip.access unit_id val_bts.unit_id_bts1 0
+  oml ip.access stream_id val_bts.stream_id_bts1 line 0
+  gprs mode gprs
+  gprs routing area val_bts.routing_area_code_bts1
+  gprs network-control-order nc1
+  gprs cell bvci val_bts.bvci_bts1
+  gprs cell timer blocking-timer 3
+  gprs cell timer blocking-retries 3
+  gprs cell timer unblocking-retries 3
+  gprs cell timer reset-timer 3
+  gprs cell timer reset-retries 3
+  gprs cell timer suspend-timer 10
+  gprs cell timer suspend-retries 3
+  gprs cell timer resume-timer 10
+  gprs cell timer resume-retries 3
+  gprs cell timer capability-update-timer 10
+  gprs cell timer capability-update-retries 3
+  gprs nsei val_bts.bvci_bts1
+  gprs ns timer tns-block 3
+  gprs ns timer tns-block-retries 3
+  gprs ns timer tns-reset 3
+  gprs ns timer tns-reset-retries 3
+  gprs ns timer tns-test 30
+  gprs ns timer tns-alive 3
+  gprs ns timer tns-alive-retries 10
+  gprs nsvc 0 nsvci val_bts.bvci_bts1
+  gprs nsvc 0 local udp port 23020
+  gprs nsvc 0 remote udp port 23000
+  gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts1
+  trx 0
+   rf_locked 0
+   arfcn val_trx_arfcn_trx0
+   nominal power val_trx_nominal_power_trx0
+   max_power_red val_trx_max_power_red_trx0
+   rsl e1 tei 0
+   timeslot 0
+    phys_chan_config val_phys_chan_config_0
+   timeslot 1
+    phys_chan_config val_phys_chan_config_1
+   timeslot 2
+    phys_chan_config val_phys_chan_config_2
+   timeslot 3
+    phys_chan_config val_phys_chan_config_3
+  trx 1
+   rf_locked 0
+   arfcn val_trx_arfcn_trx1
+   nominal power val_trx_nominal_power_trx1
+   max_power_red val_trx_max_power_red_trx1
+   rsl e1 tei 0
+   timeslot 0
+    phys_chan_config val_phys_chan_config_0
+   timeslot 1
+    phys_chan_config val_phys_chan_config_1
+   timeslot 2
+    phys_chan_config val_phys_chan_config_2
+   timeslot 3
+    phys_chan_config val_phys_chan_config_3
+smpp
+ local-tcp-ip val_ip_address 2775
+ system-id test-nitb
+ policy val_smsc_policy
+ esme val_system_id_esme0
+  password val_password_esme0
+  default-route
+ esme val_system_id_esme1
+  no password
+  default-route
+ctrl
+ bind val_ip_address
+
+- Testing: template directory overlay (present in both dirs)
+cnf Templates: DBG: rendering osmo-bsc.cfg.tmpl
+test-overlay-works-fine yes
+
+- Testing: template directory overlay (present only on overlay dir)
+cnf Templates: DBG: rendering mytemplate.cfg.tmpl
+test-overlay-works-fine-only-available yes
+
diff --git a/selftest/template_test/template_test.py b/selftest/template_test/template_test.py
index 747d508..52976e5 100755
--- a/selftest/template_test/template_test.py
+++ b/selftest/template_test/template_test.py
@@ -92,4 +92,13 @@
     print('sucess: setting non-existing templates dir raised RuntimeError\n')
     pass
 
+mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir')
+template.set_templates_dir(mytemplatedir, template.default_templates_dir())
+print('- Testing: template directory overlay (still can find default one?)')
+print(template.render('osmo-nitb.cfg', vals))
+print('- Testing: template directory overlay (present in both dirs)')
+print(template.render('osmo-bsc.cfg', dict(foo=dict(bar=dict(works='yes')))))
+print('- Testing: template directory overlay (present only on overlay dir)')
+print(template.render('mytemplate.cfg', dict(one=dict(two=dict(works='yes')))))
+
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/src/osmo_gsm_tester/core/template.py b/src/osmo_gsm_tester/core/template.py
index 2bf4fed..82985ef 100644
--- a/src/osmo_gsm_tester/core/template.py
+++ b/src/osmo_gsm_tester/core/template.py
@@ -27,12 +27,14 @@
 _lookup = None
 _logger = log.Origin(log.C_CNF, 'no templates dir set')
 
+def default_templates_dir():
+    return os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates')
+
 def set_templates_dir(*templates_dirs):
     global _lookup
     global _logger
     if not templates_dirs:
-        # default templates dir is relative to this source file
-        templates_dirs = [os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates')]
+            raise RuntimeError('templates dir list is empty!')
     for d in templates_dirs:
         if not os.path.isdir(d):
             raise RuntimeError('templates dir is not a dir: %r'
@@ -45,7 +47,7 @@
        ".tmpl" is added to the name to look it up in the templates dir.'''
     global _lookup
     if _lookup is None:
-        set_templates_dir()
+        set_templates_dir(default_templates_dir())
     tmpl_name = name + '.tmpl'
     log.ctx(tmpl_name)
     template = _lookup.get_template(tmpl_name)

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661
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: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309
Gerrit-Change-Number: 18661
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/20200604/a5f04a67/attachment.htm>


More information about the gerrit-log mailing list