This file is indexed.

postinst is in ganeti 2.15.2-3.

This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/sh
# postinst script for ganeti

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# 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-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-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-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/2.15/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/2.15" ]; then
				echo "Linking /etc/ganeti/${target} to /usr/${target}/ganeti/2.15"
				ln -snf /usr/${target}/ganeti/2.15 /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%.*}" = "2.15" ]; then
		if [ -x "/etc/init.d/ganeti" ]; then
			invoke-rc.d ganeti stop || true
		fi
	fi

	# Work around bugs of older (pre 2.9) versions. In this case all
	# daemons have already been stopped by the old package's prerm.
	if [ -n "$2" ] && dpkg --compare-versions "$2" lt 2.9.0; then
		# Since 2.9.0, mond runs as root, so remove the old gnt-mond user (that
		# was also created during 2.9.0~rcX.
		if getent passwd gnt-mond >/dev/null; then
			find /var/log/ganeti -user gnt-mond -exec chown root:root {} \;
			deluser --system gnt-mond || true
		fi

		# Remove stale PID files
		# Ganeti versions prior to 2.8.0~rc4 leave Haskell daemon pidfiles
		# behind. If these are root-owned, starting the daemons as unprivileged
		# users will fail.

		# All daemons have been stopped, so it's safe to remove
		# their PID files.
		for daemon in confd mond luxid; do
			rm -f /var/run/ganeti/ganeti-${daemon}.pid
		done

		# Also remove luxid's socket
		rm -f /var/run/ganeti/socket/ganeti-query
	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_installinit
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
	if [ -x "/etc/init.d/ganeti" ]; then
		update-rc.d ganeti defaults 20 80 >/dev/null
	fi
	if [ -x "/etc/init.d/ganeti" ] || [ -e "/etc/init/ganeti.conf" ]; then
		invoke-rc.d 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