ovsdb: Always set *dbp to null on failure in ovsdb_file_open__().
[openvswitch] / xenserver / etc_init.d_vswitch
index eb5dcb32a518aebda2ee3f5a92982d46a9e0464d..304eabb1cf962b5fd0da18aee5eedeae5dd0aa23 100755 (executable)
@@ -46,7 +46,7 @@ test -e /etc/sysconfig/vswitch && . /etc/sysconfig/vswitch
 
 # Config variables specific to ovs-vswitchd
 : ${VSWITCHD_OVSDB_SERVER:=unix:/var/run/ovsdb-server}
-: ${VSWITCHD_OVSDB_SCHEMA:=/usr/share/vswitch/vswitch-idl.ovsschema}
+: ${VSWITCHD_OVSDB_SCHEMA:=/usr/share/vswitch/vswitch.ovsschema}
 : ${VSWITCHD_PIDFILE:=/var/run/ovs-vswitchd.pid}
 : ${VSWITCHD_RUN_DIR:=/var/xen/vswitch}
 : ${VSWITCHD_PRIORITY:=-10}
@@ -318,6 +318,16 @@ EOF
     esac
 }
 
+function set_system_uuid {
+    system_uuid=$(. /etc/xensource-inventory && echo $INSTALLATION_UUID)
+    if test -n "$system_uuid"; then
+        action "Configuring Open vSwitch system UUID" true
+        $vsctl --no-wait set Open_vSwitch . external-ids:system-uuid="$system_uuid"
+    else
+        action "Configuring Open vSwitch system UUID" false
+    fi
+}
+
 function start {
     if [ "$FORCE_COREFILES" = "y" ]; then
         turn_on_corefiles
@@ -337,6 +347,9 @@ function start {
 
         action "Creating empty database $OVSDB_SERVER_DB" true
         $ovsdb_tool -vANY:console:emer create "$OVSDB_SERVER_DB" "$VSWITCHD_OVSDB_SCHEMA"
+    else
+        # Upgrade or downgrade schema and compact database.
+        $ovsdb_tool -vANY:console:emer convert "$OVSDB_SERVER_DB" "$VSWITCHD_OVSDB_SCHEMA"
     fi
 
     start_ovsdb_server
@@ -348,6 +361,8 @@ function start {
         done
     fi
 
+    set_system_uuid
+
     start_vswitchd
     start_brcompatd
     touch /var/lock/subsys/vswitch
@@ -386,9 +401,9 @@ case "$1" in
         strace -p $(cat "$BRCOMPATD_PIDFILE") "$@"
         ;;
     status)
-        status -p ovsdb-server.pid ovsdb-server
-        status -p ovs-vswitchd.pid ovs-vswitchd
-        status -p ovs-brcompatd.pid ovs-brcompatd
+        status -p "$OVSDB_SERVER_PIDFILE" ovsdb-server
+        status -p "$VSWITCHD_PIDFILE" ovs-vswitchd
+        status -p "$BRCOMPATD_PIDFILE" ovs-brcompatd
         ;;
     version)
         /usr/sbin/ovsdb-server -V