xenserver: Update network UUIDs whenever XAPI restarts.
authorBen Pfaff <blp@nicira.com>
Fri, 4 Jun 2010 17:02:15 +0000 (10:02 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 4 Jun 2010 17:02:15 +0000 (10:02 -0700)
XAPI calls the "update" method of the vswitch-cfg-update plugin whenever it
starts or restarts.  Thus, this is a good place to trigger updating network
UUIDs.  This commit implements that behavior.  This should fix the problem
of network UUIDs not being updated on pool join, since XAPI restarts when
it joins a pool.

When XenServer 5.5 support is no longer interesting, we should integrate
the refresh-network-uuids script into the XAPI plugin.

Lightly tested, works for me on 5.6.810-31078p.

See-also: http://openvswitch.org/pipermail/dev_openvswitch.org/2010-June/002216.html
Suggested-by: Rob Hoes <rob.hoes@citrix.com>
Bug #2097.

xenserver/etc_xapi.d_plugins_openvswitch-cfg-update

index 04d0774be2aaab00d954ea54a85b284c32c07dc5..ebc1b36bcd2faa0a55641c8b2c41e584739b90a4 100755 (executable)
@@ -39,6 +39,15 @@ def delete_cacert():
         pass
 
 def update(session, args):
+    # Refresh bridge network UUIDs in case this host joined or left a pool.
+    script = "/usr/share/openvswitch/scripts/refresh-network-uuids"
+    try:
+        retval = subprocess.call(script)
+        if retval != 0:
+            syslog.syslog("%s exited with status %d" % (script, retval))
+    except OSError, e:
+        syslog.syslog("%s: failed to execute (%s)" % (script, e.strerror))
+
     pools = session.xenapi.pool.get_all()
     # We assume there is only ever one pool...
     if len(pools) == 0: