382d113a87
1) Added a new backup container for accessing RGW via Openstack Swift API. 2) Modified the backup script so that tarballed databases can be sent to the RGW. 3) Added new script to send the database backup to the RGW. 4) Modified the restore script so that databases can be retrieved from the RGW. 5) Added new script to retrieve the database backups from the RGW. Change-Id: Id17a8fcb63f5614ea038c58acdc256fb4e05f434
95 lines
2.4 KiB
Smarty
95 lines
2.4 KiB
Smarty
#!/bin/bash
|
|
|
|
# Copyright 2018 The Openstack-Helm Authors.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# Do not use set -x here because the manual backup or restore pods may be using
|
|
# these functions, and it will distort the command output to have tracing on.
|
|
|
|
log_backup_error_exit() {
|
|
MSG=$1
|
|
ERRCODE=$2
|
|
log ERROR postgresql_backup "${MSG}"
|
|
exit $ERRCODE
|
|
}
|
|
|
|
log() {
|
|
#Log message to a file or stdout
|
|
#TODO: This can be convert into mail alert of alert send to a monitoring system
|
|
#Params: $1 log level
|
|
#Params: $2 service
|
|
#Params: $3 message
|
|
#Params: $4 Destination
|
|
LEVEL=$1
|
|
SERVICE=$2
|
|
MSG=$3
|
|
DEST=$4
|
|
DATE=$(date +"%m-%d-%y %H:%M:%S")
|
|
if [ -z "$DEST" ]
|
|
then
|
|
echo "${DATE} ${LEVEL}: $(hostname) ${SERVICE}: ${MSG}"
|
|
else
|
|
echo "${DATE} ${LEVEL}: $(hostname) ${SERVICE}: ${MSG}" >>$DEST
|
|
fi
|
|
}
|
|
|
|
#Get the day delta since the archive file backup
|
|
seconds_difference() {
|
|
archive_date=$( date --date="$1" +%s )
|
|
if [ "$?" -ne 0 ]
|
|
then
|
|
second_delta=0
|
|
fi
|
|
current_date=$( date +%s )
|
|
second_delta=$(($current_date-$archive_date))
|
|
if [ "$second_delta" -lt 0 ]
|
|
then
|
|
second_delta=0
|
|
fi
|
|
echo $second_delta
|
|
}
|
|
|
|
# Wait for a file to be available on the file system (written by the other
|
|
# container).
|
|
wait_for_file() {
|
|
WAIT_FILE=$1
|
|
NO_TIMEOUT=${2:-false}
|
|
TIMEOUT=300
|
|
if [[ $NO_TIMEOUT == "true" ]]
|
|
then
|
|
# Such a large value to virtually never timeout
|
|
TIMEOUT=999999999
|
|
fi
|
|
TIMEOUT_EXP=$(( $(date +%s) + $TIMEOUT ))
|
|
DONE=false
|
|
while [[ $DONE == "false" ]]
|
|
do
|
|
DELTA=$(( TIMEOUT_EXP - $(date +%s) ))
|
|
if [[ "$(ls -l ${WAIT_FILE} 2>/dev/null | wc -l)" -gt 0 ]];
|
|
then
|
|
DONE=true
|
|
elif [[ $DELTA -lt 0 ]]
|
|
then
|
|
DONE=true
|
|
echo "Timed out waiting for file ${WAIT_FILE}."
|
|
return 1
|
|
else
|
|
echo "Still waiting ...will time out in ${DELTA} seconds..."
|
|
sleep 5
|
|
fi
|
|
done
|
|
return 0
|
|
}
|
|
|