xenserver: Don't monitor external-ids until XAPI is up
authorJustin Pettit <jpettit@nicira.com>
Fri, 10 Sep 2010 21:20:49 +0000 (14:20 -0700)
committerJustin Pettit <jpettit@nicira.com>
Fri, 10 Sep 2010 21:20:49 +0000 (14:20 -0700)
monitor-external-ids can't complete all its tasks until XAPI is up.  The
daemon is usually started before XAPI, so it can miss events.  This
commit causes the daemon to block until XAPI is finished initializing.

xenserver/usr_share_openvswitch_scripts_monitor-external-ids

index c87171f06ad22c98dc23c5b1d7db035a1ee1acba..f91801d22ebf534221796215d28b7b0c097bdbc7 100755 (executable)
 # Bridge table and duplicates its value to the preferred "xs-network-uuids".
 
 import getopt
+import os
 import subprocess
 import sys
 import syslog
+import time
 
 import XenAPI
 
@@ -189,6 +191,11 @@ def main(argv):
     idl = ovs.db.idl.Idl(remote, "Open_vSwitch", monitor_uuid_schema_cb)
 
     ovs.daemon.daemonize()
+
+    # This daemon is usually started before XAPI, but to complete our
+    # tasks, we need it.  Wait here until it's up.
+    while not os.path.exists("/var/run/xapi_init_complete.cookie"):
+        time.sleep(1)
  
     bridges = {}
     interfaces = {}