selftest: template: Test existing overlay dir features
Change-Id: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309
This commit is contained in:
parent
315ba57651
commit
4ddcdaf62c
|
@ -0,0 +1 @@
|
|||
test-overlay-works-fine-only-available ${one.two.works}
|
|
@ -0,0 +1 @@
|
|||
test-overlay-works-fine ${foo.bar.works}
|
|
@ -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
|
|
@ -191,3 +191,201 @@ ctrl
|
|||
- 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
|
||||
|
||||
|
|
|
@ -92,4 +92,13 @@ except RuntimeError:
|
|||
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
|
||||
|
|
|
@ -27,12 +27,14 @@ from .util import dict2obj
|
|||
_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 @@ def render(name, values):
|
|||
".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)
|
||||
|
|
Loading…
Reference in New Issue