diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-02-13 11:34:28 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-02-13 11:34:28 -0800 |
commit | 9773974965c7b639a125b44be3728d00af48e929 (patch) | |
tree | cec7818e22ee6ebc3a7613fc3081f67fb8cf0a7d | |
parent | 5db776a29c90d05f864645e7e171840660f4b268 (diff) | |
parent | 0733bceb217bca1ceb094fb124b89c53cb7cdd25 (diff) | |
download | vyatta-cfg-quagga-9773974965c7b639a125b44be3728d00af48e929.tar.gz vyatta-cfg-quagga-9773974965c7b639a125b44be3728d00af48e929.zip |
Merge branch 'jenner' of suva.vyatta.com:/git/vyatta-cfg-quagga into jenner
Conflicts:
scripts/vyatta-protocol
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | debian/changelog | 14 | ||||
-rwxr-xr-x | scripts/vyatta-protocol | 2 | ||||
-rwxr-xr-x | scripts/vyatta-reload-proto-config | 66 | ||||
-rw-r--r-- | templates/protocols/ospf/passive-interface/node.def | 42 |
5 files changed, 96 insertions, 29 deletions
diff --git a/Makefile.am b/Makefile.am index 1ecac150..efcd5fe8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,6 +9,7 @@ sbin_SCRIPTS += scripts/vyatta-policy-action-verify.pl sbin_SCRIPTS += scripts/vyatta-gateway-static_route-check.pl sbin_SCRIPTS += scripts/vyatta-link-detect sbin_SCRIPTS += scripts/vyatta-protocol +sbin_SCRIPTS += scripts/vyatta-reload-proto-config sbin_PROGRAMS = src/check_prefix_boundary diff --git a/debian/changelog b/debian/changelog index f427dd20..f165a3a6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +vyatta-cfg-quagga (0.13.7) unstable; urgency=low + + * OSPF: allow any type interface + * Handle reload of interface properties + + -- Stephen Hemminger <shemminger@debian> Wed, 11 Feb 2009 22:20:25 -0800 + +vyatta-cfg-quagga (0.13.6) unstable; urgency=low + + * Change reload to restart + * Move reload to vyatta-cfg-reload + + -- Stephen Hemminger <stephen.hemminger@vyatta.com> Thu, 05 Feb 2009 14:48:15 -0800 + vyatta-cfg-quagga (0.13.5) unstable; urgency=low * remove pid files on protocol stop diff --git a/scripts/vyatta-protocol b/scripts/vyatta-protocol index d6e91167..65ee3d76 100755 --- a/scripts/vyatta-protocol +++ b/scripts/vyatta-protocol @@ -58,7 +58,7 @@ case "$1" in --chdir $log_dir --exec $exe_file \ -- -d -P 0 -i $pid_dir/${daemon}.pid - /opt/vyatta/sbin/vyatta-cfg-reload protocols ${daemon/%d/} + sudo /opt/vyatta/sbin/vyatta-reload-proto-config ${daemon/%d/} ;; *) usage;; diff --git a/scripts/vyatta-reload-proto-config b/scripts/vyatta-reload-proto-config new file mode 100755 index 00000000..7fa75cc4 --- /dev/null +++ b/scripts/vyatta-reload-proto-config @@ -0,0 +1,66 @@ +#! /bin/bash +# Author: Stephen Hemminger +# Date: 2009 +# Description: reload portion of configuration + +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. +# All Rights Reserved. +# **** End License **** + +if [ $# -eq 0 ]; then + echo "Usage: $0 {bgp|ospf|rip|ripng}" + exit 1 +fi + +if [ $EUID -ne 0 ]; then + echo "Must be root" + exit 1 +fi + +vyatta_cfg=/opt/vyatta/config/active +daemon=$1 +path=$vyatta_cfg/protocols/$daemon + +# No point in reloading if that portion of config doesn't exist +if [ ! -d $path ]; then + echo "$path does not exist" + exit 1 +fi + +# Begin reloading transaction +/opt/vyatta/sbin/vyatta-cfg-cmd-wrapper begin || exit 1 + +# In case of error undo +trap "/opt/vyatta/sbin/vyatta-cfg-cmd-wrapper end" EXIT HUP INT QUIT TERM + +# Save current configuration +tmp=/tmp/${daemon}-restart.$$ +/opt/vyatta/sbin/vyatta-save-config.pl $tmp || exit 1 + +# Erase portion of active configuration for that protocol +rm -fr $path + +# special case for interface configuration +case $daemon in + rip|ospf) find $vyatta_cfg/interfaces -type d -name $daemon \ + -exec rm -fr '{}' \; + ;; +esac + +# Reload causing configuration to activate - implies commit +/opt/vyatta/sbin/vyatta-load-config.pl $tmp || exit 1 + +# remove tmp file if successful +rm $tmp + diff --git a/templates/protocols/ospf/passive-interface/node.def b/templates/protocols/ospf/passive-interface/node.def index 480d084e..841bd340 100644 --- a/templates/protocols/ospf/passive-interface/node.def +++ b/templates/protocols/ospf/passive-interface/node.def @@ -1,31 +1,17 @@ multi: type: txt help: Set to suppress routing updates on an interface -syntax:expression: exec " \ - if [ -z \"`ip addr | grep $VAR(@) `\" ] && [ x$VAR(@) != xdefault ]; then \ - echo ethernet interface $VAR(@) doesn\\'t exist on this system ; \ - exit 1 ; \ - fi ; " -update:expression: " \ - if [ x$VAR(x) == xdefault ]; then \ - vyatta-vtysh -c \"configure terminal\" \ - -c \"router ospf\" \ - -c \"passive-interface default\"; \ - else \ - vyatta-vtysh -c \"configure terminal\" \ - -c \"router ospf\" \ - -c \"passive-interface $VAR(@)\"; \ - fi; " -delete:expression: " \ - if [ x$VAR(x) == xdefault ]; then \ - vyatta-vtysh -c \"configure terminal\" \ - -c \"router ospf\" \ - -c \"no passive-interface default\"; \ - else \ - vyatta-vtysh -c \"configure terminal\" \ - -c \"router ospf\" \ - -c \"no passive-interface $VAR(@)\"; \ - fi; " -allowed: local -a array; - array=( /sys/class/net/{eth,vmnet}* ) ; - echo -n ${array[@]##*/} +syntax:expression: exec "${vyatta_sbindir}/vyatta-interfaces.pl --check $VAR(@)" +allowed: ${vyatta_sbindir}/vyatta-interfaces.pl --show all +update: if [ -z $VAR(@) ] + then vyatta-vtysh -c "configure terminal" -c "router ospf" \ + -c "passive-interface default"; + else vyatta-vtysh -c "configure terminal" -c "router ospf" \ + -c "passive-interface $VAR(@)" + fi +delete: if [ -z $VAR(@) ] + then vyatta-vtysh -c "configure terminal" -c "router ospf" \ + -c "no passive-interface default" + else vyatta-vtysh -c "configure terminal" -c "router ospf" \ + -c "no passive-interface $VAR(@)" + fi |