<br><br><div class="gmail_quote">On Wed, Jun 19, 2013 at 10:32 AM, Ben Pfaff <span dir="ltr"><<a href="mailto:blp@nicira.com" target="_blank">blp@nicira.com</a>></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 <<a href="mailto:blp@nicira.com">blp@nicira.com</a>><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->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 "License");<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["Bridge"].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("xs-network-uuids")<br>
- if bridge_id and len(bridge_id.split(";")) > 1:<br>
- bridge_ids = bridge_id.split(";")<br>
</div>- bridge_id = get_single_bridge_id(bridge_ids, <a href="http://row.name" target="_blank">row.name</a>, "")<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("xs-network-uuids")<br>
+ if xs_network_uuids:<br>
+ bridge_ids = xs_network_uuids.split(";")<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, "bridge-id", bridge_id)<br>
<br>
if bridge_id is not None:<br>
- set_external_id(row, "bridge-id", bridge_id.split(";")[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>