Commit b0c37a4a authored by Kirill Smelkov's avatar Kirill Smelkov

software/ors-amarisoft: Start to generalize existing lopcomm/multicell into multiRU slowly

Lopcomm part of the SR already has some partial support for cell_list: if
multiple cells are defined there enb.cfg will have multiple CPRI radio units
and multiple cells configured. But so far all promises, except cpri-link, were
done only for one RU.

-> Fix that by starting to generalize RUlib code to handle multiple radio
units, invoking model-specific RU driver for each RU, and adjusting ru/lopcomm
instance code to correctly generate and activate different promises for
different radio units.

After the patch multiRU support is still very incomplete, but it is a step forward.

/cc @xavier_thompson, @Daetalus
/reviewed-by @lu.xu
/partly-reviewed-by @jhuge
/reviewed-at nexedi/slapos!1467
parent 4ba9cae1
Pipeline #31257 canceled with stage
...@@ -28,19 +28,19 @@ md5sum = ab666fdfadbfc7d8a16ace38d295c883 ...@@ -28,19 +28,19 @@ md5sum = ab666fdfadbfc7d8a16ace38d295c883
[ru_libinstance.jinja2.cfg] [ru_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/libinstance.jinja2.cfg _update_hash_filename_ = ru/libinstance.jinja2.cfg
md5sum = ef4b9c9ccbb4627c0d74293802e83d57 md5sum = 09cc6f04c43ef3a00519f585716343d9
[ru_sdr_libinstance.jinja2.cfg] [ru_sdr_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/sdr/libinstance.jinja2.cfg _update_hash_filename_ = ru/sdr/libinstance.jinja2.cfg
md5sum = 4be142fcd890e0f1c9573c8e724062fb md5sum = c20b620111a4dc4bc2bcae57c2007cbe
[ru_lopcomm_libinstance.jinja2.cfg] [ru_lopcomm_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/lopcomm/libinstance.jinja2.cfg _update_hash_filename_ = ru/lopcomm/libinstance.jinja2.cfg
md5sum = 7b84e582f149da52013740251a2e7ce4 md5sum = e67ccf369ccd016e38c5be42442edeae
[ru_sunwave_libinstance.jinja2.cfg] [ru_sunwave_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/sunwave/libinstance.jinja2.cfg _update_hash_filename_ = ru/sunwave/libinstance.jinja2.cfg
md5sum = 5c5248494bcd9d27d50636ee9fab7c87 md5sum = 0450e9fa50844e4d6e51d608625c57f6
[ru_lopcomm_ncclient_common.py] [ru_lopcomm_ncclient_common.py]
_update_hash_filename_ = ru/lopcomm/ncclient_common.py _update_hash_filename_ = ru/lopcomm/ncclient_common.py
...@@ -64,15 +64,15 @@ md5sum = 63472d5dc9bd46923d3941b5189e2ccd ...@@ -64,15 +64,15 @@ md5sum = 63472d5dc9bd46923d3941b5189e2ccd
[ru_lopcomm_software.jinja2.py] [ru_lopcomm_software.jinja2.py]
_update_hash_filename_ = ru/lopcomm/software.jinja2.py _update_hash_filename_ = ru/lopcomm/software.jinja2.py
md5sum = 2cd8515253b75e2ab13cc77399762851 md5sum = f36eef13210ff519f6a6e56f081f397a
[ru_lopcomm_supervision.jinja2.py] [ru_lopcomm_supervision.jinja2.py]
_update_hash_filename_ = ru/lopcomm/supervision.jinja2.py _update_hash_filename_ = ru/lopcomm/supervision.jinja2.py
md5sum = 243d9fbf640b8dc8bf63d69b07b8afed md5sum = 11623b42a0b6271ba0abc8b40e7630e5
[template-enb] [template-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg _update_hash_filename_ = instance-enb.jinja2.cfg
md5sum = 104d63450ec08d67bc6e82a9dacee6ae md5sum = b93939eb4c924ca41e78cd3db0a2daf0
[template-gnb] [template-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg _update_hash_filename_ = instance-gnb.jinja2.cfg
...@@ -100,7 +100,7 @@ md5sum = dcaac06553a3222b14c0013a13f4a149 ...@@ -100,7 +100,7 @@ md5sum = dcaac06553a3222b14c0013a13f4a149
[enb.jinja2.cfg] [enb.jinja2.cfg]
filename = config/enb.jinja2.cfg filename = config/enb.jinja2.cfg
md5sum = 9e10632057d64068313267ecee999e97 md5sum = 46e326c84ed096909595d56512da0de7
[sib23.jinja2.asn] [sib23.jinja2.asn]
filename = config/sib23.jinja2.asn filename = config/sib23.jinja2.asn
......
{%- set cell_list = slapparameter_dict.get('cell_list', {'default': {}}) %}
{%- set cell_count = cell_list|length %} {%- set cell_count = cell_list|length %}
{%- if slapparameter_dict.get('tdd_ul_dl_config', '[Configuration 2] 5ms 2UL 6DL (default)') == '[Configuration 2] 5ms 2UL 6DL (default)' %} {%- if slapparameter_dict.get('tdd_ul_dl_config', '[Configuration 2] 5ms 2UL 6DL (default)') == '[Configuration 2] 5ms 2UL 6DL (default)' %}
...@@ -44,7 +43,7 @@ ...@@ -44,7 +43,7 @@
{%- endif %} {%- endif %}
args: "dev0= args: "dev0=
{%- for i, k in enumerate(cell_list) %} {%- for i, k in enumerate(cell_list) %}
{%- set cpri_port = cell_list[k].get('cpri_port_number', i) %} {%- set cpri_port = cell_list[k].cpri_port_number %}
{%- if i != 0 -%} {%- if i != 0 -%}
, ,
{%- endif -%} {%- endif -%}
......
...@@ -345,6 +345,7 @@ url = {{ enb_template }} ...@@ -345,6 +345,7 @@ url = {{ enb_template }}
{% endif %} {% endif %}
output = ${directory:etc}/enb.cfg output = ${directory:etc}/enb.cfg
extra-context = extra-context =
json cell_list {{ rulib.cell_list | tojson }}
key sib23_file sib-config:output key sib23_file sib-config:output
[publish-connection-information] [publish-connection-information]
......
{#- Package ru/libinstance provides common instance code for handling Radio Units and cells. {#- Package ru/libinstance provides common instance code for handling Radio Units and cells.
Use buildout() macro to emit instance-level code to Use buildout() macro to emit instance-level code to
handle configured RU. handle configured RUs.
NOTE: driver-specific logic is implemented in rudrv.buildout() . NOTE: driver-specific logic is implemented in rudrv.buildout_ru() .
#} #}
{#- cell_list keeps cell registry #}
{%- set cell_list = slapparameter_dict.get('cell_list', {'default': {}}) %}
{%- for i, k in enumerate(cell_list) %}
{%- set cell = cell_list[k] %}
{%- do cell.setdefault('cpri_port_number', i) %}
{%- endfor %}
{%- macro buildout() %} {%- macro buildout() %}
{#- part emits new buildout section and registers it into buildout.parts #} {#- part emits new buildout section and registers it into buildout.parts #}
{%- set parts_list = [] %} {%- set parts_list = [] %}
...@@ -31,10 +39,14 @@ config-stats-period = {{ slapparameter_dict.get("enb_stats_fetch_period", 60) }} ...@@ -31,10 +39,14 @@ config-stats-period = {{ slapparameter_dict.get("enb_stats_fetch_period", 60) }}
lopcomm=rudrv_lopcomm, lopcomm=rudrv_lopcomm,
sunwave=rudrv_sunwave) %} sunwave=rudrv_sunwave) %}
{#- invoke RU-specific buildout handler #} {#- go through all RUs and for each RU invoke
RU-specific buildout handler #}
{%- set ru_type = {'lopcomm': 'lopcomm', 'm2ru': 'sunwave'}.get(ru, 'sdr') %} {%- set ru_type = {'lopcomm': 'lopcomm', 'm2ru': 'sunwave'}.get(ru, 'sdr') %}
{%- set rudrv = rudrv_dict[ru_type] %} {%- set rudrv = rudrv_dict[ru_type] %}
{{ rudrv.buildout() }} {%- for cell_ref, cell in cell_list|dictsort %}
{%- set ru_ref = cell_ref if cell_ref != 'default' else 'RU' %}
{{ rudrv.buildout_ru(ru_ref, cell) }}
{%- endfor %}
[buildout] [buildout]
......
{#- Package ru/lopcomm/libinstance provides instance code for handling Lopcomm ORAN Radio Units. #} {#- Package ru/lopcomm/libinstance provides instance code for handling Lopcomm ORAN Radio Units. #}
{%- macro buildout() %} {%- macro buildout_ru(ru_ref, cell) %}
{#- indicate whether RU is listening for netconf #} {#- indicate whether RU is listening for netconf #}
{{ promise('lopcomm-rrh-netconf-socket') }} {{ promise('%s-netconf-socket' % ru_ref) }}
promise = check_socket_listening promise = check_socket_listening
config-host = ${slap-configuration:tap-ipv6-gateway} config-host = ${slap-configuration:tap-ipv6-gateway}
config-port = 830 config-port = 830
...@@ -12,11 +12,13 @@ config-port = 830 ...@@ -12,11 +12,13 @@ config-port = 830
{#- monitor state of netconf connection + keep on touching RU watchdog #} {#- monitor state of netconf connection + keep on touching RU watchdog #}
[lopcomm-rrh-supervision-template] [{{ru_ref}}-supervision-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-supervision.log _logbase = ${directory:var}/log/{{ru_ref}}-supervision
supervision-reply-json-log-output = ${directory:var}/log/lopcomm-rrh-supervision-reply.json.log log-output = ${:_logbase}.log
supervision-reply-json-log-output = ${:_logbase}-reply.json.log
is_netconf_connected = ${directory:etc}/{{ru_ref}}.is_netconf_connected
context = context =
section directory directory section directory directory
section slap_configuration slap-configuration section slap_configuration slap-configuration
...@@ -26,33 +28,35 @@ context = ...@@ -26,33 +28,35 @@ context =
raw testing {{ slapparameter_dict.get("testing", False) }} raw testing {{ slapparameter_dict.get("testing", False) }}
raw python_path {{ buildout_directory}}/bin/pythonwitheggs raw python_path {{ buildout_directory}}/bin/pythonwitheggs
raw buildout_directory_path {{ buildout_directory }} raw buildout_directory_path {{ buildout_directory }}
raw etc_path ${directory:etc} key is_netconf_connected :is_netconf_connected
import netaddr netaddr import netaddr netaddr
mode = 0775 mode = 0775
url = {{ ru_lopcomm_supervision_template }} url = {{ ru_lopcomm_supervision_template }}
output = ${directory:bin}/lopcomm-rrh-supervision.py output = ${directory:bin}/{{ru_ref}}-supervision.py
[lopcomm-rrh-supervision-service] {{ part('%s-supervision-service' % ru_ref) }}
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = ${lopcomm-rrh-supervision-template:output} command-line = ${ {{- ru_ref}}-supervision-template:output}
wrapper-path = ${directory:service}/lopcomm-rrh-supervision wrapper-path = ${directory:service}/{{ru_ref}}-supervision
mode = 0775 mode = 0775
hash-files = hash-files =
${lopcomm-rrh-supervision-template:output} ${:command-line}
{{ promise('lopcomm-rrh-netconf-connection') }} {{ promise('%s-netconf-connection' % ru_ref) }}
promise = check_command_execute promise = check_command_execute
config-command = [ -f ${directory:etc}/is_netconf_connected ] config-command = [ -f ${ {{-ru_ref}}-supervision-template:is_netconf_connected} ]
{#- push firmware to RU #} {#- push firmware to RU #}
[lopcomm-rrh-software-template] [{{ru_ref}}-software-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-software.log _logbase = ${directory:var}/log/{{ru_ref}}-software
software-reply-json-log-output = ${directory:var}/log/lopcomm-rrh-software-reply.json.log log-output = ${:_logbase}.log
software-reply-json-log-output = ${:_logbase}-reply.json.log
remote-file-path = sftp://${user-info:pw-name}@[${slap-configuration:ipv6-random}]:${sshd-port:port}{{ru_lopcomm_firmware_path}} remote-file-path = sftp://${user-info:pw-name}@[${slap-configuration:ipv6-random}]:${sshd-port:port}{{ru_lopcomm_firmware_path}}
is_firmware_updated = ${directory:etc}/{{ru_ref}}.is_firmware_updated
context = context =
section directory directory section directory directory
section slap_configuration slap-configuration section slap_configuration slap-configuration
...@@ -63,16 +67,16 @@ context = ...@@ -63,16 +67,16 @@ context =
raw testing {{ slapparameter_dict.get("testing", False) }} raw testing {{ slapparameter_dict.get("testing", False) }}
raw python_path {{ buildout_directory}}/bin/pythonwitheggs raw python_path {{ buildout_directory}}/bin/pythonwitheggs
raw buildout_directory_path {{ buildout_directory }} raw buildout_directory_path {{ buildout_directory }}
raw etc_path ${directory:etc} key is_firmware_updated :is_firmware_updated
raw firmware_name {{ru_lopcomm_firmware_filename}} raw firmware_name {{ru_lopcomm_firmware_filename}}
import netaddr netaddr import netaddr netaddr
mode = 0775 mode = 0775
url = {{ ru_lopcomm_software_template }} url = {{ ru_lopcomm_software_template }}
output = ${directory:script}/lopcomm-rrh-software.py output = ${directory:script}/{{ru_ref}}-software.py
{{ promise('lopcomm-firmware') }} {{ promise('%s-firmware' % ru_ref) }}
promise = check_command_execute promise = check_command_execute
config-command = [ -f ${directory:etc}/is_firmware_updated ] config-command = [ -f ${ {{-ru_ref}}-software-template:is_firmware_updated} ]
{#- push config to RU #} {#- push config to RU #}
...@@ -85,19 +89,19 @@ version = {{ slapparameter_dict.get("cu_config_version") }} ...@@ -85,19 +89,19 @@ version = {{ slapparameter_dict.get("cu_config_version") }}
offline = false offline = false
{% endif %} {% endif %}
[lopcomm-cu-config] [{{ru_ref}}-cu-config]
<= config-base <= config-base
{% if slapparameter_dict.get("cu_config_link", None) %} {% if slapparameter_dict.get("cu_config_link", None) %}
url = ${cu-config-dl:target} url = ${cu-config-dl:target}
{% else %} {% else %}
url = {{ ru_lopcomm_cu_config_template }} url = {{ ru_lopcomm_cu_config_template }}
{% endif %} {% endif %}
output = ${directory:etc}/cu_config.xml output = ${directory:etc}/{{ru_ref}}-cu_config.xml
[lopcomm-rrh-config-template] [{{ru_ref}}-config-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-config.log log-output = ${directory:var}/log/{{ru_ref}}-config.log
context = context =
section directory directory section directory directory
section slap_configuration slap-configuration section slap_configuration slap-configuration
...@@ -107,28 +111,29 @@ context = ...@@ -107,28 +111,29 @@ context =
raw python_path {{ buildout_directory}}/bin/pythonwitheggs raw python_path {{ buildout_directory}}/bin/pythonwitheggs
raw buildout_directory_path {{ buildout_directory }} raw buildout_directory_path {{ buildout_directory }}
raw CreateProcessingEle_template {{ ru_lopcomm_CreateProcessingEle_template }} raw CreateProcessingEle_template {{ ru_lopcomm_CreateProcessingEle_template }}
key cu_config_template lopcomm-cu-config:output key cu_config_template {{ru_ref}}-cu-config:output
import netaddr netaddr import netaddr netaddr
mode = 0775 mode = 0775
url = {{ ru_lopcomm_config_template }} url = {{ ru_lopcomm_config_template }}
output = ${directory:script}/lopcomm-rrh-config.py output = ${directory:script}/{{ru_ref}}-config.py
{{ promise('lopcomm-config-log') }} {{ promise('%s-config-log' % ru_ref) }}
promise = check_lopcomm_config_log promise = check_lopcomm_config_log
config-config-log = ${lopcomm-rrh-config-template:log-output} config-config-log = ${ {{- ru_ref}}-config-template:log-output}
{#- handle notifications from RU #} {#- handle notifications from RU #}
[lopcomm-rrh-stats-template] [{{ru_ref}}-stats-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-stats.log _logbase = ${directory:var}/log/{{ru_ref}}
json-log-output = ${directory:var}/log/lopcomm-rrh-stats.json.log log-output = ${:_logbase}-stats.log
cfg-json-log-output = ${directory:var}/log/lopcomm-rrh-config.json.log json-log-output = ${:_logbase}-stats.json.log
supervision-json-log-output = ${directory:var}/log/lopcomm-rrh-supervision.json.log cfg-json-log-output = ${:_logbase}-config.json.log
ncsession-json-log-output = ${directory:var}/log/lopcomm-rrh-ncsession.json.log supervision-json-log-output = ${:_logbase}-supervision.json.log
software-json-log-output = ${directory:var}/log/lopcomm-rrh-software.json.log ncsession-json-log-output = ${:_logbase}-ncsession.json.log
software-json-log-output = ${:_logbase}-software.json.log
context = context =
section directory directory section directory directory
section slap_configuration slap-configuration section slap_configuration slap-configuration
...@@ -145,64 +150,61 @@ context = ...@@ -145,64 +150,61 @@ context =
import netaddr netaddr import netaddr netaddr
mode = 0775 mode = 0775
url = {{ ru_lopcomm_stats_template }} url = {{ ru_lopcomm_stats_template }}
output = ${directory:bin}/lopcomm-rrh-stats.py output = ${directory:bin}/{{ru_ref}}-stats.py
[lopcomm-rrh-stats-service] {{ part('%s-stats-service' % ru_ref) }}
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = ${lopcomm-rrh-stats-template:output} command-line = ${ {{- ru_ref}}-stats-template:output}
wrapper-path = ${directory:service}/lopcomm-rrh-stats wrapper-path = ${directory:service}/{{ru_ref}}-stats
mode = 0775 mode = 0775
hash-files = hash-files =
${lopcomm-rrh-stats-template:output} ${:command-line}
{{ promise('lopcomm-vswr') }} {{ promise('%s-vswr' % ru_ref) }}
promise = check_lopcomm_vswr promise = check_lopcomm_vswr
config-netconf-log = ${lopcomm-rrh-stats-template:json-log-output} config-netconf-log = ${ {{- ru_ref}}-stats-template:json-log-output}
{{ promise('lopcomm-rssi') }} {{ promise('%s-rssi' % ru_ref) }}
promise = check_lopcomm_rssi promise = check_lopcomm_rssi
config-netconf-log = ${lopcomm-rrh-stats-template:json-log-output} config-netconf-log = ${ {{- ru_ref}}-stats-template:json-log-output}
{{ promise('lopcomm-pa-current') }} {{ promise('%s-pa-current' % ru_ref) }}
promise = check_lopcomm_pa_current promise = check_lopcomm_pa_current
config-netconf-log = ${lopcomm-rrh-stats-template:json-log-output} config-netconf-log = ${ {{- ru_ref}}-stats-template:json-log-output}
{{ promise('lopcomm-pa-output-power') }} {{ promise('%s-pa-output-power' % ru_ref) }}
promise = check_lopcomm_pa_output_power promise = check_lopcomm_pa_output_power
config-netconf-log = ${lopcomm-rrh-stats-template:json-log-output} config-netconf-log = ${ {{- ru_ref}}-stats-template:json-log-output}
{{ promise('lopcomm-sync') }} {{ promise('%s-sync' % ru_ref) }}
promise = check_lopcomm_sync promise = check_lopcomm_sync
config-netconf-log = ${lopcomm-rrh-stats-template:json-log-output} config-netconf-log = ${ {{- ru_ref}}-stats-template:json-log-output}
{{ promise('lopcomm-lof') }} {{ promise('%s-lof' % ru_ref) }}
promise = check_lopcomm_lof promise = check_lopcomm_lof
config-netconf-log = ${lopcomm-rrh-stats-template:json-log-output} config-netconf-log = ${ {{- ru_ref}}-stats-template:json-log-output}
{{ promise('lopcomm-stats-log') }} {{ promise('%s-stats-log' % ru_ref) }}
promise = check_lopcomm_stats_log promise = check_lopcomm_stats_log
config-stats-log = ${lopcomm-rrh-stats-template:log-output} config-stats-log = ${ {{- ru_ref}}-stats-template:log-output}
{%- set cell_list = slapparameter_dict.get('cell_list', {'default': {}}) %} {{ promise('%s-cpri-lock' % ru_ref) }}
{%- for i, k in enumerate(cell_list) %}
{%- set sfp_port = cell_list[k].get('cpri_port_number', i) %}
{{ promise('SFP%d-cpri-lock' % sfp_port) }}
promise = check_cpri_lock promise = check_cpri_lock
config-sdr_dev = {{ slapparameter_dict.get('sdr_number', 0) }} config-sdr_dev = {{ slapparameter_dict.get('sdr_number', 0) }}
config-sfp_port = {{ sfp_port }} config-sfp_port = {{ cell.cpri_port_number }}
config-amarisoft-rf-info-log = ${amarisoft-rf-info-template:log-output} config-amarisoft-rf-info-log = ${amarisoft-rf-info-template:log-output}
{%- endfor %}
{#- reset RU periodically #} {#- reset RU periodically #}
{%- if slapparameter_dict.get("cron_schedule") %} {%- if slapparameter_dict.get("cron_schedule") %}
[lopcomm-rrh-reset-info-template] [{{ru_ref}}-reset-info-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-reset-info.log _logbase = ${directory:var}/log/{{ru_ref}}-reset-info
json-log-output = ${directory:var}/log/lopcomm-rrh-reset-info.json.log log-output = ${:_logbase}.log
json-log-output = ${:_logbase}.json.log
context = context =
section slap_configuration slap-configuration section slap_configuration slap-configuration
key log_file :log-output key log_file :log-output
...@@ -213,13 +215,14 @@ context = ...@@ -213,13 +215,14 @@ context =
import netaddr netaddr import netaddr netaddr
mode = 0775 mode = 0775
url = {{ ru_lopcomm_reset_info_template }} url = {{ ru_lopcomm_reset_info_template }}
output = ${directory:bin}/lopcomm-rrh-reset-info.py output = ${directory:bin}/{{ru_ref}}-reset-info.py
[lopcomm-rrh-reset-template] [{{ru_ref}}-reset-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
log-output = ${directory:var}/log/lopcomm-rrh-reset.log _logbase = ${directory:var}/log/{{ru_ref}}-reset
json-log-output = ${directory:var}/log/lopcomm-rrh-reset.json.log log-output = ${:_logbase}.log
json-log-output = ${:_logbase}.json.log
context = context =
section slap_configuration slap-configuration section slap_configuration slap-configuration
key log_file :log-output key log_file :log-output
...@@ -228,22 +231,22 @@ context = ...@@ -228,22 +231,22 @@ context =
import netaddr netaddr import netaddr netaddr
mode = 0775 mode = 0775
url = {{ ru_lopcomm_reset_template }} url = {{ ru_lopcomm_reset_template }}
output = ${directory:etc}/lopcomm-rrh-reset.py output = ${directory:etc}/{{ru_ref}}-reset.py
{{ part('lopcomm-reset-cron') }} {{ part('%s-reset-cron' % ru_ref) }}
recipe = slapos.cookbook:cron.d recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries} cron-entries = ${cron:cron-entries}
name = rrh-resest name = {{ru_ref}}-reset
frequency = {{ slapparameter_dict.get("cron_schedule", "") }} frequency = {{ slapparameter_dict.get("cron_schedule", "") }}
command = {{ buildout_directory}}/bin/pythonwitheggs ${lopcomm-rrh-reset-template:output} command = {{ buildout_directory}}/bin/pythonwitheggs ${ {{- ru_ref}}-reset-template:output}
{{ part('lopcomm-reset-info-service') }} {{ part('%s-reset-info-service' % ru_ref) }}
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = ${lopcomm-rrh-reset-info-template:output} command-line = ${ {{- ru_ref}}-reset-info-template:output}
wrapper-path = ${directory:service}/lopcomm-rrh-reset-info wrapper-path = ${directory:service}/{{ru_ref}}-reset-info
mode = 0775 mode = 0775
hash-files = hash-files =
${lopcomm-rrh-reset-info-template:output} ${:command-line}
{%- endif %} {%- endif %}
......
...@@ -15,7 +15,7 @@ if __name__ == '__main__': ...@@ -15,7 +15,7 @@ if __name__ == '__main__':
) )
while True: while True:
try: try:
firmware_check_file= os.path.join('{{etc_path}}','is_firmware_updated') firmware_check_file= '{{ is_firmware_updated }}'
nc.connect("{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) }}", 830, "oranuser", "oranpassword") nc.connect("{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) }}", 830, "oranuser", "oranpassword")
# Fetch software inventory # Fetch software inventory
......
...@@ -14,7 +14,7 @@ if __name__ == '__main__': ...@@ -14,7 +14,7 @@ if __name__ == '__main__':
supervision_reply_json_log_file="{{ supervision_reply_json_log_file }}" supervision_reply_json_log_file="{{ supervision_reply_json_log_file }}"
) )
try: try:
netconf_check_file = os.path.join('{{etc_path}}', 'is_netconf_connected') netconf_check_file = '{{ is_netconf_connected }}'
nc.connect("{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) }}", 830, "oranuser", "oranpassword") nc.connect("{{ netaddr.IPAddress(slap_configuration.get('tap-ipv6-gateway', '')) }}", 830, "oranuser", "oranpassword")
supervision_subscription_rpc_xml = """ supervision_subscription_rpc_xml = """
......
{#- Package ru/sdr/libinstance provides instance code for handling SDR Radio Units. #} {#- Package ru/sdr/libinstance provides instance code for handling SDR Radio Units. #}
{%- macro buildout() %} {%- macro buildout_ru(ru_ref, cell) %}
{#- nothing SDR-specific #} {#- nothing SDR-specific #}
{%- endmacro %} {%- endmacro %}
{#- Package ru/sunwave/libinstance provides instance code for handling SunWave Radio Units. #} {#- Package ru/sunwave/libinstance provides instance code for handling SunWave Radio Units. #}
{%- macro buildout() %} {%- macro buildout_ru(ru_ref, cell) %}
{#- nothing SunWave-specific #} {#- nothing SunWave-specific #}
{%- endmacro %} {%- endmacro %}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment