func()

in alertmanager/client/template_client.go [129:151]


func (t *templateClient) AddTemplate(filename, tmplName, tmplText string) error {
	t.fileLocks.Lock(filename)
	defer t.fileLocks.Unlock(filename)

	tmplFile, err := t.readTmplFile(filename)
	if err != nil {
		return err
	}
	tmplMap := getTemplatesByName(tmplFile)

	if tmplMap[tmplName] != nil {
		return fmt.Errorf("template %s already exists", tmplName)
	}

	newTmpl := &template.Template{}
	newTmplBody, err := newTmpl.Parse(tmplText)
	if err != nil {
		return fmt.Errorf("error parsing template: %v", err)
	}
	tmplMap[tmplName] = newTmplBody

	return t.writeTmplFile(filename, writeTmplMapText(tmplMap))
}