[pve-devel] applied: [PATCH cluster] ensure problematic ha service is stopped during update

Wolfgang Bumiller w.bumiller at proxmox.com
Thu Dec 7 15:38:33 CET 2017


applied with cleanups

On Thu, Dec 07, 2017 at 03:10:02PM +0100, Thomas Lamprecht wrote:
> Add a postinst file which stops, if running, the ha service before it
> configures pve-cluster and starts them again, if enabled.
> Do this only if the version installed before the upgrade is <= 2.0-3
> 
> dpkg-query has Version and Config-Version
> 
> Version is at this time the new unpacked version already, so we need
> to check both to catch all cases.
> 
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
> 
>  debian/pve-cluster.postinst | 46 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
>  create mode 100644 debian/pve-cluster.postinst
> 
> diff --git a/debian/pve-cluster.postinst b/debian/pve-cluster.postinst
> new file mode 100644
> index 0000000..b894e87
> --- /dev/null
> +++ b/debian/pve-cluster.postinst
> @@ -0,0 +1,46 @@
> +#!/bin/bash
> +
> +# abort if any command returns an error value
> +set -e
> +
> +cp /var/lib/dpkg/status /var/lib/dpkg/status.bak

^ removed the above (old cruft), unnecessary and lintian complains

> +
> +# handle problem with ha-manager <= 2.0-3 which cannot handle a pmxcfs
> +# restart correctly
> +# TODO: remove in PVE 6.0
> +ha_version=$(dpkg-query --showformat='${Version}' --show pve-ha-manager)
> +hacfg_version=$(dpkg-query --showformat='${Config-Version}' --show pve-ha-manager)
> +
> +function handlehaservice {
> +  if test -z "$1"; then
> +    # no old version, nothing to do
> +    true
> +  else
> +    if dpkg --compare-versions "$ha_version" '<=' '2.0-3' || dpkg --compare-versions "$hacfg_version" '<=' '2.0-3'; then
> +      if systemctl --quiet "$2" "pve-ha-crm.service"; then
> +        systemctl "$3" "pve-ha-crm.service"
> +      fi
> +      if systemctl --quiet "$2" "pve-ha-lrm.service"; then
> +        systemctl "$3" "pve-ha-lrm.service"
> +      fi
> +    fi
> +  fi
> +}
> +
> +
> +case "$1" in
> +  configure)
> +    handlehaservice "$2" 'is-active' 'stop'
> +    ;;
> +
> +esac
> +
> +#DEBHELPER#
> +
> +case "$1" in
> +  configure)
> +    handlehaservice "$2" 'is-enabled' 'start'
> +    ;;
> +
> +esac
> +
> -- 
> 2.11.0




More information about the pve-devel mailing list