X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=xenserver%2Fetc_init.d_openvswitch;h=aa65657ec5b6e8e146966b65b307478394e80e21;hb=bf42f674e77a4cb01863b3f975d3258b3c89dd58;hp=941a94d2876d6a90703dd1c020e9724fe42d5a94;hpb=43bb5f82ec051f335a5c5a8975150ec6352d5d73;p=sliver-openvswitch.git diff --git a/xenserver/etc_init.d_openvswitch b/xenserver/etc_init.d_openvswitch index 941a94d28..aa65657ec 100755 --- a/xenserver/etc_init.d_openvswitch +++ b/xenserver/etc_init.d_openvswitch @@ -27,7 +27,7 @@ # Short-Description: Open vSwitch switch ### END INIT INFO -. /usr/share/openvswitch/scripts/ovs-lib.sh || exit 1 +. /usr/share/openvswitch/scripts/ovs-lib || exit 1 . /etc/xensource-inventory test -e /etc/sysconfig/openvswitch && . /etc/sysconfig/openvswitch @@ -43,15 +43,25 @@ case `cat /etc/xensource/network.conf` in ;; esac +start_ovs_xapi_sync () { + if daemon_is_running ovs-xapi-sync; then + log_success_msg "ovs-xapi-sync is already running" + else + PYTHONPATH=/usr/share/openvswitch/python \ + /usr/share/openvswitch/scripts/ovs-xapi-sync \ + --log-file --pidfile --detach --monitor unix:/var/run/openvswitch/db.sock + fi +} + start () { - set $ovs_ctl start + set $ovs_ctl ${1-start} set "$@" --system-id="$INSTALLATION_UUID" set "$@" --system-type="$PRODUCT_BRAND" set "$@" --system-version="$PRODUCT_VERSION-$BUILD_NUMBER" set "$@" --external-id=xs-system-uuid="$INSTALLATION_UUID" set "$@" --daemon-cwd=/var/xen/openvswitch if test X"$FORCE_COREFILES" != X; then - set "$@" --force-oorefiles="$FORCE_COREFILES" + set "$@" --force-corefiles="$FORCE_COREFILES" fi if test X"$OVSDB_SERVER_PRIORITY" != X; then set "$@" --ovsdb-server-priority="$OVSDB_SERVER_PRIORITY" @@ -68,20 +78,28 @@ start () { fi "$@" - if daemon_is_running ovs-xapi-sync; then - log_success_msg "ovs-xapi-sync is already running" - else - PYTHONPATH=/usr/share/openvswitch/python \ - /usr/share/openvswitch/scripts/ovs-xapi-sync \ - --pidfile --detach --monitor unix:/var/run/openvswitch/db.sock - fi + start_ovs_xapi_sync - # Allow GRE traffic. - /sbin/iptables -I INPUT -p gre -j ACCEPT + $ovs_ctl --protocol=gre enable-protocol touch /var/lock/subsys/openvswitch } +force_reload_kmod () { + start force-reload-kmod + + # Restart the high-availability daemon if it is running. Otherwise + # it loses its heartbeat and reboots the system after a few minutes. + if pidof xhad >/dev/null && test -e /etc/xensource/xhad.conf; then + PATH=$PATH:/opt/xensource/xha + action "Stopping HA daemon" ha_stop_daemon + action "Starting HA daemon" ha_start_daemon + fi + + action "Stopping ovs-xapi-sync" stop_daemon ovs-xapi-sync + action "Starting ovs-xapi-sync" start_ovs_xapi_sync +} + stop () { $ovs_ctl stop stop_daemon ovs-xapi-sync @@ -102,10 +120,9 @@ case $1 in ;; reload|force-reload) # The main OVS daemons keep up-to-date, but ovs-xapi-sync needs help. - pidfile=/var/run/openvswitch/ovs-xapi-sync.pid - if test -e "$pidfile"; then - pid=`cat "$pidfile"` - action "Configuring Open vSwitch external IDs" kill -HUP $pid + if daemon_is_running ovs-xapi-sync; then + action "Configuring Open vSwitch external IDs" \ + ovs-appctl -t ovs-xapi-sync flush-cache fi ;; status) @@ -115,7 +132,7 @@ case $1 in $ovs_ctl version ;; force-reload-kmod) - $ovs_ctl force_reload_kmod + force_reload_kmod ;; help) printf "openvswitch [start|stop|restart|reload|force-reload|status|version]\n"