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
|
||
|
}
|
||
|
|