//Notify sends messages to the endpoint notifier func (notifier *HipChatNotifier) Notify(messages Messages) bool { overallStatus, pass, warn, fail := messages.Summary() text := fmt.Sprintf("%s is <STRONG>%s</STRONG>. Fail: %d, Warn: %d, Pass: %d", notifier.ClusterName, overallStatus, fail, warn, pass) for _, message := range messages { text += fmt.Sprintf("<BR><STRONG><CODE>%s</CODE></STRONG>:%s:%s is <STRONG>%s</STRONG>.", message.Node, html.EscapeString(message.Service), html.EscapeString(message.Check), message.Status) if utf8.RuneCountInString(message.Output) > 0 { text += fmt.Sprintf("<BR>%s", strings.Replace(html.EscapeString(strings.TrimSpace(message.Output)), "\n", "<BR>", -1)) } } level := "green" if fail > 0 { level = "red" } else if warn > 0 { level = "yellow" } client := hipchat.NewClient(notifier.AuthToken) if notifier.BaseURL != "" { url, err := url.Parse(notifier.BaseURL) if err != nil { log.Printf("Error parsing hipchat base url: %s\n", err) } client.BaseURL = url } from := "" if notifier.From != "" { from = notifier.From } notifRq := &hipchat.NotificationRequest{ Color: level, Message: text, Notify: true, MessageFormat: "html", From: from, } resp, err := client.Room.Notification(notifier.RoomId, notifRq) if err != nil { log.Printf("Error sending notification to hipchat: %s\n", err) log.Printf("Server returns %+v\n", resp) return false } return true }
//Notify sends messages to the endpoint notifier func (notifier *HipChatNotifier) Notify(messages Messages) bool { overallStatus, pass, warn, fail := messages.Summary() text := fmt.Sprintf(header, notifier.ClusterName, overallStatus, fail, warn, pass) for _, message := range messages { text += fmt.Sprintf("\n%s:%s:%s is %s.", message.Node, message.Service, message.Check, message.Status) text += fmt.Sprintf("\n%s", message.Output) } level := "green" if fail > 0 { level = "red" } else if warn > 0 { level = "yellow" } client := hipchat.NewClient(notifier.AuthToken) if notifier.BaseURL != "" { url, err := url.Parse(notifier.BaseURL) if err != nil { log.Printf("Error parsing hipchat base url: %s\n", err) } client.BaseURL = url } from := "" if notifier.From != "" { from = notifier.From } notifRq := &hipchat.NotificationRequest{ From: from, Message: text, Color: level, Notify: true, } resp, err := client.Room.Notification(notifier.RoomId, notifRq) if err != nil { log.Printf("Error sending notification to hipchat: %s\n", err) log.Printf("Server returns %+v\n", resp) return false } return true }