mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-02-07 13:42:23 +02:00
58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
|
package cmd
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"github.com/SAP/jenkins-library/pkg/ans"
|
||
|
"github.com/SAP/jenkins-library/pkg/log"
|
||
|
"github.com/SAP/jenkins-library/pkg/telemetry"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func ansSendEvent(config ansSendEventOptions, telemetryData *telemetry.CustomData) {
|
||
|
err := runAnsSendEvent(&config, &ans.ANS{})
|
||
|
if err != nil {
|
||
|
log.Entry().WithError(err).Fatal("step execution failed")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func runAnsSendEvent(config *ansSendEventOptions, c ans.Client) error {
|
||
|
ansServiceKey, err := ans.UnmarshallServiceKeyJSON(config.AnsServiceKey)
|
||
|
if err != nil {
|
||
|
log.SetErrorCategory(log.ErrorConfiguration)
|
||
|
return err
|
||
|
}
|
||
|
c.SetServiceKey(ansServiceKey)
|
||
|
|
||
|
event := ans.Event{
|
||
|
EventType: config.EventType,
|
||
|
Severity: config.Severity,
|
||
|
Category: config.Category,
|
||
|
Subject: config.Subject,
|
||
|
Body: config.Body,
|
||
|
Priority: config.Priority,
|
||
|
Tags: config.Tags,
|
||
|
Resource: &ans.Resource{
|
||
|
ResourceName: config.ResourceName,
|
||
|
ResourceType: config.ResourceType,
|
||
|
ResourceInstance: config.ResourceInstance,
|
||
|
Tags: config.ResourceTags,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
if GeneralConfig.Verbose {
|
||
|
eventJson, _ := json.MarshalIndent(event, "", " ")
|
||
|
log.Entry().Infof("Event details: %s", eventJson)
|
||
|
}
|
||
|
|
||
|
if err = event.Validate(); err != nil {
|
||
|
log.SetErrorCategory(log.ErrorConfiguration)
|
||
|
return err
|
||
|
}
|
||
|
// We set the time
|
||
|
event.EventTimestamp = time.Now().Unix()
|
||
|
if err = c.Send(event); err != nil {
|
||
|
log.SetErrorCategory(log.ErrorService)
|
||
|
}
|
||
|
return err
|
||
|
}
|