diff options
| -rw-r--r-- | op-mode-definitions/ntp.xml.in | 8 | ||||
| -rw-r--r-- | src/op_mode/ntp.py | 45 | 
2 files changed, 33 insertions, 20 deletions
| diff --git a/op-mode-definitions/ntp.xml.in b/op-mode-definitions/ntp.xml.in index 17250a45e..565a5edb5 100644 --- a/op-mode-definitions/ntp.xml.in +++ b/op-mode-definitions/ntp.xml.in @@ -6,25 +6,25 @@          <properties>            <help>Show peer status of NTP daemon</help>          </properties> -        <command>${vyos_op_scripts_dir}/ntp.py show_sourcestats</command> +        <command>sudo ${vyos_op_scripts_dir}/ntp.py show_sourcestats</command>          <children>            <node name="activity">              <properties>                <help>Report the number of servers and peers that are online and offline</help>              </properties> -            <command>${vyos_op_scripts_dir}/ntp.py show_activity</command> +            <command>sudo ${vyos_op_scripts_dir}/ntp.py show_activity</command>            </node>            <node name="sources">              <properties>                <help>Show information about the current time sources being accessed</help>              </properties> -            <command>${vyos_op_scripts_dir}/ntp.py show_sources</command> +            <command>sudo ${vyos_op_scripts_dir}/ntp.py show_sources</command>            </node>            <node name="system">              <properties>                <help>Show parameters about the system clock performance</help>              </properties> -            <command>${vyos_op_scripts_dir}/ntp.py show_tracking</command> +            <command>sudo ${vyos_op_scripts_dir}/ntp.py show_tracking</command>            </node>          </children>        </node> diff --git a/src/op_mode/ntp.py b/src/op_mode/ntp.py index e14cc46d0..6ec0fedcb 100644 --- a/src/op_mode/ntp.py +++ b/src/op_mode/ntp.py @@ -110,49 +110,62 @@ def _is_configured():      if not config.exists("service ntp"):          raise vyos.opmode.UnconfiguredSubsystem("NTP service is not enabled.") +def _extend_command_vrf(): +    config = ConfigTreeQuery() +    if config.exists('service ntp vrf'): +        vrf = config.value('service ntp vrf') +        return f'ip vrf exec {vrf} ' +    return '' + +  def show_activity(raw: bool):      _is_configured()      command = f'chronyc'      if raw: -       command += f" -c activity" -       return _get_raw_data(command) +        command += f" -c activity" +        return _get_raw_data(command)      else: -       command += f" activity" -       return cmd(command) +        command = _extend_command_vrf() + command +        command += f" activity" +        return cmd(command)  def show_sources(raw: bool):      _is_configured()      command = f'chronyc'      if raw: -       command += f" -c sources" -       return _get_raw_data(command) +        command += f" -c sources" +        return _get_raw_data(command)      else: -       command += f" sources -v" -       return cmd(command) +        command = _extend_command_vrf() + command +        command += f" sources -v" +        return cmd(command)  def show_tracking(raw: bool):      _is_configured()      command = f'chronyc'      if raw: -       command += f" -c tracking" -       return _get_raw_data(command) +        command += f" -c tracking" +        return _get_raw_data(command)      else: -       command += f" tracking" -       return cmd(command) +        command = _extend_command_vrf() + command +        command += f" tracking" +        return cmd(command)  def show_sourcestats(raw: bool):      _is_configured()      command = f'chronyc'      if raw: -       command += f" -c sourcestats" -       return _get_raw_data(command) +        command += f" -c sourcestats" +        return _get_raw_data(command)      else: -       command += f" sourcestats -v" -       return cmd(command) +        command = _extend_command_vrf() + command +        command += f" sourcestats -v" +        return cmd(command) +  if __name__ == '__main__':      try: | 
