tstellar / rpms / openldap

Forked from rpms/openldap 3 years ago
Clone
Jan Vcelak a431c66
#!/bin/sh
Jan Vcelak a431c66
# Author: Jan Vcelak <jvcelak@redhat.com>
Jan Vcelak a431c66
Jan Vcelak 934ba14
. /usr/libexec/openldap/functions
Jan Vcelak a431c66
Jan Vcelak a431c66
if [ `id -u` -ne 0 ]; then
Jan Vcelak a431c66
	error "You have to be root to run this command."
Jan Vcelak a431c66
	exit 4
Jan Vcelak a431c66
fi
Jan Vcelak a431c66
Jan Vcelak a431c66
load_sysconfig
Jan Vcelak a431c66
retcode=0
Jan Vcelak a431c66
Jan Vcelak a431c66
for dbdir in `databases`; do
Jan Vcelak a431c66
	upgrade_log="$dbdir/db_upgrade.`date +%Y%m%d%H%M%S`.log"
Jan Vcelak a431c66
	bdb_files=`find "$dbdir" -maxdepth 1 -name "*.bdb" -printf '"%f" '`
Jan Vcelak a431c66
Jan Vcelak a431c66
	# skip uninitialized database
Jan Vcelak a431c66
	[ -z "$bdb_files"]  || continue
Jan Vcelak a431c66
Jan Vcelak a431c66
	printf "Updating '%s', logging into '%s'\n" "$dbdir" "$upgrade_log"
Jan Vcelak a431c66
Jan Vcelak a431c66
	# perform the update
Jan Vcelak a431c66
	for command in \
Jan Vcelak a431c66
		"/usr/bin/db_recover -v -h \"$dbdir\"" \
Jan Vcelak a431c66
		"/usr/bin/db_upgrade -v -h \"$dbdir\" $bdb_files" \
Jan Vcelak a431c66
		"/usr/bin/db_checkpoint -v -h \"$dbdir\" -1" \
Jan Vcelak a431c66
	; do
Jan Vcelak a431c66
		printf "Executing: %s\n" "$command" &>>$upgrade_log
Jan Vcelak a431c66
		run_as_ldap "$command" &>>$upgrade_log
Jan Vcelak a431c66
		result=$?
Jan Vcelak a431c66
		printf "Exit code: %d\n" $result >>"$upgrade_log"
Jan Vcelak a431c66
		if [ $result -ne 0 ]; then
Jan Vcelak a431c66
			printf "Upgrade failed: %d\n" $result
Jan Vcelak a431c66
			retcode=1
Jan Vcelak a431c66
		fi
Jan Vcelak a431c66
	done
Jan Vcelak a431c66
done
Jan Vcelak a431c66
Jan Vcelak a431c66
exit $retcode