#!/bin/bash

# We want any failure to get passed back to the script
# which called us. Rather than carefully keeping track 
# of return codes, we bail on error
set -e

HOSTNAME=$1
SRCDIR=$2
ZFSTARGET=$3

# Configuration for this backup (i.e. setting PGDUMP_DATABASE and PGDUMP_EXTrA_OPTIONS
# are now found on the client in /etc/chem-rsync-backup-client/pgdump_config


SSHUSER=${SSHUSER:-root}

MOUNT=$(zfs get -H -ovalue mountpoint $ZFSTARGET)
BACKUP_ROOT=$MOUNT/pgdumps
PGDUMP_DEST=$BACKUP_ROOT/pgdumps-master/
PGROLE_DEST=$BACKUP_ROOT/pg_roles

mkdir -p $PGDUMP_DEST

# Dump the database to a temporary directory and export roles there too
ssh ${SSHUSER}@${HOSTNAME} /usr/local/lib/chem-rsync-backup-client/prepare_postgres
# Copy those here
rsync -av --checksum --delete --no-times ${SSHUSER}@${HOSTNAME}:/var/adm/backup/pg_dump/pgdump/ $PGDUMP_DEST
scp ${SSHUSER}@${HOSTNAME}:/var/adm/backup/pg_dump/pg_roles $PGROLE_DEST
# Tidy up
ssh ${SSHUSER}@${HOSTNAME} /usr/local/lib/chem-rsync-backup-client/tidy_postgres