Add severity to opsgenie Details payload

Co-authored-by: souleb <bah.soule@gmail.com>
Signed-off-by: al-lac <lackner.alex@gmail.com>
This commit is contained in:
al-lac 2024-04-17 09:46:21 +02:00
parent 0bea894c2e
commit 94ce6da0f2
2 changed files with 36 additions and 5 deletions

View File

@ -65,10 +65,17 @@ func (s *Opsgenie) Post(ctx context.Context, event eventv1.Event) error {
return nil
}
var details = make(map[string]string)
if event.Metadata != nil {
details = event.Metadata
}
details["severity"] = event.Severity
payload := OpsgenieAlert{
Message: event.InvolvedObject.Kind + "/" + event.InvolvedObject.Name,
Description: event.Message,
Details: event.Metadata,
Details: details,
}
err := postMessage(ctx, s.URL, s.ProxyURL, s.CertPool, payload, func(req *retryablehttp.Request) {

View File

@ -24,6 +24,7 @@ import (
"net/http/httptest"
"testing"
"github.com/fluxcd/pkg/apis/event/v1beta1"
"github.com/stretchr/testify/require"
)
@ -38,9 +39,32 @@ func TestOpsgenie_Post(t *testing.T) {
}))
defer ts.Close()
opsgenie, err := NewOpsgenie(ts.URL, "", nil, "token")
require.NoError(t, err)
tests := []struct {
name string
event func() v1beta1.Event
}{
{
name: "test event",
event: testEvent,
},
{
name: "test event with empty metadata",
event: func() v1beta1.Event {
events := testEvent()
events.Metadata = nil
return events
},
},
}
err = opsgenie.Post(context.TODO(), testEvent())
require.NoError(t, err)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
opsgenie, err := NewOpsgenie(ts.URL, "", nil, "token")
require.NoError(t, err)
err = opsgenie.Post(context.TODO(), tt.event())
require.NoError(t, err)
})
}
}