33 lines
1.4 KiB
Plaintext
33 lines
1.4 KiB
Plaintext
|
|
#!/bin/vbash
|
||
|
|
# Enable or disable the WAN. Split out from vrrp-wan-reconcile for one reason:
|
||
|
|
# `source /opt/vyatta/etc/functions/script-template` must be the FIRST thing the
|
||
|
|
# script does. Sourced after a few statements -- an if, an exec, a mkdir -- it
|
||
|
|
# silently terminated the script; `set -x` showed execution stopping inside the
|
||
|
|
# source with no error and rc=0, so the reconciler reported success having done
|
||
|
|
# nothing. Only a single assignment may precede it (the template resets the
|
||
|
|
# positional parameters, so the mode is captured first), which is the same shape
|
||
|
|
# /config/vyos-known-good uses.
|
||
|
|
#
|
||
|
|
# vrrp-wan-apply enable take the WAN
|
||
|
|
# vrrp-wan-apply disable release it
|
||
|
|
MODE="${1:-}"
|
||
|
|
source /opt/vyatta/etc/functions/script-template
|
||
|
|
|
||
|
|
WAN_VIF=53
|
||
|
|
cfg() { /opt/vyatta/bin/vyatta-op-cmd-wrapper show configuration commands 2>/dev/null; }
|
||
|
|
wan_disabled(){ cfg | grep -q "vif ${WAN_VIF} disable"; }
|
||
|
|
ppp_disabled(){ cfg | grep -q "pppoe pppoe0 disable"; }
|
||
|
|
|
||
|
|
configure
|
||
|
|
if [ "$MODE" = enable ]; then
|
||
|
|
# Guarded: `delete` of an absent node aborts the whole batch with
|
||
|
|
# "Nothing to delete", which left the box detected-but-unfixed.
|
||
|
|
wan_disabled && delete interfaces bonding bond0 vif ${WAN_VIF} disable
|
||
|
|
ppp_disabled && delete interfaces pppoe pppoe0 disable
|
||
|
|
else
|
||
|
|
wan_disabled || set interfaces bonding bond0 vif ${WAN_VIF} disable
|
||
|
|
ppp_disabled || set interfaces pppoe pppoe0 disable
|
||
|
|
fi
|
||
|
|
commit
|
||
|
|
exit
|