[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-API] [PATCH 1/4] xenserver: Kill bond slaves' dhclients when bringing up bond master.



From 5a6a6e0aeb9af861b778de16bcad0fcf199f5eec Mon Sep 17 00:00:00 2001
From: Ben Pfaff <blp@xxxxxxxxxx>
Date: Fri, 16 Jul 2010 09:22:23 -0700
Subject: [PATCH 1/4] xenserver: Kill bond slaves' dhclients when bringing up bond master.

This fixes the converse of the problem addressed by commit fe19e820
"xenserver: Kill bond master's dhclient when bringing up bond slave".  In
that commit's log message, I claimed that the converse was not a problem,
but I was wrong.  I must have screwed up in testing, because it really is
a problem.  This commit fixes it.

Signed-off-by: Ben Pfaff <blp@xxxxxxxxxx>
Acked-by: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
CC: Dominic Curran <dominic.curran@xxxxxxxxxx>
Reported-by: Michael Mao <mmao@xxxxxxxxxx>
Bug #2668.
---
scripts/InterfaceReconfigureVswitch.py |   18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/scripts/InterfaceReconfigureVswitch.py b/scripts/InterfaceReconfigureVswitch.py
index a8dff53..4766850 100644
--- a/scripts/InterfaceReconfigureVswitch.py
+++ b/scripts/InterfaceReconfigureVswitch.py
@@ -431,17 +431,25 @@ class DatapathVswitch(Datapath):
    def bring_down_existing(self):
        # interface-reconfigure is never explicitly called to down a
        # bond master.  However, when we are called to up a slave it
-        # is implicit that we are destroying the master.
+        # is implicit that we are destroying the master.  Conversely,
+        # when we are called to up a bond is is implicit that we are
+        # taking down the slaves.
        #
-        # This is (only) important in the case where the bond master
-        # uses DHCP.  We need to kill the dhclient process, otherwise
-        # bringing the bond master back up later will fail because
-        # ifup will refuse to start a duplicate dhclient.
+        # This is (only) important in the case where the device being
+        # implicitly taken down uses DHCP.  We need to kill the
+        # dhclient process, otherwise performing the inverse operation
+        # later later will fail because ifup will refuse to start a
+        # duplicate dhclient.
        bond_masters = pif_get_bond_masters(self._pif)
        for master in bond_masters:
log("action_up: bring down bond master %s" % (pif_netdev_name(master)))
            run_command(["/sbin/ifdown", pif_bridge_name(master)])

+        bond_slaves = pif_get_bond_slaves(self._pif)
+        for slave in bond_slaves:
+ log("action_up: bring down bond slave %s" % (pif_netdev_name(slave)))
+            run_command(["/sbin/ifdown", pif_bridge_name(slave)])
+
    def configure(self):
        # Bring up physical devices. ovs-vswitchd initially enables or
        # disables bond slaves based on whether carrier is detected
--
1.6.3.3


_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.