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,35 +49,31 @@ if [ -n "$api_start" -a -n "$api_command" ]; then exit fi -# Parse our string -jqString='.servicestatus[]' -[ -n "$myHost" ] && jqString="$jqString | select(.host_name | test(\"$myHost\"))" -[ -n "$myService" ] && jqString="$jqString | select(.service_description | test(\"$myService\"))" -[ -n "$myCommand" ] && jqString="$jqString | select(.check_command | test(\"$myCommand\"))" -[ -n "$myHG" ] && jqString="$jqString | select(.hostgroup_name==\"$myHG\")" -[ -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 +# 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 -# 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 + mv $tmpJSON $mySave echo "JSON data saved to $mySave" exit fi # Otherwise, let's parse the JSON data here -cat $tmpJSON | jq -r "$jqString" +# Parse our string +jqString='.servicestatus[]' +[ -n "$myHost" ] && jqString="$jqString | select(.host_name | test(\"$myHost\"))" +[ -n "$myService" ] && jqString="$jqString | select(.service_description | test(\"$myService\"))" +[ -n "$myCommand" ] && jqString="$jqString | select(.check_command | test(\"$myCommand\"))" +[ -n "$myHG" ] && jqString="$jqString | select(.hostgroup_name==\"$myHG\")" +[ -n "$mySG" ] && jqString="$jqString | select(.servicegroup_name==\"$mySG\")" +[ -n "$myFields" ] && jqString="$jqString | $myFields" +cat $tmpJSON | jq -r "$jqString" [ -z "$myFile" ] && rm $tmpJSON