Skip to content
Snippets Groups Projects
Select Git revision
  • 532695ab2603f83d5cd7c6aa0e58daf8e0ef0c7f
  • main default protected
2 results

Callout.md

Blame
  • 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
    
    # ----------------------------------------------------------------------