You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/bin/bash
## When writing relation script, remember: ## - they should be idempotents ## - they can be launched while the dockers is already up ## - they are launched from the host ## - the target of the link is launched first, and get a chance to ``relation-set`` ## - both side of the scripts get to use ``relation-get``.
. lib/common
set -e
## XXXvlab: should use container name here so that it could support ## multiple postgres label=${SERVICE_NAME}-pg-backup DST=$CONFIGSTORE/$TARGET_SERVICE_NAME/etc/cron/$label schedule=$(relation-get schedule)
if ! echo "$schedule" | egrep '^\s*(([0-9/,*-]+\s+){4,4}[0-9/,*-]+|@[a-z]+)\s*$' >/dev/null 2>&1; then err "Unrecognized schedule '$schedule'." exit 1 fi
exclude_dbs=$(relation-get exclude-dbs 2>/dev/null) || true exclude_dbs=$(echo "$exclude_dbs" | shyaml get-values 2>/dev/null | nspc) || true
## Warning: 'docker -v' will use HOST directory even if launched from ## 'cron' container. file_put "$DST" <<EOF COMPOSE_LAUNCHER_OPTS=$COMPOSE_LAUNCHER_OPTS
$schedule root lock $label -D -p 10 -c "\ docker run --rm \ -e PGHOST=${SERVICE_NAME} \ --network ${PROJECT_NAME}_default \ -e exclude_dbs=\"$exclude_dbs\" \ -v \"$LOCAL_DB_PASSFILE\":/root/.pgpass \ -v \"$HOST_CHARM_STORE/${CHARM_REL_PATH#${CHARM_STORE}/}/resources/bin/pg-backup:/usr/sbin/pg-backup\" \ -v \"$SERVICE_DATASTORE/var/backups/pg:/var/backups/pg\" \ --entrypoint pg-backup \ \"$DOCKER_BASE_IMAGE\"" 2>&1 | ts '\%F \%T \%Z' >> /var/log/cron/pg-backup_script.log EOF chmod +x "$DST"
|