xenserver: Fix iteration of dictionary.
[sliver-openvswitch.git] / xenserver / etc_xapi.d_plugins_openvswitch-cfg-update
index 60cd716..ef4d11a 100755 (executable)
@@ -86,24 +86,22 @@ def update(session, args):
 
     bton = {}
 
-    for n in session.xenapi.network.get_all():
-        rec = session.xenapi.network.get_record(n)
+    for rec in session.xenapi.network.get_all_records().values():
         try:
             bton[rec['bridge']] = rec
         except KeyError:
             pass
 
-    # If new controller, get managagment MAC addresses from XAPI now
+    # If new controller, get management MAC addresses from XAPI now
     # in case fail_mode set to secure which may affect XAPI access
     mgmt_bridge = None
     host_mgmt_mac = None
     host_mgmt_device = None
     pool_mgmt_macs = {}
     if new_controller:
-        for n in session.xenapi.PIF.get_all():
-            rec = session.xenapi.PIF.get_record(n)
-            if rec.get('management', False):
-                pool_mgmt_macs[rec.get('MAC')] = rec.get('device')
+        recs = session.xenapi.PIF.get_all_records_where('field "management"="true"')
+        for rec in recs.itervalues():
+            pool_mgmt_macs[rec.get('MAC')] = rec.get('device')
 
     dib_changed = False
     fail_mode_changed = False