From 80da0e2ce3c1abe5fe746ad1fe9905dbc4c7fcbc Mon Sep 17 00:00:00 2001 From: Eric Loyd Date: Mon, 13 May 2024 07:48:02 -0400 Subject: [PATCH] Can now save or load from a local file --- api.sh | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/api.sh b/api.sh index 6c7fa0b..5d0a3f9 100755 --- a/api.sh +++ b/api.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash -APIKEY="2q2jXBDQ9nq40KEZWoJAUMefV9JvkpRF9Se6JQW9eGceHPtTtsJIeWWp6FeJk5Es" -XI_URL="https://192.168.1.19/nagiosxi" +APIKEY="" +XI_URL="" curl="curl -k -s" # curl -XGET "https://192.168.1.19/nagiosxi/api/v1/objects/service?apikey=" @@ -49,6 +49,23 @@ if [ -n "$api_start" -a -n "$api_command" ]; then exit fi +# Grab a copy of the JSON data so we don't have to keep making calls over and over +# If we used an existing file, then just use that +if [ -z "$myFile" ]; then + tmpJSON=`mktemp` + do_api objects servicestatus > $tmpJSON +else + tmpJSON="$myFile" +fi + +# if mySave is not empty, then we're just saving it into the file called $mySave +if [ -n "$mySave" ]; then + mv $tmpJSON $mySave + echo "JSON data saved to $mySave" + exit +fi + +# Otherwise, let's parse the JSON data here # Parse our string jqString='.servicestatus[]' [ -n "$myHost" ] && jqString="$jqString | select(.host_name | test(\"$myHost\"))" @@ -58,26 +75,5 @@ jqString='.servicestatus[]' [ -n "$mySG" ] && jqString="$jqString | select(.servicegroup_name==\"$mySG\")" [ -n "$myFields" ] && jqString="$jqString | $myFields" -# Grab a copy of the hosts.json so we don't have to keep making calls over and over -# If we used an existing file, then just use that -if [ -z "$myFile" ]; then - tmpJSON=`mktemp` -else - tmpJSON="$myFile" -fi - -# Let's pull everything that matches everything we were given -do_api objects servicestatus > $tmpJSON - -# if mySave is not empty, then we're just saving it into the file called $mySave -if [ -n "$mySave" ]; then - cp $tmpJSON $mySave - [ -z "$myFile" ] && rm $tmpJSON - echo "JSON data saved to $mySave" - exit -fi - -# Otherwise, let's parse the JSON data here cat $tmpJSON | jq -r "$jqString" - [ -z "$myFile" ] && rm $tmpJSON