summaryrefslogtreecommitdiff
path: root/xenserver
diff options
context:
space:
mode:
authorEthan Jackson <ethan@nicira.com>2012-03-02 15:24:32 -0800
committerEthan Jackson <ethan@nicira.com>2012-03-09 13:37:38 -0800
commit330d7cf413bf30632fa5078ab6b562792c2a663b (patch)
tree7a58f300a2a30e72783b0f84996ba797a387ec20 /xenserver
parentd2cee5a48ebe850ccb72cd1e860a90e5ec0248fd (diff)
downloadopenvswitch-330d7cf413bf30632fa5078ab6b562792c2a663b.tar.gz
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 <ethan@nicira.com>
Diffstat (limited to 'xenserver')
-rwxr-xr-xxenserver/usr_share_openvswitch_scripts_ovs-xapi-sync27
1 files changed, 13 insertions, 14 deletions
diff --git a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync
index 79a6bde12..585a89469 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 = {}