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

[Xen-API] [PATCH 28 of 33] interface-reconfigure: do not sort the result in pif_get_bond_slaves



it is only required in one caller so perform the sort there.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

diff -r 7fbd1addf5d8 -r 7eba221bc261 scripts/InterfaceReconfigure.py
--- a/scripts/InterfaceReconfigure.py   Fri Dec 18 14:16:32 2009 +0000
+++ b/scripts/InterfaceReconfigure.py   Fri Dec 18 14:16:32 2009 +0000
@@ -449,23 +449,7 @@
     if not bondrec:
         raise Error("No bond record for bond master PIF")
 
-    # build a list of slave's pifs
-    slave_pifs = bondrec['slaves']
-
-    # Ensure any currently attached slaves are listed in the opposite order to 
the order in
-    # which they were attached.  The first slave attached must be the last 
detached since
-    # the bond is using its MAC address.
-    try:
-        attached_slaves = open("/sys/class/net/%s/bonding/slaves" % 
pifrec['device']).readline().split()
-        for slave in attached_slaves:
-            pifs = [p for p in db().get_pifs_by_device(slave) if not 
pif_is_vlan(p)]
-            slave_pif = pifs[0]
-            slave_pifs.remove(slave_pif)
-            slave_pifs.insert(0, slave_pif)
-    except IOError:
-        pass
-
-    return slave_pifs
+    return bondrec['slaves']
 
 #
 # VLAN PIFs
diff -r 7fbd1addf5d8 -r 7eba221bc261 scripts/interface-reconfigure
--- a/scripts/interface-reconfigure     Fri Dec 18 14:16:32 2009 +0000
+++ b/scripts/interface-reconfigure     Fri Dec 18 14:16:32 2009 +0000
@@ -570,6 +570,27 @@
             log("Invalid value for mtu = %s" % oc['mtu'])
     return None
 
+def pif_get_bond_slaves_sorted(pif):
+    pifrec = db().get_pif_record(pif)
+
+    # build a list of slave's pifs
+    slave_pifs = pif_get_bond_slaves(pif)
+
+    # Ensure any currently attached slaves are listed in the opposite order to 
the order in
+    # which they were attached.  The first slave attached must be the last 
detached since
+    # the bond is using its MAC address.
+    try:
+        attached_slaves = open("/sys/class/net/%s/bonding/slaves" % 
pifrec['device']).readline().split()
+        for slave in attached_slaves:
+            pifs = [p for p in db().get_pifs_by_device(slave) if not 
pif_is_vlan(p)]
+            slave_pif = pifs[0]
+            slave_pifs.remove(slave_pif)
+            slave_pifs.insert(0, slave_pif)
+    except IOError:
+        pass
+
+    return slave_pifs
+
 def configure_bond_interface(pif):
     """Write the configuration for a bond interface.
 
@@ -755,7 +776,7 @@
 
     # Need to bring down bond slaves first since the bond device
     # must be up to enslave/unenslave.
-    bond_slaves = pif_get_bond_slaves(pif)
+    bond_slaves = pif_get_bond_slaves_sorted(pif)
     log("bond slaves of %s - %s" % (db().get_pif_record(pif)['device'], 
[pif_netdev_name(s) for s in bond_slaves]))
     for slave in bond_slaves:
         slave_interface = pif_netdev_name(slave)

_______________________________________________
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®.