remove unrelated actions/notify_slack.go file

This commit is contained in:
ubergesundheit 2017-02-25 17:30:03 +01:00
parent 97d108f415
commit ea76f90e0d
No known key found for this signature in database
GPG key ID: 5CBA93477A39C06E

View file

@ -1,92 +0,0 @@
package actions
import (
"fmt"
"net/http"
"strings"
"github.com/mozillazg/request"
)
// SlackNotifier is used to make the https requests to a specified slack
// webhook URL
type SlackNotifier struct {
slackURL string
identity string
}
const (
slackMessageStartup = "Watchtower startup"
slackMessageError = "Some errors while checking and redeployment (Please check logs):"
slackMessageSuccess = "Successfully redeployed images:"
)
// NewSlackNotifier instantiates a new SlackNotifier with an URL and an identifier which will
// be prepended to each message it sends
func NewSlackNotifier(slackURL, identity string) *SlackNotifier {
identity = strings.Trim(identity, " ")
if len(identity) != 0 {
identity = fmt.Sprintf("[%s]: ", identity)
}
return &SlackNotifier{
slackURL: slackURL,
identity: identity,
}
}
func (s SlackNotifier) sendNotification(json map[string]interface{}) {
c := new(http.Client)
req := request.NewRequest(c)
req.Json = json
_, err := req.Post(s.slackURL)
if err != nil {
fmt.Println(err)
}
}
// NotifyStartup sends a startup message to slack
func (s SlackNotifier) NotifyStartup() {
s.sendNotification(map[string]interface{}{
"text": fmt.Sprintf("%s%s", s.identity, slackMessageStartup),
})
}
func buildAttachment(items []string, title, color string) map[string]interface{} {
var fields []map[string]string
for _, item := range items {
fields = append(fields, map[string]string{"value": item, "short": "false"})
}
return map[string]interface{}{
"fallback": title + strings.Join(items, ", "),
"color": color,
"title": title,
"fields": fields,
}
}
// NotifyContainerUpdate sends a Message after updating containers which yielded either success or errors or both
func (s SlackNotifier) NotifyContainerUpdate(successfulContainers, errorMessages []string) {
var attachments []map[string]interface{}
if len(successfulContainers) != 0 {
attachments = append(attachments, buildAttachment(successfulContainers, slackMessageSuccess, "good"))
}
if len(errorMessages) != 0 {
attachments = append(attachments, buildAttachment(errorMessages, slackMessageError, "danger"))
}
// add a pretext to the first attachment
attachments[0]["pretext"] = s.identity
s.sendNotification(map[string]interface{}{
"attachments": attachments,
})
}