compile template message

This commit is contained in:
Matej Kramny
2017-02-06 21:56:08 -08:00
parent 85d92bcb07
commit 1b93730121
4 changed files with 14 additions and 11 deletions

View File

@@ -84,5 +84,6 @@ func getTemplateData(monitor *AbstractMonitor) map[string]interface{} {
"SystemName": monitor.config.SystemName,
"API": monitor.config.API,
"Monitor": monitor,
"now": time.Now().Format(monitor.config.DateFormat),
}
}

View File

@@ -15,14 +15,14 @@ import (
// Investigating template
var defaultHTTPInvestigatingTpl = MessageTemplate{
Subject: `{{ .Monitor.Name }} - {{ .SystemName }}`,
Message: `{{ .Name }} check **failed** - {{ .now }}
Message: `{{ .Monitor.Name }} check **failed** - {{ .now }}
{{ .lastFailReason }}`,
{{ .FailReason }}`,
}
// Fixed template
var defaultHTTPFixedTpl = MessageTemplate{
Subject: `{{ .Name }} - {{ .config.SystemName }}`,
Subject: `{{ .Monitor.Name }} - {{ .SystemName }}`,
Message: `**Resolved** - {{ .now }}
- - -

View File

@@ -192,7 +192,10 @@ func (mon *AbstractMonitor) AnalyseData() {
if triggered && mon.incident == nil {
// create incident
subject, message := mon.Template.Investigating.Exec(getTemplateData(mon))
tplData := getTemplateData(mon)
tplData["FailReason"] = mon.lastFailReason
subject, message := mon.Template.Investigating.Exec(tplData)
mon.incident = &Incident{
Name: subject,
ComponentID: mon.ComponentID,

View File

@@ -3,8 +3,6 @@ package cachet
import (
"bytes"
"text/template"
"github.com/Sirupsen/logrus"
)
type MessageTemplate struct {
@@ -39,13 +37,14 @@ func (t *MessageTemplate) Compile() error {
}
func (t *MessageTemplate) Exec(data interface{}) (string, string) {
return t.exec(t.subjectTpl, data), t.exec(t.messageTpl, data)
}
func (t *MessageTemplate) exec(tpl *template.Template, data interface{}) string {
buf := new(bytes.Buffer)
logrus.Warnf("%#v", t.subjectTpl)
t.subjectTpl.Execute(buf, data)
subject := buf.String()
return subject, ""
tpl.Execute(buf, data)
return buf.String()
}
func compileTemplate(text string) (*template.Template, error) {