summaryrefslogtreecommitdiff
path: root/templates/interfaces/bridge
diff options
context:
space:
mode:
authorMohit Mehta <mohit.mehta@vyatta.com>2010-02-18 17:11:35 -0800
committerMohit Mehta <mohit.mehta@vyatta.com>2010-02-18 17:11:35 -0800
commitfab23c4e4b7e5566e43ccbaa9f4dbc7d1b60fc69 (patch)
tree6f575f9aaf66f266315c00155d5c930fa1af995e /templates/interfaces/bridge
parent8989b47af4fbf6c980003dfe6b721130044b0d6a (diff)
downloadvyatta-cfg-quagga-fab23c4e4b7e5566e43ccbaa9f4dbc7d1b60fc69.tar.gz
vyatta-cfg-quagga-fab23c4e4b7e5566e43ccbaa9f4dbc7d1b60fc69.zip
Fix Bug 5064 can't delete bridge group and membership in one commit
* fix this for eth, eth.vif, bond, bond.vif interfaces * also, bridge-group code for bonding interfaces wasn't changed with commit ec080f99 that re-strucutred bridging code in eth and eth.vifs to fix bug 4708. bridge-group code for bond and bond.vif interfaces is now similar to the fix for 4708
Diffstat (limited to 'templates/interfaces/bridge')
-rw-r--r--templates/interfaces/bridge/node.def9
-rw-r--r--templates/interfaces/bridge/node.tag/address/node.def12
2 files changed, 16 insertions, 5 deletions
diff --git a/templates/interfaces/bridge/node.def b/templates/interfaces/bridge/node.def
index a7d82012..55c961ba 100644
--- a/templates/interfaces/bridge/node.def
+++ b/templates/interfaces/bridge/node.def
@@ -8,10 +8,11 @@ syntax:expression: pattern $VAR(@) "^br[0-9]+$" ; "Must be (br0 - br999)"
create: sudo brctl addbr $VAR(@)
sudo ip link set $VAR(@) up
-delete: if [ -n "`ls /sys/class/net/$VAR(@)/brif`" ]; then
- echo "Interfaces are still assigned to bridge $VAR(@)";
- exit 1;
- fi;
+delete: if ! /opt/vyatta/sbin/vyatta-bridgegroup-depedency.pl \
+ --no-interfaces-assigned \
+ --bridge-interface="$VAR(@)"; then \
+ exit 1
+ fi
sudo ip link set $VAR(@) down;
sudo brctl delbr $VAR(@);
diff --git a/templates/interfaces/bridge/node.tag/address/node.def b/templates/interfaces/bridge/node.tag/address/node.def
index 0c4ba0bd..7278df30 100644
--- a/templates/interfaces/bridge/node.tag/address/node.def
+++ b/templates/interfaces/bridge/node.tag/address/node.def
@@ -5,7 +5,17 @@ help: Set an IP address for this interface
syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr $VAR(@) --dev $VAR(../@)";\
"Invalid IP address/prefix [$VAR(@)] for interface $VAR(../@)"
create: sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update $VAR(@) --dev $VAR(../@)
-delete: sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../@)
+delete:
+ if /opt/vyatta/sbin/vyatta-bridgegroup-depedency.pl \
+ --bridge-notin-proposedcfg \
+ --bridge-interface="$VAR(../@)"; then \
+ # bridge has higher priority than bridge-address so bridge gets deleted
+ # before bridge-address in case the whole of bridge config was deleted.
+ # In that case we do not need to delete address here now
+ exit 0
+ else
+ sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../@)
+ fi
allowed: echo "dhcp <>"
comp_help:Possible completions:
<x.x.x.x/x> Set the IP address and prefix length