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:27:49 +0100
commit150401fa4c0a393ca496e188eeb08f9ac3844a6a (patch)
tree70ad3fb56aff00dd4d95246a7b66174de26e23a4 /src/op_mode/show_ntp.sh
parentff6afe62e801e570f6478decf2b4a813a5c0ee94 (diff)
downloadvyos-1x-150401fa4c0a393ca496e188eeb08f9ac3844a6a.tar.gz
vyos-1x-150401fa4c0a393ca496e188eeb08f9ac3844a6a.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. (cherry picked from commit f411351baef67740b76e800161fe55f495c4bd92)
Diffstat (limited to 'src/op_mode/show_ntp.sh')
-rwxr-xr-xsrc/op_mode/show_ntp.sh38
1 files changed, 38 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..292a6027f
--- /dev/null
+++ b/src/op_mode/show_ntp.sh
@@ -0,0 +1,38 @@
+#!/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