diff options
| author | zsdc <taras@vyos.io> | 2021-12-29 17:57:38 +0200 | 
|---|---|---|
| committer | zsdc <taras@vyos.io> | 2022-02-07 09:52:37 +0200 | 
| commit | 373132a899cd53eaebedd23bd44702d245ce8165 (patch) | |
| tree | 3e1b6386480d118df486f7bb8d1bdf104c4ed623 | |
| parent | 1af618103f288d83c51dee3d20e49f06e02b1ac7 (diff) | |
| download | vyos-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.tmpl | 8 | ||||
| -rw-r--r-- | interface-definitions/system-frr.xml.in | 27 | ||||
| -rw-r--r-- | python/vyos/util.py | 12 | ||||
| -rwxr-xr-x | src/conf_mode/snmp.py | 8 | ||||
| -rwxr-xr-x | src/conf_mode/system_frr.py | 2 | 
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 | 
