987cf377b0
Why I did it This PR aims to fix the bug in Monit template file of dhcp_relay container. If Multi-VLAN were configured on device, multiple dhcrelay processes will be spawned in dhcp_relay container. Then there will be an entry for each dhcrelay process in Monit configuration file of dhcp_relay container. Currently Monit template file of dhcp_relay container can not be rendered correctly to generate configuration file and will cause Monit can not start up.
38 lines
1.6 KiB
Django/Jinja
38 lines
1.6 KiB
Django/Jinja
{# This template file is used to generate Monit configuration file of dhcp_relay container -#}
|
|
|
|
################################################################################
|
|
## Monit configuration file for dhcp_relay container
|
|
## process list:
|
|
## dhcrelay
|
|
################################################################################
|
|
{# If our configuration has VLANs... #}
|
|
{% if VLAN_INTERFACE %}
|
|
{# Count how may VLANs require a DHCP relay agent... #}
|
|
{% set num_relays = namespace(count=0) %}
|
|
{% for vlan_name in VLAN_INTERFACE %}
|
|
{% if VLAN and vlan_name in VLAN and 'dhcp_servers' in VLAN[vlan_name] and VLAN[vlan_name]['dhcp_servers']|length > 0 %}
|
|
{% set num_relays.count = num_relays.count + 1 %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{# if one or more VLANs require DHCP relay agent #}
|
|
{% if num_relays.count > 0 %}
|
|
{% set relay_for_ipv4 = namespace(flag=False) %}
|
|
{% for vlan_name in VLAN_INTERFACE %}
|
|
{% if VLAN and vlan_name in VLAN and 'dhcp_servers' in VLAN[vlan_name] and VLAN[vlan_name]['dhcp_servers']|length >0 %}
|
|
{% for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %}
|
|
{% if dhcp_server | ipv4 %}
|
|
{% set relay_for_ipv4.flag = True %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if relay_for_ipv4.flag %}
|
|
{% set relay_for_ipv4 = False %}
|
|
{# Check the running status of each DHCP relay agent instance #}
|
|
check program dhcp_relay|dhcrelay_{{ vlan_name }} with path "/usr/bin/process_checker dhcp_relay /usr/sbin/dhcrelay -d -m discard -a %h:%p %P --name-alias-map-file /tmp/port-name-alias-map.txt -id {{ vlan_name }}"
|
|
if status != 0 for 5 times within 5 cycles then alert repeat every 1 cycles
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|