mirror of
https://0xacab.org/liberate/backupninja.git
synced 2024-11-26 04:32:42 +01:00
Allow the entire backup run to be halted by an action (Closes: #455836)
This commit is contained in:
parent
5297a4855d
commit
c0ca5e3dda
1
AUTHORS
1
AUTHORS
@ -26,3 +26,4 @@ Sami Haahtinen <ressu@ressukka.net>
|
|||||||
Matthew Palmer -- mysql enhancements
|
Matthew Palmer -- mysql enhancements
|
||||||
romain.tartiere@healthgrid.org -- ldap fixes
|
romain.tartiere@healthgrid.org -- ldap fixes
|
||||||
Adam Monsen - spec file updates
|
Adam Monsen - spec file updates
|
||||||
|
Matthew Palmer <mpalmer@debian.org> -- halt loglevel feature
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
version 0.9.6 -- unreleased
|
version 0.9.6 -- unreleased
|
||||||
backupninja changes
|
backupninja changes
|
||||||
fix bug in cstream definition, thanks Jamie McClelland
|
. fix bug in cstream definition, thanks Jamie McClelland
|
||||||
|
. Allow the entire backup run to be halted by an action, thanks to
|
||||||
|
Matthew Palmer (Closes: #455836)
|
||||||
handler changes
|
handler changes
|
||||||
dup:
|
dup:
|
||||||
. General cleanup
|
. General cleanup
|
||||||
|
@ -29,7 +29,7 @@ function setupcolors () {
|
|||||||
RED="\033[31;01m"
|
RED="\033[31;01m"
|
||||||
OFF="\033[0m"
|
OFF="\033[0m"
|
||||||
CYAN="\033[36;01m"
|
CYAN="\033[36;01m"
|
||||||
COLORS=($BLUE $GREEN $YELLOW $RED $PURPLE)
|
COLORS=($BLUE $GREEN $YELLOW $RED $PURPLE $CYAN)
|
||||||
}
|
}
|
||||||
|
|
||||||
function colorize () {
|
function colorize () {
|
||||||
@ -40,6 +40,7 @@ function colorize () {
|
|||||||
[ "$typestr" == "Warning" ] && type=2
|
[ "$typestr" == "Warning" ] && type=2
|
||||||
[ "$typestr" == "Error" ] && type=3
|
[ "$typestr" == "Error" ] && type=3
|
||||||
[ "$typestr" == "Fatal" ] && type=4
|
[ "$typestr" == "Fatal" ] && type=4
|
||||||
|
[ "$typestr" == "Halt" ] && type=5
|
||||||
color=${COLORS[$type]}
|
color=${COLORS[$type]}
|
||||||
endcolor=$OFF
|
endcolor=$OFF
|
||||||
echo -e "$color$@$endcolor"
|
echo -e "$color$@$endcolor"
|
||||||
@ -54,6 +55,7 @@ function colorize () {
|
|||||||
# 2 - warnings - yellow
|
# 2 - warnings - yellow
|
||||||
# 3 - errors - red
|
# 3 - errors - red
|
||||||
# 4 - fatal - purple
|
# 4 - fatal - purple
|
||||||
|
# 5 - halt - cyan
|
||||||
# First variable passed is the error level, all others are printed
|
# First variable passed is the error level, all others are printed
|
||||||
|
|
||||||
# if 1, echo out all warnings, errors, or fatal
|
# if 1, echo out all warnings, errors, or fatal
|
||||||
@ -74,9 +76,10 @@ function printmsg() {
|
|||||||
[ "$typestr" == "Warning" ] && type=2
|
[ "$typestr" == "Warning" ] && type=2
|
||||||
[ "$typestr" == "Error" ] && type=3
|
[ "$typestr" == "Error" ] && type=3
|
||||||
[ "$typestr" == "Fatal" ] && type=4
|
[ "$typestr" == "Fatal" ] && type=4
|
||||||
|
[ "$typestr" == "Halt" ] && type=5
|
||||||
typestr=""
|
typestr=""
|
||||||
else
|
else
|
||||||
types=(Debug Info Warning Error Fatal)
|
types=(Debug Info Warning Error Fatal Halt)
|
||||||
typestr="${types[$type]}: "
|
typestr="${types[$type]}: "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -118,6 +121,10 @@ function fatal() {
|
|||||||
printmsg 4 "$@"
|
printmsg 4 "$@"
|
||||||
exit 2
|
exit 2
|
||||||
}
|
}
|
||||||
|
function halt() {
|
||||||
|
printmsg 5 "$@"
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
|
||||||
msgcount=0
|
msgcount=0
|
||||||
function msg {
|
function msg {
|
||||||
@ -252,19 +259,20 @@ The following options are available:
|
|||||||
|
|
||||||
When in debug mode, output to the console will be colored:
|
When in debug mode, output to the console will be colored:
|
||||||
EOF
|
EOF
|
||||||
debug=1
|
usecolors=yes
|
||||||
debug "Debugging info (when run with -d)"
|
colorize "Debug: Debugging info (when run with -d)"
|
||||||
info "Informational messages (verbosity level 4)"
|
colorize "Info: Informational messages (verbosity level 4)"
|
||||||
warning "Warnings (verbosity level 3 and up)"
|
colorize "Warning: Warnings (verbosity level 3 and up)"
|
||||||
error "Errors (verbosity level 2 and up)"
|
colorize "Error: Errors (verbosity level 2 and up)"
|
||||||
fatal "Fatal, halting errors (always shown)"
|
colorize "Fatal: Errors which halt a given backup action (always shown)"
|
||||||
|
colorize "Halt: Errors which halt the whole backupninja run (always shown)"
|
||||||
}
|
}
|
||||||
|
|
||||||
##
|
##
|
||||||
## this function handles the running of a backup action
|
## this function handles the running of a backup action
|
||||||
##
|
##
|
||||||
## these globals are modified:
|
## these globals are modified:
|
||||||
## fatals, errors, warnings, actions_run, errormsg
|
## halts, fatals, errors, warnings, actions_run, errormsg
|
||||||
##
|
##
|
||||||
|
|
||||||
function process_action() {
|
function process_action() {
|
||||||
@ -322,10 +330,15 @@ function process_action() {
|
|||||||
_warnings=`cat $bufferfile | grep "^Warning: " | wc -l`
|
_warnings=`cat $bufferfile | grep "^Warning: " | wc -l`
|
||||||
_errors=`cat $bufferfile | grep "^Error: " | wc -l`
|
_errors=`cat $bufferfile | grep "^Error: " | wc -l`
|
||||||
_fatals=`cat $bufferfile | grep "^Fatal: " | wc -l`
|
_fatals=`cat $bufferfile | grep "^Fatal: " | wc -l`
|
||||||
|
_halts=`cat $bufferfile | grep "^Halt: " | wc -l`
|
||||||
|
|
||||||
ret=`grep "\(^Warning: \|^Error: \|^Fatal: \)" $bufferfile`
|
ret=`grep "\(^Warning: \|^Error: \|^Fatal: \|Halt: \)" $bufferfile`
|
||||||
rm $bufferfile
|
rm $bufferfile
|
||||||
if [ $_fatals != 0 ]; then
|
if [ $_halts != 0 ]; then
|
||||||
|
msg "*halt* -- $file"
|
||||||
|
errormsg="$errormsg\n== halt request from $file==\n\n$ret\n"
|
||||||
|
passthru "Halt: <<<< finished action $file: FAILED"
|
||||||
|
elif [ $_fatals != 0 ]; then
|
||||||
msg "*failed* -- $file"
|
msg "*failed* -- $file"
|
||||||
errormsg="$errormsg\n== fatal errors from $file ==\n\n$ret\n"
|
errormsg="$errormsg\n== fatal errors from $file ==\n\n$ret\n"
|
||||||
passthru "Fatal: <<<< finished action $file: FAILED"
|
passthru "Fatal: <<<< finished action $file: FAILED"
|
||||||
@ -342,6 +355,7 @@ function process_action() {
|
|||||||
info "<<<< finished action $file: SUCCESS"
|
info "<<<< finished action $file: SUCCESS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
let "halts += _halts"
|
||||||
let "fatals += _fatals"
|
let "fatals += _fatals"
|
||||||
let "errors += _errors"
|
let "errors += _errors"
|
||||||
let "warnings += _warnings"
|
let "warnings += _warnings"
|
||||||
@ -482,6 +496,7 @@ fi
|
|||||||
umask 077
|
umask 077
|
||||||
|
|
||||||
# these globals are set by process_action()
|
# these globals are set by process_action()
|
||||||
|
halts=0
|
||||||
fatals=0
|
fatals=0
|
||||||
errors=0
|
errors=0
|
||||||
warnings=0
|
warnings=0
|
||||||
@ -500,6 +515,7 @@ fi
|
|||||||
|
|
||||||
for file in $files; do
|
for file in $files; do
|
||||||
[ -f "$file" ] || continue
|
[ -f "$file" ] || continue
|
||||||
|
[ "$halts" = "0" ] || continue
|
||||||
|
|
||||||
check_perms ${file%/*} # check containing dir
|
check_perms ${file%/*} # check containing dir
|
||||||
check_perms $file
|
check_perms $file
|
||||||
@ -556,6 +572,9 @@ fi
|
|||||||
|
|
||||||
if [ $actions_run != 0 ]; then
|
if [ $actions_run != 0 ]; then
|
||||||
info "FINISHED: $actions_run actions run. $fatals fatal. $errors error. $warnings warning."
|
info "FINISHED: $actions_run actions run. $fatals fatal. $errors error. $warnings warning."
|
||||||
|
if [ "$halts" != "0" ]; then
|
||||||
|
info "Backup was halted prematurely. Some actions may not have run."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$reporthost" ]; then
|
if [ -n "$reporthost" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user