#! /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