From: Ethan Jackson Date: Fri, 2 Mar 2012 23:24:32 +0000 (-0800) Subject: ovs-xapi-sync: Cache nicira-bridge-id in ovs-xapi-sync. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=330d7cf413bf30632fa5078ab6b562792c2a663b;p=openvswitch ovs-xapi-sync: Cache nicira-bridge-id in ovs-xapi-sync. Communicating with xapi from Python can be quite expensive so it makes sense to cache this data if convenient. Signed-off-by: Ethan Jackson --- diff --git a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync index 79a6bde1..585a8946 100755 --- a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync +++ b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync @@ -192,14 +192,6 @@ def update_in_band_mgmt(row): row.other_config = other_config -def update_bridge_id(row): - id_ = get_bridge_id(row.name, row.external_ids.get("xs-network-uuids")) - if not id_: - return - - set_external_id(row, "bridge-id", id_.split(";")[0]) - - def keep_table_columns(schema, table_name, columns): table = schema.tables.get(table_name) if not table: @@ -264,7 +256,7 @@ def main(): signal.signal(signal.SIGHUP, handler) - bridges = {} # Map from bridge name to xs_network_uuids + bridges = {} # Map from bridge name to nicira-bridge-id iface_ids = {} # Map from xs-vif-uuid to iface-id vm_ids = {} # Map from xs-vm-uuid to vm-id seqno = idl.change_seqno # Sequence number when we last processed the db @@ -288,15 +280,22 @@ def main(): new_bridges = {} for row in idl.tables["Bridge"].rows.itervalues(): - old_xnu = bridges.get(row.name) - new_xnu = row.external_ids.get("xs-network-uuids", "") - if old_xnu is None: + if row.name in bridges: + nbd = bridges[row.name] + else: # New bridge. update_fail_mode(row) update_in_band_mgmt(row) + nbd = get_bridge_id(row.name) + + bridge_id = nbd + if bridge_id is None: + bridge_id = row.external_ids.get("xs-network-uuids") + + if bridge_id is not None: + set_external_id(row, "bridge-id", bridge_id.split(";")[0]) - update_bridge_id(row) - new_bridges[row.name] = new_xnu + new_bridges[row.name] = nbd bridges = new_bridges iface_by_name = {}