-
Hahn Axel (hahn) authoredHahn Axel (hahn) authored
check_deployment.sh 2.22 KiB
#!/usr/bin/env bash
# ======================================================================
#
# DEPLOYMENT CLIENT :: CHECK STATUS
#
# ----------------------------------------------------------------------
# 2023-12-11 v0.1 <axel.hahn@iml.unibe.ch> first lines...
# 2023-12-14 v0.2 <axel.hahn@iml.unibe.ch> detect profile without logfile
# ======================================================================
# ----------------------------------------------------------------------
# CONFIG
# ----------------------------------------------------------------------
cd $( dirname $0 )
selfdir=$( /bin/pwd )
logdir=/var/log/imldeployment-client
tmpfile=/tmp/deploystatus.log
typeset -i iErrors=0
typeset -i iUnknown=0
typeset -i iCount=0
# ----------------------------------------------------------------------
# FUNCTIONS
# ----------------------------------------------------------------------
# get a list profiles by searching a config.sh
# no param
function getprofiles(){
find ${selfdir}/profiles/ -name "config.sh" | rev | cut -f 2 -d "/" | rev
}
# ----------------------------------------------------------------------
# MAIN
# ----------------------------------------------------------------------
for myprofile in $( getprofiles )
do
iCount+=1
logfile=$( ls -tr1 ${logdir}/${myprofile}__* | tail -1 )
if [ -z "$logfile" ]; then
echo "UNKNOWN: $myprofile - was created but not rolled yet."
iUnknown+=1
else
if grep "^OK: ${myprofile}$" $logfile >/dev/null; then
echo "OK: $myprofile - $logfile"
else
iErrors+=1
echo "ERROR: $myprofile - $logfile"
echo " Last lines:"
tail -10 "${logfile}" | sed "s#^# #g"
echo
fi
fi
done > "$tmpfile"
if [ $iCount -eq 0 ]; then
echo "UNKNOWN: Deployment No profile was created yet."
else
if [ $iErrors -eq 0 ]; then
if [ $iUnknown -gt 0 ]; then
echo -n "UNKNOWN"
else
echo -n "OK"
fi
else
echo -n "ERROR"
fi
echo ": Deployment ... Profiles: $iCount ... Errors: $iErrors"
cat "$tmpfile"
fi
rm -f "$tmpfile"
exit $iErrors
# ----------------------------------------------------------------------