summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzsdc <taras@vyos.io>2021-12-29 17:57:38 +0200
committerzsdc <taras@vyos.io>2022-02-07 09:52:37 +0200
commit373132a899cd53eaebedd23bd44702d245ce8165 (patch)
tree3e1b6386480d118df486f7bb8d1bdf104c4ed623
parent1af618103f288d83c51dee3d20e49f06e02b1ac7 (diff)
downloadvyos-1x-373132a899cd53eaebedd23bd44702d245ce8165.tar.gz
vyos-1x-373132a899cd53eaebedd23bd44702d245ce8165.zip
FRR: T4020: Updated CLI options processing for FRR daemons
- Reverted changes from `python/vyos/util.py`. This may lead to unnecessary FRR restart during each boot, depending on a default file content and template, but makes this changeset cleaner. - Fixed typos in node names (extra `>` characters). - Added SNMP module for `isisd` and `ldpd`, since they have it compiled now.
-rw-r--r--data/templates/frr/daemons.frr.tmpl8
-rw-r--r--interface-definitions/system-frr.xml.in27
-rw-r--r--python/vyos/util.py12
-rwxr-xr-xsrc/conf_mode/snmp.py8
-rwxr-xr-xsrc/conf_mode/system_frr.py2
5 files changed, 36 insertions, 21 deletions
diff --git a/data/templates/frr/daemons.frr.tmpl b/data/templates/frr/daemons.frr.tmpl
index 089cdae3b..ab7b14d6b 100644
--- a/data/templates/frr/daemons.frr.tmpl
+++ b/data/templates/frr/daemons.frr.tmpl
@@ -34,9 +34,13 @@ ripd_options=" --daemon -A 127.0.0.1
{%- if snmp is defined and snmp.ripd is defined %} -M snmp{% endif -%}
"
ripngd_options=" --daemon -A ::1"
-isisd_options=" --daemon -A 127.0.0.1"
+isisd_options=" --daemon -A 127.0.0.1
+{%- if snmp is defined and snmp.isisd is defined %} -M snmp{% endif -%}
+"
pimd_options=" --daemon -A 127.0.0.1"
-ldpd_options=" --daemon -A 127.0.0.1"
+ldpd_options=" --daemon -A 127.0.0.1
+{%- if snmp is defined and snmp.ldpd is defined %} -M snmp{% endif -%}
+"
nhrpd_options=" --daemon -A 127.0.0.1"
eigrpd_options=" --daemon -A 127.0.0.1"
babeld_options=" --daemon -A 127.0.0.1"
diff --git a/interface-definitions/system-frr.xml.in b/interface-definitions/system-frr.xml.in
index e8b447f58..9fe23ed75 100644
--- a/interface-definitions/system-frr.xml.in
+++ b/interface-definitions/system-frr.xml.in
@@ -11,13 +11,13 @@
<children>
<leafNode name="bmp">
<properties>
- <help>>Enable BGP Monitoring Protocol support</help>
+ <help>Enable BGP Monitoring Protocol support</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="irdp">
<properties>
- <help>>Enable ICMP Router Discovery Protocol support</help>
+ <help>Enable ICMP Router Discovery Protocol support</help>
<valueless/>
</properties>
</leafNode>
@@ -28,31 +28,43 @@
<children>
<leafNode name="bgpd">
<properties>
- <help>>BGP</help>
+ <help>BGP</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="isisd">
+ <properties>
+ <help>IS-IS</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="ldpd">
+ <properties>
+ <help>LDP</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="ospf6d">
<properties>
- <help>>OSPFv3</help>
+ <help>OSPFv3</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="ospfd">
<properties>
- <help>>OSPFv2</help>
+ <help>OSPFv2</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="ripd">
<properties>
- <help>>RIP</help>
+ <help>RIP</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="zebra">
<properties>
- <help>>Zebra (IP routing manager)</help>
+ <help>Zebra (IP routing manager)</help>
<valueless/>
</properties>
</leafNode>
@@ -63,4 +75,3 @@
</children>
</node>
</interfaceDefinition>
-
diff --git a/python/vyos/util.py b/python/vyos/util.py
index ce5dc51f5..d8e83ab8d 100644
--- a/python/vyos/util.py
+++ b/python/vyos/util.py
@@ -182,20 +182,16 @@ def call(command, flag='', shell=None, input=None, timeout=None, env=None,
return code
-def read_file(fname, defaultonfailure=None, strip_end=True):
+def read_file(fname, defaultonfailure=None):
"""
- read the content of a file, optionally stripping any end characters (space, newlines)
+ read the content of a file, stripping any end characters (space, newlines)
should defaultonfailure be not None, it is returned on failure to read
"""
try:
""" Read a file to string """
with open(fname, 'r') as f:
- data = f.read()
-
- if strip_end:
- return data.strip()
- else:
- return data
+ data = f.read().strip()
+ return data
except Exception as e:
if defaultonfailure is not None:
return defaultonfailure
diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py
index 25dcdf7c6..6c6367045 100755
--- a/src/conf_mode/snmp.py
+++ b/src/conf_mode/snmp.py
@@ -583,9 +583,13 @@ def apply(snmp):
# Enable AgentX in FRR
# This should be done for each daemon individually because common command
# works only if all the daemons started with SNMP support
- frr_daemons_list = ['bgpd', 'ospf6d', 'ospfd', 'ripd', 'zebra']
+ frr_daemons_list = [
+ 'bgpd', 'ospf6d', 'ospfd', 'ripd', 'ripngd', 'isisd', 'ldpd', 'zebra'
+ ]
for frr_daemon in frr_daemons_list:
- call(f'vtysh -c "configure terminal" -d {frr_daemon} -c "agentx" >/dev/null')
+ call(
+ f'vtysh -c "configure terminal" -d {frr_daemon} -c "agentx" >/dev/null'
+ )
return None
diff --git a/src/conf_mode/system_frr.py b/src/conf_mode/system_frr.py
index 0d0b37e00..1af0055f6 100755
--- a/src/conf_mode/system_frr.py
+++ b/src/conf_mode/system_frr.py
@@ -51,7 +51,7 @@ def verify(frr_config):
def generate(frr_config):
# read daemons config file
- daemons_config_current = read_file(config_file, strip_end=False)
+ daemons_config_current = read_file(config_file)
# generate new config file
daemons_config_new = render_to_string('frr/daemons.frr.tmpl', frr_config)
# update configuration file if this is necessary