From: Ethan Jackson Date: Fri, 17 Sep 2010 15:23:32 +0000 (-0700) Subject: xenserver: monitor-external-ids remove redundant ovs-vsctl calls X-Git-Tag: v1.1.0~1123 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=00456ddda4110f7f75ea9f8a703b31c7f2df7649 xenserver: monitor-external-ids remove redundant ovs-vsctl calls The number of ovs-vsctl calls required to add a new vif in monitor-external-ids grew linearly with the number of vifs in the system. Changed to only do O(1) ovs-vsctl calls per vif addition. --- diff --git a/xenserver/usr_share_openvswitch_scripts_monitor-external-ids b/xenserver/usr_share_openvswitch_scripts_monitor-external-ids index a28ce6090..a0aad7a0e 100755 --- a/xenserver/usr_share_openvswitch_scripts_monitor-external-ids +++ b/xenserver/usr_share_openvswitch_scripts_monitor-external-ids @@ -227,13 +227,15 @@ def main(argv): if name not in bridges: update_network_uuids(name, ids) - update_bridge_id(name, ids) + if (name not in bridges) or (bridges[name] != ids): + update_bridge_id(name, ids) bridges = new_bridges if interfaces != new_interfaces: for name,ids in new_interfaces.items(): - update_iface_id(name, ids) + if (name not in interfaces) or (interfaces[name] != ids): + update_iface_id(name, ids) interfaces = new_interfaces if __name__ == '__main__':