Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1096 notification use body switch #1101

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions cmd/bosun/conf/conf.go
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,7 @@ type Notification struct {
Timeout time.Duration
ContentType string
RunOnActions bool
UseBody bool
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think @mjibson means to remove this altogether, and make no conf changes. Just change the data object passed into the body template here:https:/bosun-monitor/bosun/blob/master/cmd/bosun/conf/notify.go#L49 to have both the subject and body available.

This will be a breaking change, but I think it will be more flexible that way.


next string
email string
Expand Down Expand Up @@ -1085,6 +1086,8 @@ func (c *Conf) loadNotification(s *parse.SectionNode) {
n.Body = tmpl
case "runOnActions":
n.RunOnActions = v == "true"
case "useBody":
n.UseBody = v == "true"
default:
c.errorf("unknown key %s", k)
}
Expand Down
28 changes: 20 additions & 8 deletions cmd/bosun/conf/notify.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,30 +30,42 @@ func (n *Notification) Notify(subject, body string, emailsubject, emailbody []by
go n.DoEmail(emailsubject, emailbody, c, ak, attachments...)
}
if n.Post != nil {
go n.DoPost([]byte(subject), ak)
go n.DoPost(n.GetPayload(subject, body), ak)
}
if n.Get != nil {
go n.DoGet(ak)
}
if n.Print {
go n.DoPrint(subject)
if n.UseBody {
go n.DoPrint("Subject: " + subject + ", Body: " + body)
} else {
go n.DoPrint(subject)
}
}
}

func (n *Notification) GetPayload(subject, body string) (payload []byte) {
if n.UseBody {
return []byte(body)
} else {
return []byte(subject)
}
}

