Skip to content
Snippets Groups Projects
Select Git revision
  • ada16a78618ac56b2a85c09f2198e966acf3d335
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_docker_info

Blame
  • check_opencpu 3.76 KiB
    #!/bin/bash
    # ======================================================================
    #
    # NAGIOS CLIENT CHECK :: test if opencpu is available
    #
    # REQUIREMENTS
    # - wget
    #
    # It returns
    # - OK if http request was successful
    # - CRITICAL if http request fails
    # - unknown if wget is not available
    #
    # ----------------------------------------------------------------------
    #
    # ah=axel.hahn@iml.unibe.ch
    # ds=daniel.schueler@iml.unibe.ch
    #
    # 2019-05-10  v1.0  ah,ds
    # 2019-05-22  v1.1  show built date
    # 2020-03-05  v1.2  <axel.hahn@iml.unibe.ch> switch to ph.* helper functions
    # 2022-04-01  v1.3  <axel.hahn@iml.unibe.ch>  use wget default params; shell fixes
    # 2023-08-23  v1.4  <axel.hahn@unibe.ch>      add help; add param -p; fix critical status
    # 2025-02-10  v1.5  <axel.hahn@unibe.ch>      harden sourcing files
    # ======================================================================
    
    # shellcheck source=/dev/null
    . "$( dirname "$0" )/inc_pluginfunctions" || exit 1
    
    self_APPVERSION=1.5
    
    tmpOk=/tmp/check_opencpu-ok
    tmpErr=/tmp/check_opencpu-error
    ocpuUrl=http://localhost/ocpu
    
    packagesDefault="eosceGLM eosceLinReg eosceReliability eosceReporter msrdAnalytics"
    
    paramsWget="-T 5 -t 1 --no-check-certificate"
    #            ^    ^
    #            |    tries = 1
    #            timeout in seconds
    
    # ----------------------------------------------------------------------
    # FUNCTIONS
    # ----------------------------------------------------------------------
    
    # show help text
    function showHelp(){
        local _self; _self="$( basename "$0" )"
    cat <<EOF
    $( ph.showImlHelpHeader )
    
    Test if opencpu is available.
    It returns OK if
    - opencpu is running on $ocpuUrl
    - all packages are installed: 
      $packagesDefault
    
    SYNTAX:
    $_self [-h] [-p PKG]
    
    OPTIONS:
    
        -h or --help   show this help and exit.
    
    PARAMETERS:
    
        -p PKG(s)      define package to test; for multiple packages quote 
                       it and delimit them with space.
    
    EXAMPLES:
    
        $_self -p "myPackage1 myPackage2 anotherPackage"
                       Check given opencpu packages
    
        $_self -p ""
                       Check Opencpu only (without packages)
    
    EOF
    }
    
    # check if a givem packe is installed
    # param  string  name of the package
    function checkOpenCpuPackage(){
      package=$1
      pkgUrl=$ocpuUrl/library/$package/info
      tmpfile=/tmp/check_opencpu-$package
    
      wget $paramsWget -O $tmpfile $pkgUrl 2>/dev/null
      if [ $? -ne 0 ]; then
        echo "ERROR: package is NOT available [$package]" >>$tmpErr
      else
        echo "OK: package is available [$mypackage] .. Build: $(cat $tmpfile | grep "^Built" | cut -c 21-)" >>$tmpOk
      fi
      rm -f $tmpfile 2>/dev/null
    }
    
    # ----------------------------------------------------------------------
    # MAIN
    # ----------------------------------------------------------------------
    
    # --- check param -h
    case "$1" in
        "--help"|"-h")
            showHelp
            exit 0
            ;;
        *)
    esac
    
    packages=$(   ph.getValueWithParam "$packagesDefault" "p" "$@" | sort )
    
    rm -f $tmpOk 2>/dev/null
    
    echo -n "OpenCpu: "
    
    
    # ----- check if WGET exists
    ph.require wget
    
    # ----- check if openCpu is running
    wget $paramsWget -O /dev/null $ocpuUrl 2>/dev/null
    if [ $? -ne 0 ]; then
      echo "ERROR: unable to connect to openCpu with $ocpuUrl"
      echo
      echo "I repeat the http request to show some more debug infos:"
      wget $paramsWget -O /dev/null -S $ocpuUrl
      ph.setStatus "critical"
      ph.exit
    fi
    
    echo "OK: openCpu is running and reachable with http" >>$tmpOk
    
    # ----- check custom modules
    for mypackage in $packages
    do
      checkOpenCpuPackage $mypackage
    done
    
    # ----- result
    ph.setStatus "ok"
    if [ -f $tmpErr ]; then
      echo "ERROR: openCpu is available but not all packages"
      cat $tmpErr && rm -f $tmpErr
      echo
      ph.setStatus "critical"
    else
      echo "OK"
    fi
    cat $tmpOk 2>/dev/null && rm -f $tmpOk
    
    ph.exit
    
    # ----------------------------------------------------------------------