forked from mdcollins05/PagerDuty-Icinga2
-
Notifications
You must be signed in to change notification settings - Fork 1
/
wrapper.sh
74 lines (65 loc) · 1.47 KB
/
wrapper.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#! /bin/bash
usage()
{
cat << EOF
usage: $0 options
This script is a wrapper for pagerduty_nagios.pl
OPTIONS:
-h Show this message
-t Notification type can be ‘PROBLEM′ or ‘RECOVERY′
-k Service key
-i Incident key
-d Description
-e Details
EOF
}
declare TYPE=
declare API_BASE="your.dutyfree.host"
declare SERV_KEY=
declare INCIDENT_KEY=
declare DESCRIPTION=
declare DETAILS=
while getopts “ht:k:i:d:e:” OPTION
do
case $OPTION in
h)
usage
exit 1
;;
t)
TYPE=$OPTARG
;;
k)
SERV_KEY=$OPTARG
;;
i)
INCIDENT_KEY=$OPTARG
;;
d)
DESCRIPTION=$OPTARG
;;
e)
DETAILS=$OPTARG
;;
?)
usage
exit
;;
esac
done
if [[ -z $TYPE ]] || [[ -z $SERV_KEY ]] || [[ -z $INCIDENT_KEY ]] || [[ -z $DESCRIPTION ]] || [[ -z $DETAILS ]]
then
echo "mandatory parameter missing :("
usage
exit 1
fi
if [ $TYPE == "PROBLEM" ] || [ $TYPE == "CUSTOM" ]
then
ACTION=trigger
elif [ $TYPE == "ACKNOWLEDGEMENT" ]
then
ACTION=acknowledge
else
ACTION=resolve
fi
perl /usr/local/bin/pagerduty_icinga.pl enqueue --api-base="$API_BASE" -f pd_nagios_object=service -f service_key=$SERV_KEY -f incident_key=$INCIDENT_KEY -f description=$DESCRIPTION -f event_type=$ACTION -f details="$DETAILS"