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:
parent
0bea894c2e
commit
94ce6da0f2
|
|
@ -65,10 +65,17 @@ func (s *Opsgenie) Post(ctx context.Context, event eventv1.Event) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var details = make(map[string]string)
|
||||||
|
|
||||||
|
if event.Metadata != nil {
|
||||||
|
details = event.Metadata
|
||||||
|
}
|
||||||
|
details["severity"] = event.Severity
|
||||||
|
|
||||||
payload := OpsgenieAlert{
|
payload := OpsgenieAlert{
|
||||||
Message: event.InvolvedObject.Kind + "/" + event.InvolvedObject.Name,
|
Message: event.InvolvedObject.Kind + "/" + event.InvolvedObject.Name,
|
||||||
Description: event.Message,
|
Description: event.Message,
|
||||||
Details: event.Metadata,
|
Details: details,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := postMessage(ctx, s.URL, s.ProxyURL, s.CertPool, payload, func(req *retryablehttp.Request) {
|
err := postMessage(ctx, s.URL, s.ProxyURL, s.CertPool, payload, func(req *retryablehttp.Request) {
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import (
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/fluxcd/pkg/apis/event/v1beta1"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -38,9 +39,32 @@ func TestOpsgenie_Post(t *testing.T) {
|
||||||
}))
|
}))
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
|
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
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|
||||||
opsgenie, err := NewOpsgenie(ts.URL, "", nil, "token")
|
opsgenie, err := NewOpsgenie(ts.URL, "", nil, "token")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = opsgenie.Post(context.TODO(), testEvent())
|
err = opsgenie.Post(context.TODO(), tt.event())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue