summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2009-02-13 11:34:28 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2009-02-13 11:34:28 -0800
commit9773974965c7b639a125b44be3728d00af48e929 (patch)
treecec7818e22ee6ebc3a7613fc3081f67fb8cf0a7d
parent5db776a29c90d05f864645e7e171840660f4b268 (diff)
parent0733bceb217bca1ceb094fb124b89c53cb7cdd25 (diff)
downloadvyatta-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.am1
-rw-r--r--debian/changelog14
-rwxr-xr-xscripts/vyatta-protocol2
-rwxr-xr-xscripts/vyatta-reload-proto-config66
-rw-r--r--templates/protocols/ospf/passive-interface/node.def42
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