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>
Tue, 5 Oct 2010 23:39:58 +0000 (16:39 -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 c87171f..f91801d 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 = {}