New mode that check update if last update failed
This commit is contained in:
parent
fa307a2152
commit
36621b4f62
|
@ -62,6 +62,9 @@ OPTIONS :
|
||||||
-d,--debug
|
-d,--debug
|
||||||
Enable debug messages.
|
Enable debug messages.
|
||||||
|
|
||||||
|
-f,--fail
|
||||||
|
Check update only if the last Maco update failed.
|
||||||
|
|
||||||
-h,--help
|
-h,--help
|
||||||
Print this help message.
|
Print this help message.
|
||||||
|
|
||||||
|
@ -231,6 +234,36 @@ Local Maco version (${CURRENT_MACO_VERSION}) is different from latest version ($
|
||||||
|
|
||||||
return "${return_uptodate}"
|
return "${return_uptodate}"
|
||||||
|
|
||||||
|
}
|
||||||
|
# }}}
|
||||||
|
is_maco_status_ok() { # {{{
|
||||||
|
|
||||||
|
## Maco status not ok by default
|
||||||
|
return_maco_status_ok="1"
|
||||||
|
|
||||||
|
## Check if Maco status file is present
|
||||||
|
if [ -f "${MACO_STATUS_FILE}" ]; then
|
||||||
|
debug_message "is_maco_status_ok − \
|
||||||
|
Maco status file (${MACO_STATUS_FILE}) exists."
|
||||||
|
local_maco_status=$(grep --max-count=1 -- MacoStatus "${MACO_STATUS_FILE}" | cut --delimiter="=" --fields=2)
|
||||||
|
|
||||||
|
## Check current Maco status
|
||||||
|
if [ "${local_maco_status}" = "last-update-succeeded" ]; then
|
||||||
|
debug_message "is_maco_status_ok − \
|
||||||
|
Last Maco upgrade succeed (${local_maco_status})."
|
||||||
|
return_maco_status_ok="0"
|
||||||
|
else
|
||||||
|
debug_message "is_maco_status_ok − \
|
||||||
|
Maco require upgrade/maintenance (current state: ${local_maco_status})."
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
debug_message "is_maco_status_ok − \
|
||||||
|
Maco status file (${MACO_STATUS_FILE}) doesn't exists."
|
||||||
|
fi
|
||||||
|
|
||||||
|
return "${return_maco_status_ok}"
|
||||||
|
|
||||||
}
|
}
|
||||||
# }}}
|
# }}}
|
||||||
prepare_host_for_upgrade() { # {{{
|
prepare_host_for_upgrade() { # {{{
|
||||||
|
@ -274,6 +307,13 @@ main() { # {{{
|
||||||
### }}}
|
### }}}
|
||||||
## }}}
|
## }}}
|
||||||
|
|
||||||
|
## If MACO_FAILED_MODE wasn't defined (argument, environment variable,…) {{{
|
||||||
|
if [ -z "${MACO_FAILED_MODE}" ]; then
|
||||||
|
### Set False by default
|
||||||
|
MACO_FAILED_MODE="1"
|
||||||
|
fi
|
||||||
|
## }}}
|
||||||
|
|
||||||
## Get all Maco's versions (date)
|
## Get all Maco's versions (date)
|
||||||
readonly CURRENT_MACO_VERSION=$(< "${MACO_LOCAL_DIR}/maco-version.txt" awk -v FS=. '{ print $1 "-" $2 "-" $3 "T" $4 ":" $5 ":" $6 }' )
|
readonly CURRENT_MACO_VERSION=$(< "${MACO_LOCAL_DIR}/maco-version.txt" awk -v FS=. '{ print $1 "-" $2 "-" $3 "T" $4 ":" $5 ":" $6 }' )
|
||||||
readonly LATEST_MACO_VERSION=$(< "${MACO_INSTALL_DIR}/maco-version.txt" awk -v FS=. '{ print $1 "-" $2 "-" $3 "T" $4 ":" $5 ":" $6 }' )
|
readonly LATEST_MACO_VERSION=$(< "${MACO_INSTALL_DIR}/maco-version.txt" awk -v FS=. '{ print $1 "-" $2 "-" $3 "T" $4 ":" $5 ":" $6 }' )
|
||||||
|
@ -282,12 +322,24 @@ main() { # {{{
|
||||||
readonly CURRENT_TIMESTAMP=$(date -d "${CURRENT_MACO_VERSION}" "+%s")
|
readonly CURRENT_TIMESTAMP=$(date -d "${CURRENT_MACO_VERSION}" "+%s")
|
||||||
readonly LATEST_TIMESTAMP=$(date -d "${LATEST_MACO_VERSION}" "+%s")
|
readonly LATEST_TIMESTAMP=$(date -d "${LATEST_MACO_VERSION}" "+%s")
|
||||||
readonly URGENT_TIMESTAMP=$(date -d "${URGENT_MACO_VERSION}" "+%s")
|
readonly URGENT_TIMESTAMP=$(date -d "${URGENT_MACO_VERSION}" "+%s")
|
||||||
|
# Maco status file
|
||||||
|
readonly MACO_STATUS_FILE="/var/fr.univ-rennes1.ipr.maco.machinestate.txt"
|
||||||
|
|
||||||
## If a variable is empty
|
## If a variable is empty
|
||||||
## Exit with error code
|
## Exit with error code
|
||||||
is_var_empty "${CURRENT_MACO_VERSION}" "${LATEST_MACO_VERSION}" "${URGENT_MACO_VERSION}" "${CURRENT_TIMESTAMP}" "${LATEST_TIMESTAMP}" "${URGENT_TIMESTAMP}" \
|
is_var_empty "${CURRENT_MACO_VERSION}" "${LATEST_MACO_VERSION}" "${URGENT_MACO_VERSION}" "${CURRENT_TIMESTAMP}" "${LATEST_TIMESTAMP}" "${URGENT_TIMESTAMP}" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
|
|
||||||
|
## If MACO_FAILED_MODE is set {{{
|
||||||
|
### Exit if Maco last-update-succeeded
|
||||||
|
if [ "${MACO_FAILED_MODE}" -eq "0" ]; then
|
||||||
|
### If Macostatus=last-update-succeeded
|
||||||
|
### Exit
|
||||||
|
is_maco_status_ok \
|
||||||
|
&& exit 0
|
||||||
|
fi
|
||||||
|
## }}}
|
||||||
|
|
||||||
is_maco_uptodate \
|
is_maco_uptodate \
|
||||||
&& exit 0
|
&& exit 0
|
||||||
|
|
||||||
|
@ -327,6 +379,9 @@ if [ ! "${NBARGS}" -eq "0" ]; then
|
||||||
while printf -- '%s' "${1}" | grep -q -E -- "^-+"; do
|
while printf -- '%s' "${1}" | grep -q -E -- "^-+"; do
|
||||||
|
|
||||||
case "${1}" in
|
case "${1}" in
|
||||||
|
-f|--fail ) ## Failed mode
|
||||||
|
MACO_FAILED_MODE="0"
|
||||||
|
;;
|
||||||
-h|--help ) ## help
|
-h|--help ) ## help
|
||||||
usage
|
usage
|
||||||
## Exit after help informations
|
## Exit after help informations
|
||||||
|
|
Loading…
Reference in New Issue