86 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
#DEBHELPER#
 | 
						|
 | 
						|
update_sync_job() {
 | 
						|
    job="$1"
 | 
						|
 | 
						|
    echo "Updating sync job '$job' to make old 'remove-vanished' default explicit.."
 | 
						|
    proxmox-backup-manager sync-job update "$job" --remove-vanished true \
 | 
						|
      || echo "Failed, please check sync.cfg manually!"
 | 
						|
}
 | 
						|
 | 
						|
case "$1" in
 | 
						|
    configure)
 | 
						|
	# need to have user backup in the tape group
 | 
						|
	usermod -a -G tape backup
 | 
						|
 | 
						|
	# modeled after dh_systemd_start output
 | 
						|
	systemctl --system daemon-reload >/dev/null || true
 | 
						|
	if [ -n "$2" ]; then
 | 
						|
		if dpkg --compare-versions "$2" 'lt' '1.0.7-1'; then
 | 
						|
			# there was an issue with reloading and systemd being confused in older daemon versions
 | 
						|
			# so restart instead of reload if upgrading from there, see commit 0ec79339f7aebf9
 | 
						|
			# FIXME: remove with PBS 2.1
 | 
						|
			echo "Upgrading from older proxmox-backup-server: restart (not reload) daemons"
 | 
						|
			_dh_action=try-restart
 | 
						|
		else
 | 
						|
			_dh_action=try-reload-or-restart
 | 
						|
		fi
 | 
						|
	else
 | 
						|
		_dh_action=start
 | 
						|
	fi
 | 
						|
	deb-systemd-invoke $_dh_action proxmox-backup.service proxmox-backup-proxy.service >/dev/null || true
 | 
						|
 | 
						|
	if test -n "$2"; then
 | 
						|
		# FIXME: Remove in future version once we're sure no broken entries remain in anyone's files
 | 
						|
		if grep -q -e ':termproxy::[^@]\+: ' /var/log/proxmox-backup/tasks/active; then
 | 
						|
			echo "Fixing up termproxy user id in task log..."
 | 
						|
			flock -w 30 /var/log/proxmox-backup/tasks/active.lock sed -i 's/:termproxy::\([^@]\+\): /:termproxy::\1@pam: /' /var/log/proxmox-backup/tasks/active || true
 | 
						|
		fi
 | 
						|
 | 
						|
		if dpkg --compare-versions "$2" 'lt' '2.2.2~'; then
 | 
						|
			echo "moving prune schedule from datacenter config to new prune job config"
 | 
						|
			proxmox-backup-manager update-to-prune-jobs-config \
 | 
						|
			    || echo "Failed to move prune jobs, please check manually"
 | 
						|
			true
 | 
						|
		fi
 | 
						|
 | 
						|
		if dpkg --compare-versions "$2" 'lt' '2.1.3~' && test -e /etc/proxmox-backup/sync.cfg; then
 | 
						|
			prev_job=""
 | 
						|
 | 
						|
			# read from HERE doc because POSIX sh limitations
 | 
						|
			while read -r key value; do
 | 
						|
				if test "$key" = "sync:"; then
 | 
						|
					if test -n "$prev_job"; then
 | 
						|
						# previous job doesn't have an explicit value
 | 
						|
						update_sync_job "$prev_job"
 | 
						|
					fi
 | 
						|
					prev_job=$value
 | 
						|
				else
 | 
						|
					prev_job=""
 | 
						|
				fi
 | 
						|
			done <<EOF
 | 
						|
$(grep -e '^sync:' -e 'remove-vanished' /etc/proxmox-backup/sync.cfg)
 | 
						|
EOF
 | 
						|
			if test -n "$prev_job"; then
 | 
						|
				# last job doesn't have an explicit value
 | 
						|
				update_sync_job "$prev_job"
 | 
						|
			fi
 | 
						|
		fi
 | 
						|
	fi
 | 
						|
    ;;
 | 
						|
 | 
						|
    abort-upgrade|abort-remove|abort-deconfigure)
 | 
						|
    ;;
 | 
						|
 | 
						|
    *)
 | 
						|
        echo "postinst called with unknown argument \`$1'" >&2
 | 
						|
        exit 1
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
exit 0
 |