Catalli's threaded switch
[sliver-openvswitch.git] / xenserver / usr_share_openvswitch_scripts_monitor-external-ids
index 28aaf78..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
 
@@ -131,6 +133,12 @@ def keep_table_columns(schema, table_name, column_types):
         if not column:
             raise error.Error("%s table schema lacks %s column"
                               % (table_name, column_name))
+        if column.type != column_type:
+            raise error.Error("%s column in %s table has type \"%s\", "
+                              "expected type \"%s\""
+                              % (column_name, table_name,
+                                 column.type.toEnglish(),
+                                 column_type.toEnglish()))
         new_columns[column_name] = column
     table.columns = new_columns
     return table
@@ -183,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 = {}