66 lines
2.4 KiB
Bash
Executable File
66 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
##################################################################################
|
|
# #
|
|
# Example script for creating a UserRequest ticket via the REST/JSON webservices #
|
|
# #
|
|
##################################################################################
|
|
|
|
# iTop location and credentials, change them to suit your iTop installation
|
|
ITOP_URL="https://itop.alldcs.nl"
|
|
ITOP_USER="allard"
|
|
ITOP_PWD="Itop01@@@"
|
|
|
|
|
|
# Parameters checking, see below for default values
|
|
if [ "$1" == "" ]; then
|
|
echo "Missing parameter 1: host"
|
|
exit -1
|
|
else
|
|
HOST="$1"
|
|
fi
|
|
|
|
if [ "$2" == "" ]; then
|
|
echo "Missing parameter 2: Service"
|
|
exit -1
|
|
else
|
|
SERVICE="$2"
|
|
fi
|
|
|
|
if [ "$3" == "" ]; then
|
|
echo "Missing parameter 3: Service Status"
|
|
exit -1
|
|
else
|
|
SERVICE_STATUS="$3"
|
|
fi
|
|
|
|
if [ "$4" == "" ]; then
|
|
echo "Missing parameter 4: Service State Type"
|
|
exit -1
|
|
else
|
|
SERVICE_STATUS_TYPE="$4"
|
|
fi
|
|
|
|
# Default values, adapt them to your configuration
|
|
TICKET_CLASS="UserRequest"
|
|
ORGANIZATION="SELECT Organization JOIN FunctionalCI AS CI ON CI.org_id=Organization.id WHERE CI.name='"${HOST}"'"
|
|
TITLE="Service Down on $1"
|
|
DESCRIPTION="The service $SERVICE is in state $SERVICE_STATUS on $HOST"
|
|
|
|
# Let's create the ticket via the REST/JSON API
|
|
if [[ ( "$SERVICE_STATUS" != "OK" ) && ( "$SERVICE_STATUS" != "UP" ) && ( "$SERVICE_STATUS_TYPE" == "HARD" ) ]]; then
|
|
CIS_LIST='[{"functionalci_id":"SELECT FunctionalCI WHERE name=\"'"$1"'\"", "impact_code": "manual"}]'
|
|
JSON_DATA='{"operation":"core/create", "class":"'"${TICKET_CLASS}"'", "fields": {"functionalcis_list":'"${CIS_LIST}"', "org_id":"'"${ORGANIZATION}"'", "title":"'"$TITLE"'", "description":"'"$DESCRIPTION"'"}, "comment": "Created by the Monitoring", "output_fields": "id"}'
|
|
|
|
RESULT=`wget -q --post-data='auth_user='"${ITOP_USER}"'&auth_pwd='"${ITOP_PWD}"'&json_data='"${JSON_DATA}" --no-check-certificate -O - "${ITOP_URL}/webservices/rest.php?version=1.0"`
|
|
|
|
PATTERN='"key":"([0-9])+"'
|
|
if [[ $RESULT =~ $PATTERN ]]; then
|
|
echo "Ticket created successfully"
|
|
else
|
|
echo "ERROR: failed to create ticket"
|
|
echo $RESULT
|
|
fi
|
|
else
|
|
echo "Service State Type != HARD, doing nothing"
|
|
fi
|