[pve-devel] [PATCH ovs 1/2] remove openvswitch-switch init script

Fabian Grünbichler f.gruenbichler at proxmox.com
Fri Aug 26 12:14:20 CEST 2016


the init script serves exactly the same purpose as the
openvswitch-nonetwork systemd unit - having both does not
seem to break anything, but it is racy and confusing.
---
Note: for testing the removal, a version bump is needed

Testing this on complicated setups, especially ones with
the ordering cycle/boot problem would be nice.

 pvepatches/delete-openvswitch-switch-init.patch | 153 ++++++++++++++++++++++++
 pvepatches/install-systemd-services.patch       |   5 +-
 pvepatches/remove-init-script-on-upgrades.patch |  15 +++
 pvepatches/series                               |   4 +-
 4 files changed, 172 insertions(+), 5 deletions(-)
 create mode 100644 pvepatches/delete-openvswitch-switch-init.patch
 create mode 100644 pvepatches/remove-init-script-on-upgrades.patch

diff --git a/pvepatches/delete-openvswitch-switch-init.patch b/pvepatches/delete-openvswitch-switch-init.patch
new file mode 100644
index 0000000..c0f5a52
--- /dev/null
+++ b/pvepatches/delete-openvswitch-switch-init.patch
@@ -0,0 +1,153 @@
+diff --git a/debian/openvswitch-switch.init b/debian/openvswitch-switch.init
+deleted file mode 100755
+index aece780..0000000
+--- a/debian/openvswitch-switch.init
++++ /dev/null
+@@ -1,147 +0,0 @@
+-#! /bin/sh
+-#
+-# Copyright (C) 2011, 2012 Nicira, Inc.
+-#
+-# Licensed under the Apache License, Version 2.0 (the "License");
+-# you may not use this file except in compliance with the License.
+-# You may obtain a copy of the License at:
+-#
+-#     http://www.apache.org/licenses/LICENSE-2.0
+-#
+-# Unless required by applicable law or agreed to in writing, software
+-# distributed under the License is distributed on an "AS IS" BASIS,
+-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-# See the License for the specific language governing permissions and
+-# limitations under the License.
+-#
+-### BEGIN INIT INFO
+-# Provides:          openvswitch-switch
+-# Required-Start:    $network $named $remote_fs $syslog
+-# Required-Stop:     $remote_fs
+-# Default-Start:     2 3 4 5
+-# Default-Stop:      0 1 6
+-# Short-Description: Open vSwitch switch
+-# Description:       openvswitch-switch provides the userspace components and utilities for
+-#                    the Open vSwitch kernel-based switch.
+-### END INIT INFO
+-
+-(test -x /usr/sbin/ovs-vswitchd && test -x /usr/sbin/ovsdb-server) || exit 0
+-
+-_SYSTEMCTL_SKIP_REDIRECT=yes
+-
+-. /usr/share/openvswitch/scripts/ovs-lib
+-test -e /etc/default/openvswitch-switch && . /etc/default/openvswitch-switch
+-
+-network_interfaces () {
+-    INTERFACES="/etc/network/interfaces"
+-    [ -e "${INTERFACES}" ] || return
+-    bridges=`ifquery --allow ovs --list`
+-    [ -n "${bridges}" ] && $1 --allow=ovs ${bridges}
+-}
+-
+-load_kmod () {
+-    ovs_ctl load-kmod || exit $?
+-}
+-
+-start () {
+-    if ovs_ctl load-kmod; then
+-	:
+-    else
+-	echo "Module has probably not been built for this kernel."
+-	if ! test -d /usr/share/doc/openvswitch-datapath-source; then
+-	    echo "Install the openvswitch-datapath-source package, then read"
+-	else
+-            echo "For instructions, read"
+-	fi
+-	echo "/usr/share/doc/openvswitch-datapath-source/README.Debian"
+-
+-	if test X"$OVS_MISSING_KMOD_OK" = Xyes; then
+-	    # We're being invoked by the package postinst.  Do not
+-	    # fail package installation just because the kernel module
+-	    # is not available.
+-	    exit 0
+-	fi
+-    fi
+-    set ovs_ctl ${1-start} --system-id=random
+-    if test X"$FORCE_COREFILES" != X; then
+-	set "$@" --force-corefiles="$FORCE_COREFILES"
+-    fi
+-    set "$@" $OVS_CTL_OPTS
+-    "$@" || exit $?
+-    if [ "$2" = "start" ] && [ "$READ_INTERFACES" != "no" ]; then
+-        network_interfaces ifup
+-    fi
+-}
+-
+-stop () {
+-    [ "$READ_INTERFACES" != "no" ] && network_interfaces ifdown
+-    ovs_ctl stop
+-}
+-
+-restart () {
+-    # OVS_FORCE_RELOAD_KMOD can be set by package postinst script.
+-    if [ "$1" = "--save-flows=yes" ] || \
+-        [ "${OVS_FORCE_RELOAD_KMOD}" = "no" ]; then
+-        start restart
+-    elif [ "${OVS_FORCE_RELOAD_KMOD}" = "yes" ]; then
+-        depmod -a
+-
+-        if [ -e /sys/module/openvswitch ]; then
+-            LOADED_SRCVERSION=`cat /sys/module/openvswitch/srcversion`
+-            LOADED_VERSION=`cat /sys/module/openvswitch/version`
+-        elif [ -e /sys/module/openvswitch_mod ]; then
+-            LOADED_SRCVERSION=`cat /sys/module/openvswitch_mod/srcversion`
+-            LOADED_VERSION=`cat /sys/module/openvswitch_mod/version`
+-        fi
+-        SRCVERSION=`modinfo -F srcversion openvswitch 2>/dev/null`
+-        VERSION=`modinfo -F version openvswitch 2>/dev/null`
+-
+-        ovs_ctl_log "Package upgrading:\n"\
+-                    "Loaded version: ${LOADED_VERSION} ${LOADED_SRCVERSION}.\n"\
+-                    "Version on disk: ${VERSION} ${SRCVERSION}."
+-
+-        # If the kernel module was previously loaded and it is different than
+-        # the kernel module on disk, then do a 'force-reload-kmod'.
+-        if [ -n "${LOADED_SRCVERSION}" ] && [ -n "${SRCVERSION}" ] && \
+-            [ "${SRCVERSION}" != "${LOADED_SRCVERSION}" ]; then
+-            start force-reload-kmod
+-        else
+-            start restart
+-        fi
+-    else
+-        READ_INTERFACES="no" stop
+-        READ_INTERFACES="no" start
+-    fi
+-}
+-
+-case $1 in
+-    start)
+-        start
+-	;;
+-    stop | force-stop)
+-        stop
+-        ;;
+-    reload | force-reload)
+-        # The OVS daemons keep up-to-date.
+-        ;;
+-    restart)
+-        shift
+-        restart "$@"
+-        ;;
+-    status)
+-        ovs_ctl status
+-        exit $?
+-        ;;
+-    force-reload-kmod)
+-        start force-reload-kmod
+-        ;;
+-    load-kmod)
+-        load_kmod
+-        ;;
+-    *)
+-        echo "Usage: $0 {start|stop|restart|force-reload|status|force-stop|force-reload-kmod|load-kmod}" >&2
+-        exit 1
+-        ;;
+-esac
+-
+-exit 0
diff --git a/pvepatches/install-systemd-services.patch b/pvepatches/install-systemd-services.patch
index 645d048..257c40f 100644
--- a/pvepatches/install-systemd-services.patch
+++ b/pvepatches/install-systemd-services.patch
@@ -37,12 +37,11 @@ Index: new/debian/rules
 ===================================================================
 --- a/debian/rules
 +++ b/debian/rules
