From 586998ca14b68d1c8320b0f8c4332da352c36fc0 Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch>
Date: Wed, 23 Aug 2023 16:45:34 +0200
Subject: [PATCH] update opencpu

---
 check_opencpu | 60 +++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 54 insertions(+), 6 deletions(-)

diff --git a/check_opencpu b/check_opencpu
index 5442c25..253daa7 100755
--- a/check_opencpu
+++ b/check_opencpu
@@ -20,16 +20,18 @@
 # 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
 # ======================================================================
 
 
 . $(dirname $0)/inc_pluginfunctions
+self_APPVERSION=1.4
 
 tmpOk=/tmp/check_opencpu-ok
 tmpErr=/tmp/check_opencpu-error
 ocpuUrl=http://localhost/ocpu
 
-packages="eosceGLM eosceLinReg eosceReliability eosceReporter msrdAnalytics"
+packagesDefault="eosceGLM eosceLinReg eosceReliability eosceReporter msrdAnalytics"
 
 paramsWget="-T 5 -t 1 --no-check-certificate"
 #            ^    ^
@@ -40,7 +42,43 @@ paramsWget="-T 5 -t 1 --no-check-certificate"
 # 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
@@ -59,23 +97,33 @@ function checkOpenCpuPackage(){
 # 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
-wget --version >/dev/null 2>&1
-if [ $? -ne 0 ]; then
-  ph.abort "UNKNOWN (wget was not found)"
-fi
+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 "error"
+  ph.setStatus "critical"
   ph.exit
 fi
 
-- 
GitLab