From f04f9af065c44d5a582b65097813dd70c5adbb56 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 19 Jun 2013 10:49:36 -0700 Subject: [PATCH] ovs-xapi-sync: Make bridge-id caching logic easier to understand. The previous code had many subtleties that were easy to miss. This code is intended to be more obviously correct. Signed-off-by: Ben Pfaff Tested-by: Gurucharan Shetty --- ...sr_share_openvswitch_scripts_ovs-xapi-sync | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync index 46b729dac..1c8ad51a4 100755 --- a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync +++ b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. +# Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -294,27 +294,27 @@ def main(): new_bridges = {} for row in idl.tables["Bridge"].rows.itervalues(): - if row.name in bridges: - bridge_id_cache = bridges[row.name] - else: - # New bridge. + bridge_id = bridges.get(row.name) + if bridge_id is None: + # Configure the new bridge. update_fail_mode(row) update_in_band_mgmt(row) - bridge_id_cache = get_bridge_id(row.name) - bridge_id = bridge_id_cache - if bridge_id is None: - bridge_id = row.external_ids.get("xs-network-uuids") - if bridge_id and len(bridge_id.split(";")) > 1: - bridge_ids = bridge_id.split(";") - bridge_id = get_single_bridge_id(bridge_ids, row.name, "") - if bridge_id: - bridge_id_cache = bridge_id + # Get the correct bridge_id, if we can. + bridge_id = get_bridge_id(row.name) + if bridge_id is None: + xs_network_uuids = row.external_ids.get("xs-network-uuids") + if xs_network_uuids: + bridge_ids = xs_network_uuids.split(";") + if len(bridge_ids) == 1: + bridge_id = bridge_ids[0] + else: + bridge_id = get_single_bridge_id(bridge_ids, + row.name) + set_external_id(row, "bridge-id", bridge_id) if bridge_id is not None: - set_external_id(row, "bridge-id", bridge_id.split(";")[0]) - - new_bridges[row.name] = bridge_id_cache + new_bridges[row.name] = bridge_id bridges = new_bridges iface_by_name = {} -- 2.43.0