-@@ -82,8 +82,10 @@ override_dh_install:
+@@ -82,7 +82,10 @@ override_dh_install:
                 debian/$(PACKAGE_DKMS)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/xenserver/LICENSE
  
  override_dh_installinit:
--        dh_installinit -p "openvswitch-switch" -R -- start 20 S . stop 80 0 6 .
--        dh_installinit --remaining-packages -R
+-	dh_installinit -R
 +	dh_systemd_enable -p "openvswitch-switch" --name openvswitch
 +	dh_systemd_enable -p "openvswitch-switch" --name openvswitch-nonetwork
 +	dh_installinit
diff --git a/pvepatches/remove-init-script-on-upgrades.patch b/pvepatches/remove-init-script-on-upgrades.patch
new file mode 100644
index 0000000..683baca
--- /dev/null
+++ b/pvepatches/remove-init-script-on-upgrades.patch
@@ -0,0 +1,15 @@
+diff --git a/debian/openvswitch-switch.postinst b/debian/openvswitch-switch.postinst
+index 2464572..160b37b 100755
+--- a/debian/openvswitch-switch.postinst
++++ b/debian/openvswitch-switch.postinst
+@@ -33,6 +33,10 @@ case "$1" in
+                 fi
+             done
+ 	fi
++
++	if dpkg --compare-versions "$2" le "2.5.0-1"; then
++	    rm -f /etc/init.d/openvswitch-switch
++	fi
+         ;;
+ 
+     abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/pvepatches/series b/pvepatches/series
index e810b29..2c1c662 100644
--- a/pvepatches/series
+++ b/pvepatches/series
@@ -1,5 +1,5 @@
 remove-unneeded-from-control.patch
-fix-init-script-patch
-fix-init-depends.patch
 install-systemd-services.patch
+delete-openvswitch-switch-init.patch
 use-systemctl-inside-ifupdown.patch
+remove-init-script-on-upgrades.patch
-- 
2.1.4





More information about the pve-devel mailing list