summaryrefslogtreecommitdiff
path: root/src/op_mode/show_ntp.sh
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-03-21 08:24:45 +0100
committerChristian Poessinger <christian@poessinger.com>2021-03-21 08:24:45 +0100
commitf411351baef67740b76e800161fe55f495c4bd92 (patch)
tree1a965d69b49c39752faed31015c3a054e53af1e3 /src/op_mode/show_ntp.sh
parentb7386d3d3c98bb1894a8ceea56e880ae1c83c27a (diff)
downloadvyos-1x-f411351baef67740b76e800161fe55f495c4bd92.tar.gz
vyos-1x-f411351baef67740b76e800161fe55f495c4bd92.zip
ntp: T3416: fix op-mode commands when running inside VRF
When NTP is executed inside a VRF context, we also must execute the op-mode commands inside the given VRF. This is a workaround until the op-mode programming library from T3402 is available.
Diffstat (limited to 'src/op_mode/show_ntp.sh')
-rwxr-xr-xsrc/op_mode/show_ntp.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/op_mode/show_ntp.sh b/src/op_mode/show_ntp.sh
new file mode 100755
index 000000000..e9dd6c5c9
--- /dev/null
+++ b/src/op_mode/show_ntp.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+basic=0
+info=0
+
+while [[ "$#" -gt 0 ]]; do
+ case $1 in
+ --info) info=1 ;;
+ --basic) basic=1 ;;
+ --server) server=$2; shift ;;
+ *) echo "Unknown parameter passed: $1" ;;
+ esac
+ shift
+done
+
+if ! ps -C ntpd &>/dev/null; then
+ echo NTP daemon disabled
+ exit 1
+fi
+
+PID=$(pgrep ntpd)
+VRF_NAME=$(ip vrf identify ${PID})
+
+if [ ! -z ${VRF_NAME} ]; then
+ VRF_CMD="sudo ip vrf exec ${VRF_NAME}"
+fi
+
+if [ $basic -eq 1 ]; then
+ $VRF_CMD ntpq -n -c peers
+elif [ $info -eq 1 ]; then
+ echo "=== sysingo ==="
+ $VRF_CMD ntpq -n -c sysinfo
+ echo
+ echo "=== kerninfo ==="
+ $VRF_CMD ntpq -n -c kerninfo
+elif [ ! -z $server ]; then
+ $VRF_CMD /usr/sbin/ntpdate -q $server
+fi
+