Merge commit '10a89ef04df5669c5cdd02f786150a7ab8454e01'
[sliver-openvswitch.git] / xenserver / etc_init.d_openvswitch
index a199825..9c0fe80 100755 (executable)
@@ -54,7 +54,7 @@ start_ovs_xapi_sync () {
 }
 
 start () {
-    set $ovs_ctl ${1-start}
+    set ovs_ctl ${1-start}
     set "$@" --system-id="$INSTALLATION_UUID"
     set "$@" --system-type="$PRODUCT_BRAND"
     set "$@" --system-version="$PRODUCT_VERSION-$BUILD_NUMBER"
@@ -81,7 +81,7 @@ start () {
 
     start_ovs_xapi_sync
 
-    $ovs_ctl --protocol=gre enable-protocol
+    ovs_ctl --protocol=gre enable-protocol
 
     touch /var/lock/subsys/openvswitch
 }
@@ -102,12 +102,21 @@ force_reload_kmod () {
 }
 
 stop () {
-    $ovs_ctl stop
+    ovs_ctl stop
     stop_daemon ovs-xapi-sync
     rm -f /var/lock/subsys/openvswitch
 }
 
-ovs_ctl=/usr/share/openvswitch/scripts/ovs-ctl
+restart () {
+    if [ "$1" = "--save-flows=yes" ]; then
+        stop_daemon ovs-xapi-sync
+        start restart
+    else
+        stop
+        start
+    fi
+}
+
 case $1 in
     start)
         start
@@ -116,8 +125,8 @@ case $1 in
         stop
         ;;
     restart)
-        stop
-        start
+        shift
+        restart "$@"
         ;;
     reload|force-reload)
         # The main OVS daemons keep up-to-date, but ovs-xapi-sync needs help.
@@ -127,10 +136,10 @@ case $1 in
         fi
         ;;
     status)
-        $ovs_ctl status && daemon_status ovs-xapi-sync
+        ovs_ctl status && daemon_status ovs-xapi-sync
         ;;
     version)
-        $ovs_ctl version
+        ovs_ctl version
         ;;
     force-reload-kmod)
         force_reload_kmod