#!/bin/sh # postinst script for ganeti set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) # Groups addgroup --quiet --system "gnt-admin" addgroup --quiet --system "gnt-confd" addgroup --quiet --system "gnt-daemons" addgroup --quiet --system "gnt-luxid" addgroup --quiet --system "gnt-masterd" addgroup --quiet --system "gnt-metad" addgroup --quiet --system "gnt-rapi" # Users adduser --quiet --system --ingroup "gnt-confd" --no-create-home --disabled-password --disabled-login --home /var/lib/ganeti "gnt-confd" adduser --quiet --system --ingroup "gnt-confd" --no-create-home --disabled-password --disabled-login --home /var/lib/ganeti "gnt-masterd" adduser --quiet --system --ingroup "gnt-luxid" --no-create-home --disabled-password --disabled-login --home /var/lib/ganeti "gnt-masterd" adduser --quiet --system --ingroup "gnt-masterd" --no-create-home --disabled-password --disabled-login --home /var/lib/ganeti "gnt-masterd" adduser --quiet --system --ingroup "gnt-metad" --no-create-home --disabled-password --disabled-login --home /var/lib/ganeti "gnt-metad" adduser --quiet --system --ingroup "gnt-rapi" --no-create-home --disabled-password --disabled-login --home /var/lib/ganeti "gnt-rapi" # Group memberships adduser --quiet "gnt-confd" "gnt-daemons" adduser --quiet "gnt-masterd" "gnt-admin" adduser --quiet "gnt-masterd" "gnt-confd" adduser --quiet "gnt-masterd" "gnt-daemons" adduser --quiet "gnt-masterd" "gnt-masterd" adduser --quiet "gnt-metad" "gnt-daemons" adduser --quiet "gnt-rapi" "gnt-admin" adduser --quiet "gnt-rapi" "gnt-daemons" update_symlinks=0 # Handle symlinks... # ... if we are upgrading from pre-2.10 versions if [ -n "$2" ] && dpkg --compare-versions "$2" lt 2.10.0; then update_symlinks=1 # ... or if we are not part of a cluster elif ! /usr/lib/ganeti/3.0/usr/lib/ganeti/daemon-util check-config 2>/dev/null; then update_symlinks=1 # ... or if something is broken elif [ ! -e /etc/ganeti/lib -o ! -e /etc/ganeti/share ]; then update_symlinks=1 fi if [ "$update_symlinks" = 1 ]; then for target in lib share; do if [ "$(readlink /etc/ganeti/${target})" != "/usr/${target}/ganeti/3.0" ]; then echo "Linking /etc/ganeti/${target} to /usr/${target}/ganeti/3.0" ln -snf /usr/${target}/ganeti/3.0 /etc/ganeti/${target} fi done fi # Restart the service if we have either updated the symlinks, or # shipped the same minor version. We only stop the service here and # let the debhelper snippet below start it again. if [ "$update_symlinks" = 1 -o "${2%.*}" = "3.0" ]; then if [ -x "/etc/init.d/ganeti" ]; then invoke-rc.d ganeti stop || true fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. # Automatically added by dh_installdeb/13.3.4 dpkg-maintscript-helper rm_conffile /etc/bash_completion.d/ganeti 2.16.0\~rc2-6\~ -- "$@" # End automatically added section # Automatically added by dh_installinit/13.3.4 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then if [ -x "/etc/init.d/ganeti" ]; then update-rc.d ganeti defaults 20 80 >/dev/null invoke-rc.d --skip-systemd-native ganeti start || true fi fi # End automatically added section # Fix jobqueue archive permissions # This may take a while, so we only do this if necessary find /var/lib/ganeti/queue/archive -mindepth 1 -maxdepth 1 \ -type d -not -user "gnt-masterd" 2>/dev/null | while read dirname; do /usr/lib/ganeti/ensure-dirs --full-run break done exit 0