in pkg/exporter/render.go [36:91]
func (tmplt *EventTemplate) render(ctx context.Context, swEvent *sw.Event, kEvent *k8score.Event) chan bool {
done := make(chan bool)
go func() {
var templateCtx k8s.TemplateContext
select {
case templateCtx = <-k8s.Registry.GetContext(ctx, kEvent):
case <-ctx.Done():
done <- true
return
}
if logger.Log.IsLevelEnabled(logrus.DebugLevel) {
if bs, err := json.Marshal(templateCtx); err == nil {
logger.Log.Debugf("template context %+v", string(bs))
}
}
render := func(t *template.Template, destination *string) error {
if t == nil {
return nil
}
var buf bytes.Buffer
if err := t.Execute(&buf, templateCtx); err != nil {
return err
}
if buf.Len() > 0 {
*destination = buf.String()
}
return nil
}
if err := render(tmplt.messageTemplate, &swEvent.Message); err != nil {
logger.Log.Debugf("failed to render the template, using the default event content. %+v", err)
}
if err := render(tmplt.sourceTemplate.serviceTemplate, &swEvent.Source.Service); err != nil {
logger.Log.Debugf("failed to render service template, using the default event content. %+v", err)
}
if err := render(tmplt.sourceTemplate.serviceInstanceTemplate, &swEvent.Source.ServiceInstance); err != nil {
logger.Log.Debugf("failed to render service instance template, using the default event content. %+v", err)
}
if err := render(tmplt.sourceTemplate.endpointTemplate, &swEvent.Source.Endpoint); err != nil {
logger.Log.Debugf("failed to render endpoin template, using the default event content. %+v", err)
}
done <- true
}()
return done
}