<br><br><div class="gmail_quote">On Wed, Jun 19, 2013 at 10:32 AM, Ben Pfaff <span dir="ltr">&lt;<a href="mailto:blp@nicira.com" target="_blank">blp@nicira.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">The previous code had many subtleties that were easy to miss.  This code<br>
is intended to be more obviously correct.<br>
<br>
Signed-off-by: Ben Pfaff &lt;<a href="mailto:blp@nicira.com">blp@nicira.com</a>&gt;<br></div></blockquote><div>I was about to send this. Looks good to me, please apply.</div><div><br></div><div>Thanks,</div><div>Guru</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
</div>---<br>
v1-&gt;v2: Regenerate against current master.<br>
<br>
diff --git a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync<br>
index 46b729d..1c8ad51 100755<br>
<div class="im">--- a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync<br>
+++ b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync<br>
@@ -1,5 +1,5 @@<br>
 #!/usr/bin/python<br>
-# Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+# Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
 #<br>
 # Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
 # you may not use this file except in compliance with the License.<br>
</div>@@ -294,27 +294,27 @@ def main():<br>
<div class="im"><br>
         new_bridges = {}<br>
         for row in idl.tables[&quot;Bridge&quot;].rows.itervalues():<br>
-            if <a href="http://row.name" target="_blank">row.name</a> in bridges:<br>
</div>-                bridge_id_cache = bridges[<a href="http://row.name" target="_blank">row.name</a>]<br>
<div class="im">-            else:<br>
-                # New bridge.<br>
+            bridge_id = bridges.get(<a href="http://row.name" target="_blank">row.name</a>)<br>
+            if bridge_id is None:<br>
+                # Configure the new bridge.<br>
                 update_fail_mode(row)<br>
                 update_in_band_mgmt(row)<br>
</div>-                bridge_id_cache = get_bridge_id(<a href="http://row.name" target="_blank">row.name</a>)<br>
<br>
-            bridge_id = bridge_id_cache<br>
<div class="im">-            if bridge_id is None:<br>
-                bridge_id = row.external_ids.get(&quot;xs-network-uuids&quot;)<br>
-                if bridge_id and len(bridge_id.split(&quot;;&quot;)) &gt; 1:<br>
-                    bridge_ids = bridge_id.split(&quot;;&quot;)<br>
</div>-                    bridge_id = get_single_bridge_id(bridge_ids, <a href="http://row.name" target="_blank">row.name</a>, &quot;&quot;)<br>
-                if bridge_id:<br>
-                    bridge_id_cache = bridge_id<br>
<div class="im">+                # Get the correct bridge_id, if we can.<br>
+                bridge_id = get_bridge_id(<a href="http://row.name" target="_blank">row.name</a>)<br>
+                if bridge_id is None:<br>
+                    xs_network_uuids = row.external_ids.get(&quot;xs-network-uuids&quot;)<br>
+                    if xs_network_uuids:<br>
+                        bridge_ids = xs_network_uuids.split(&quot;;&quot;)<br>
+                        if len(bridge_ids) == 1:<br>
+                            bridge_id = bridge_ids[0]<br>
+                        else:<br>
+                            bridge_id = get_single_bridge_id(bridge_ids,<br>
+                                                             <a href="http://row.name" target="_blank">row.name</a>)<br>
+            set_external_id(row, &quot;bridge-id&quot;, bridge_id)<br>
<br>
             if bridge_id is not None:<br>
-                set_external_id(row, &quot;bridge-id&quot;, bridge_id.split(&quot;;&quot;)[0])<br>
-<br>
</div>-            new_bridges[<a href="http://row.name" target="_blank">row.name</a>] = bridge_id_cache<br>
<div class="im HOEnZb">+                new_bridges[<a href="http://row.name" target="_blank">row.name</a>] = bridge_id<br>
         bridges = new_bridges<br>
<br>
         iface_by_name = {}<br>
--<br>
1.7.2.5<br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
dev mailing list<br>
<a href="mailto:dev@openvswitch.org">dev@openvswitch.org</a><br>
<a href="http://openvswitch.org/mailman/listinfo/dev" target="_blank">http://openvswitch.org/mailman/listinfo/dev</a><br>
</div></div></blockquote></div><br>