#!/sbin/runscript depend() { need localmount } #% ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ # --remote=db:Open_vSwitch,manager_options \ # --private-key=db:SSL,private_key \ # --certificate=db:SSL,certificate \ # --bootstrap-ca-cert=db:SSL,ca_cert \ # --pidfile --detach local_start() { local remote_punix=${DB_SOCKET:+"--remote=punix:${DB_SOCKET}"} local remote_db=${REMOTE_DB:+"--remote=db:${REMOTE_DB}"} local private_key=${PRIVATE_KEY:+"--private-key=${PRIVATE_KEY}"} local certificate=${CERTIFICATE:+"--certificate=${CERTIFICATE}"} local bootstrap_ca_cert=${BOOTSTRAP_CA_CERT:+"--bootstrap-ca-cert=${BOOTSTRAP_CA_CERT}"} ebegin "Starting Open vSwitch DB server" checkpath ${DB_SOCKET%/*} start-stop-daemon --start --quiet --exec /usr/sbin/ovsdb-server -- ${remote_punix} ${remote_db} ${private_key} ${certificate} ${bootstrap_ca_cert} --pidfile --detach eend ${?} } start() { if check; then local_start else init local_start ebegin "Initing Open vSwitch" ewaitfile 30 ${DB_SOCKET} if [[ ${?} -eq 0 ]]; then /usr/bin/ovs-vsctl --no-wait --db="unix:${DB_SOCKET}" init eend ${?} else eend 1 stop rm "${OVS_CONF_DIR}/conf.db" fi fi } stop() { ebegin "Stopping Open vSwitch DB server" start-stop-daemon --stop --quiet --name ovsdb-server eend ${?} } check() { ebegin "Checking for Open vSwitch configuration directory \"${OVS_CONF_DIR}\"" if [ -d "${OVS_CONF_DIR}" ]; then eend 0 ebegin "Checking for Open vSwitch configuration database \"${OVS_CONF_DIR}/conf.db\"" if [ -e "${OVS_CONF_DIR}/conf.db" ]; then eend 0 return 0 else eend 1 return 1 fi else eend 1 return 1 fi } init() { ebegin "Checking for Open vSwitch configuration directory \"${OVS_CONF_DIR}\"" if [ -d "${OVS_CONF_DIR}" ]; then eend 0 else ebegin "Creating Open vSwitch configuration directory \"${OVS_CONF_DIR}\"" mkdir -p "${OVS_CONF_DIR}" eend 0 fi ebegin "Checking for Open vSwitch configuration database \"${OVS_CONF_DIR}/conf.db\"" if [ -e "${OVS_CONF_DIR}/conf.db" ]; then eend 0 else ebegin "Creating Open vSwitch configuration database \"${OVS_CONF_DIR}/conf.db\"" ovsdb-tool create "${OVS_CONF_DIR}/conf.db" /usr/share/openvswitch/vswitch.ovsschema eend 0 fi }