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, "SystemName": monitor.config.SystemName,
"API": monitor.config.API, "API": monitor.config.API,
"Monitor": monitor, "Monitor": monitor,
"now": time.Now().Format(monitor.config.DateFormat),
} }
} }

View File

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

View File

@@ -192,7 +192,10 @@ func (mon *AbstractMonitor) AnalyseData() {
if triggered && mon.incident == nil { if triggered && mon.incident == nil {
// create incident // 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{ mon.incident = &Incident{
Name: subject, Name: subject,
ComponentID: mon.ComponentID, ComponentID: mon.ComponentID,

View File

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