def test_error_payload_delivery(self, mock_get): mock_hipchat_error_request(mock_get) msg_inputs = self.host_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'hoststate': 'DOWN'} problem_msg = HipchatMessage('host', msg_inputs, None, None, None, False) response = problem_msg.deliver_payload() self.assertEqual(response.status_code, 401) self.assertTrue('error' in response.json())
def test_payload_delivery(self): inputs = "hostname|%(longdatetime)s|%(notificationtype)s|127.0.0.1|%(hoststate)s|NAGIOS_OUTPUT" msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'hoststate': 'DOWN'} problem_msg = HipchatMessage('host', msg_inputs, None, None, None, False) problem_msg.url = "http://httpbin.org/response-headers" response = problem_msg.deliver_payload(status="sent", message="") self.assertEqual(response.status_code, 200)
def main(): usage = "Usage: %prog [options] [action]..." parser = OptionParser(usage, version="%%prog v%s" % hipsaint.__version__) parser.add_option("-r", "--room", dest="room_id", default="", help="HipChat room id deliver message to") parser.add_option("-u", "--user", dest="user", default="Nagios", help="Username to deliver message as") parser.add_option("-t", "--token", dest="token", default="", help="HipChat API token to use") parser.add_option("-i", "--inputs", dest="inputs", default="", help="Input variables from Nagios separated by |") parser.add_option("-T", "--type", dest="type", default="", help="Mark if notification is from host group or service group, host|service|short-host|short-service") parser.add_option("-n", "--notify", action="store_true", default=False, dest="notify", help="Whether or not this message should trigger a notification for people in the room") parser.add_option("-m", "--mention", action="append", dest="mention", help="Add footer with @mentions (can be provided multiple times)") ### Parse command line (options, args) = parser.parse_args() ### Validate required input if not options.token: parser.error('--token is required') if not options.inputs: parser.error('--inputs is required') if not options.room_id: parser.error('--room_id is required') if not options.type: parser.error('--type is required') msg = HipchatMessage(**vars(options)) msg.deliver_payload()
def main(): usage = "Usage: %prog [options] [action]..." parser = OptionParser(usage, version="%%prog v%s" % hipsaint.__version__) parser.add_option("-r", "--room", dest="room_id", default="", help="HipChat room id deliver message to") parser.add_option("-u", "--user", dest="user", default="Nagios", help="Username to deliver message as") parser.add_option("-t", "--token", dest="token", default="", help="HipChat API token to use") parser.add_option("-i", "--inputs", dest="inputs", default="", help="Input variables from Nagios separated by |") parser.add_option("-T", "--type", dest="type", default="", help="Mark if notification is from host group or service group, host|service|short-host|short-service") parser.add_option("-n", "--notify", action="store_true", default=False, dest="notify", help="Whether or not this message should trigger a notification for people in the room") ### Parse command line (options, args) = parser.parse_args() ### Validate required input if not options.token: parser.error('--token is required') if not options.inputs: parser.error('--inputs is required') if not options.room_id: parser.error('--room_id is required') if not options.type: parser.error('--type is required') msg = HipchatMessage(**vars(options)) msg.deliver_payload()
def test_render_service(self): message_type = 'service' #"$SERVICEDESC$|$HOSTALIAS$|$LONGDATETIME$|$NOTIFICATIONTYPE$|$HOSTADDRESS$|$SERVICESTATE$|$SERVICEOUTPUT$" inputs = 'servicedesc|hostalias|%(longdatetime)s|%(notificationtype)s|127.0.0.1|%(servicestate)s|NAGIOS_OUTPUT' msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'servicestate': 'WARNING'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'yellow') msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'servicestate': 'CRITICAL'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'servicestate': 'UNKNOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'gray') msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'RECOVERY', 'servicestate': 'OK'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'green') msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'ACKNOWLEDGEMENT', 'servicestate': 'CRITICAL'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'purple')
def test_render_host(self): message_type = 'host' #"$HOSTNAME$|$LONGDATETIME$|$NOTIFICATIONTYPE$|$HOSTADDRESS$|$HOSTSTATE$|$HOSTOUTPUT$" -n inputs = "hostname|%(longdatetime)s|%(notificationtype)s|127.0.0.1|%(hoststate)s|NAGIOS_OUTPUT" msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'hoststate': 'DOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'RECOVERY', 'hoststate': 'UP'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'green') msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'UNREACHABLE', 'hoststate': 'UKNOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') msg_inputs = inputs % {'longdatetime': datetime.now(), 'notificationtype': 'ACKNOWLEDGEMENT', 'hoststate': 'DOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'purple')
def test_render_service(self): message_type = 'service' msg_inputs = self.service_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'servicestate': 'WARNING'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'yellow') msg_inputs = self.service_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'servicestate': 'CRITICAL'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') # Test short service problem_msg = HipchatMessage('short-service', msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') msg_inputs = self.service_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'servicestate': 'UNKNOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'gray') msg_inputs = self.service_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'RECOVERY', 'servicestate': 'OK'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'green') msg_inputs = self.service_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'ACKNOWLEDGEMENT', 'servicestate': 'CRITICAL'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'purple')
def test_render_host(self): message_type = 'host' msg_inputs = self.host_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'PROBLEM', 'hoststate': 'DOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') # Test short host problem_msg = HipchatMessage('short-host', msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') msg_inputs = self.host_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'RECOVERY', 'hoststate': 'UP'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'green') msg_inputs = self.host_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'UNREACHABLE', 'hoststate': 'UKNOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'red') msg_inputs = self.host_inputs % {'longdatetime': datetime.now(), 'notificationtype': 'ACKNOWLEDGEMENT', 'hoststate': 'DOWN'} problem_msg = HipchatMessage(message_type, msg_inputs, None, None, None, False) problem_msg.render_message() self.assertEqual(problem_msg.message_color, 'purple')