func (n *Notification) DoPrint(subject string) {
slog.Infoln(subject)
func (n *Notification) DoPrint(payload string) {
slog.Infoln(payload)
}

func (n *Notification) DoPost(subject []byte, ak string) {
func (n *Notification) DoPost(payload []byte, ak string) {
if n.Body != nil {
buf := new(bytes.Buffer)
if err := n.Body.Execute(buf, string(subject)); err != nil {
if err := n.Body.Execute(buf, string(payload)); err != nil {
slog.Errorln(err)
return
}
subject = buf.Bytes()
payload = buf.Bytes()
}
resp, err := http.Post(n.Post.String(), n.ContentType, bytes.NewBuffer(subject))
resp, err := http.Post(n.Post.String(), n.ContentType, bytes.NewBuffer(payload))
if resp != nil && resp.Body != nil {
defer resp.Body.Close()
}
Expand Down
38 changes: 19 additions & 19 deletions cmd/bosun/web/static.go
Original file line number Diff line number Diff line change
Expand Up @@ -4917,7 +4917,7 @@ edhY5S/+PbPoq2Tal5xvmt3piswjT8hTQcvM/n8AAAD//7n7cuC9JgAA

"/js/ace/mode-bosun.js": {
local: "web/static/js/ace/mode-bosun.js",
size: 4402,
size: 4410,
modtime: 0,
compressed: `
H4sIAAAJbogA/7RX23LbNhO+tp6C4e+/EiWa6m1jO55kUk8yTdtM7NyUpB0eIBERBdAA6EMN99m7Cx5M
Expand All @@ -4928,24 +4928,24 @@ gwZMwwDVcxrPOS/qNwOmyK3awgpda1GyRFHOJjWoa9WYrlVBOtb9yC4lsaQSNFH24Wh0HQkL4K1jq1aa
JOUNF6km64jmp4KvNVhR5JTmRBeULRtcHL8tRYS70Iyf5YQUOs55siLpx1K9/yh1lOf8pn0r2YrxG3ae
CSIznqda0TV5zdK3gN6AwlTBmSQf6JoCORKJJDujLCGtNlkXOSpI8E2eZBqghPr86cMv5A5DbDxJ2euc
CAUi3Inx6DpKBNeq0U4EwN9EgumUFISlssXDmd+4oguaVFszzGxc2xPXfOD5lUP6p7+vNF0yLsjnegLC
Y7d8uqpdWsbJujCxJUoXgjKlE84gRur8riCaQVoZR/FS6Zin3U02vugCyjL+SpKtpWck2TDtbzjJ3cHS
HTAUerjnia2xZi4rG0B6cQpJbVhEiAwe4KuyqB9nRFAolIZSk8mtSiN4E7G0zfN2OVZAuzTGJUkWsSUE
kpfgsZQuFvqqXR2XNFeUPdK5XkKcr/WCCnD0AoKUQMnkQmPl6BzqYR3d6jVJaQRD2sS8ICKBOGDiS5OD
ssRiECRaQTGZilEQ/6XgsMsolhqKpuCQQ6ngBXDDR149WAQEpGbXLcemeluSucQ607k0W2rXQVcTzRq/
dbLbd6D76CC3t3u3b6cTOIBXGZXevqg70j3WHywVyrZeWj687aFob0/xFWEvLXtVRd92jVSQJbkF6cUE
nNX2rpllO/UCzFyYB8rgNihoRmyUP7jbyLBPGsU58SgDAuDpDRv+ftgHbRR2IfqPZKEkiggRO1pdYRFB
KL3cPBQcLBubqzKZdSu/Tut+R3EmQSBnzsQ/iA7+fH3wx48HP3mX4cyIndnEvw9rvwyybdkM0TZkip2k
Nzmjxakzgd2IO6d+8aYVke/iUcs8DnURKS463IYp1C21IXFsePxb63AWQoLtsIQpuN3kMBlb2zvt2vh9
wJb9lBvb417CXV3Vq54PYmHijkOkNp6cvIS/AP55joaRfzFGdmMzieLQcaYnRoYqzzYw9r+EBu5LOHVg
PH5wrfncgm61zImVQ83tBrLWRCwJgChRkidg98euhV7A/cTfckPKEy/h6zXWUh9zfgGB+J83nQ+pYZOA
wlceg1YBX2ub9T87CE98LKlwRurBNAjiQUdtp2kPKwhmOggO4DfFX/WY4w8f/9dHR/rVK/2DfgEiDb8L
/ZcGkT461sev9PGxfnGsj2AwaLtXl5u5EAT+5H44uJWe2KUXOg+DelAyZYEfvV7zOfnN5oAZ93ikmArx
J9ATuuhwOJL38BHGJFX0mlQZYiIO/xnAXlcfPCy6C/oUvOl+v5lXZ06bUZWBtuAG0R87eRd6HuwH98HN
7EHD4GYWxPNquihltn1oWP+8C3SZ1upw+YnKXJ33UcySaiPxkxsZruq29r507Fstgee3B2827set9cGT
bu2cw9hOGnG/Jqtz7jII0nCGhCeh73VlvhM6J/YQ/0H/77B9Q1VmxQIOAdkzf3/St/ZwsjOp6s0/HI7g
bwQ3PTCRQZdRcjJwN3MHLoDwlTuqb5fe8HVuQArmUG/3Dfl7bsTd9+Hr9n99Rf4VTG9fjOEijBOHT9x8
OxrDzJ0hH9fUaqu923P1HfvMkGxmAAK67YYwYJMB8H2amntEP34YYS+BS65B8QrBFVdwaeumS024cgom
xN8BAAD//xDH9TIyEQAA
Y7d8uqpdWsbJujCxJUoXgjKlE84gRur8riCaQVoZR/FS6ZindxpS+g08O5ttfNIFlmX8lSSVSmfpGUk2
KPgbznJ3sHUHDIUe7n1ia6ydy8oGkF+cQnIbFhEigyf4qizqxxkRFAqmodRkdKvSCN5ELG3zvV2OldAu
jXFJkkVsCQHlJXgupYuFvmpXxyXNFWWPdK6XEO9rvaACHL6AYCVQOrnQWEE6h7pYR7d6TVIawZA2sS+I
SCAeWADS5KIssSgEiVZQVKZyFOTBUnDYZRRLDcVTcMilVPACuOEjrx4sAgJSs+uWY1PFLclcYr3pXJot
teugu4lmjd862e070H10kNvbvdu30wkcwKuMSm9f1J3pHusQlgplWy8tH972ULS3p/iKsJeWvaqib7tG
KsiS3IL0YgLOanvYzLKdegFmMMwDZXAbFDYjNsof3G1k2CeN4px4lAEB8PSGDX8/7IM2CrsQ/UeyUBJF
hIgdra6wiCCUXm4eCg6Yjc1Vmcy6HaBO635ncSZBIGfOxD+IDv58ffDHjwc/eZfhzIid2cS/D2u/DLJt
2QzRNmSKnaQ3OaPFqTOB3Yg7p37xphWR7+JRyzwOdREpLjrchinUrbUhcWx4/FvrcCZCgu2whCm43eQw
GVvbO+3a+J3Alv2UG9vjXsJdXdWrng9iYeKOQ6Q2npy8hL8A/nmOhpF/MUZ2YzOJ4tBxpidGhirPNjD2
v4QG7ks4dWA8fnCt+dyCbrXMiZVDze0GstZELAmAKFGSJ2D3x66FXsD9xN9yQ8oTL+HrNdZSH3N+AYH4
nzedD6lhk4DCVx6DVgFfbZv1PzsIT3wsqXBG6sE0COJBR22naQ8rCGY6CA7gN8Vf9ZjjDx//10dH+tUr
/YN+ASINvwv9lwaRPjrWx6/08bF+cayPYDBou1eXm7kQBP7kfji4lZ7YpRc6D4N6UDJlgR+/XvNZ+c3m
gBn3eKSYCvEn0BO66HA4kvfwMcYkVfSaVBliIg7/GcBeVx88LLoL+hS86X6/mVdnTptRlYG24AbRHzt5
F3oe7Af3wc3sQcPgZhbE82q6KGW2fWhY/7wLdJnW6nAJispcnfdRzJJqI/GTGxmu6rb2vnTsWy2B57cH
bzbux631wZNu7ZzD2E4acb8mq3PuMgjScIaEJ6HvdWW+Ezon9hD/Qf/vsH1DVWbFAg4B2TN/f9K39nCy
M6nqzT8cjuBvBDc+MJFBl1FyMnBHcwcugvCVO6pvmd7wtW5ACuZQb/dN+Xtuxt334Wv3f31V/hVMb1+Q
4UKME4dP3IA7GsPMnSEf19Rqq71bdPUd+8yQbGYAArrthjBgkwHwfZqae0Q/fhhhL4HLrkHxCsEVV3B5
66ZLTbhyCibE3wEAAP//qATqLToRAAA=
`,
},

Expand Down
2 changes: 1 addition & 1 deletion cmd/bosun/web/static/js/ace/mode-bosun.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var BosunHighlightRules = function() {
var inAlertKeywords = "macro|template|crit|warn|depends|squelch|critNotification|" +
"warnNotification|unknown|unjoinedOk|ignoreUnknown|log"

var inNotificationKeywords = "email|post|get|print|contentType|next|timeout|body";
var inNotificationKeywords = "email|post|get|print|contentType|next|timeout|body|useBody";

var inTemplateKeywords = "subject|body";

Expand Down