if test -f "$pidfile"; then
local pid=$(cat "$pidfile")
action "Killing `basename $BINARY` ($pid)" kill $pid
+ for delay in .1 .25 .65 1 1 1 1; do
+ if kill -0 $pid >/dev/null 2>&1; then
+ sleep $delay
+ else
+ break
+ fi
+ done
rm -f "$pidfile"
fi
}
esac
}
-function set_system_uuid {
- if test -n "$INSTALLATION_UUID"; then
- action "Configuring Open vSwitch system UUID" true
- $vsctl --no-wait set Open_vSwitch . external-ids:system-uuid="$INSTALLATION_UUID"
+function set_system_ids {
+ if [ -f /etc/xensource-inventory ]; then
+ action "Configuring Open vSwitch system IDs" true
+ $vsctl --no-wait set Open_vSwitch . \
+ external-ids:system-type="$PRODUCT_BRAND" \
+ external-ids:system-version="$PRODUCT_VERSION-$BUILD_NUMBER" \
+ external-ids:system-id="$INSTALLATION_UUID" \
+ external-ids:xs-system-uuid="$INSTALLATION_UUID"
else
- action "Configuring Open vSwitch system UUID" false
+ action "Configuring Open vSwitch system IDs" false
fi
}
done
fi
- set_system_uuid
+ set_system_ids
start_vswitchd
if [ "${ENABLE_BRCOMPAT}" = "y" ] ; then
start_brcompatd
fi
+
+ # Start daemon to monitor external ids
+ PYTHONPATH=/usr/share/openvswitch/python \
+ /usr/share/openvswitch/scripts/monitor-external-ids \
+ --pidfile --detach "$VSWITCHD_OVSDB_SERVER"
+
touch /var/lock/subsys/openvswitch
}
stop_daemon BRCOMPATD "$brcompatd"
stop_daemon VSWITCHD "$vswitchd"
stop_daemon OVSDB_SERVER "$ovsdb_server"
+ if [ -e /var/run/openvswitch/monitor-external-ids.pid ]; then
+ kill `cat /var/run/openvswitch/monitor-external-ids.pid`
+ fi
rm -f /var/lock/subsys/openvswitch
}
restart)
restart
;;
+ reload|force-reload)
+ # Nothing to do--ovs-vswitchd and ovsdb-server keep their configuration
+ # up-to-date all the time.
+ ;;
strace-vswitchd)
shift
strace -p $(cat "$VSWITCHD_PIDFILE") "$@"
/usr/sbin/ovs-brcompatd -V
;;
help)
- printf "openvswitch [start|stop|restart|unload|status|version]\n"
+ printf "openvswitch [start|stop|restart|reload|force-reload|status|version]\n"
;;
*)
printf "Unknown command: $1\n"