From ff3e028a8588ab3f37410e44d51a5550744bf291 Mon Sep 17 00:00:00 2001 From: Santiago Date: Fri, 9 Jun 2023 10:59:24 -0300 Subject: [PATCH] Alerting: Add image URI annotation only when there's an image (#69825) * Alerting: Add image URI annotation only when there's an image * fix function name (changed on main branch) --- pkg/services/ngalert/state/compat.go | 11 +++++++++-- pkg/services/ngalert/state/compat_test.go | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/pkg/services/ngalert/state/compat.go b/pkg/services/ngalert/state/compat.go index 70d97e474d8..fbe934bc344 100644 --- a/pkg/services/ngalert/state/compat.go +++ b/pkg/services/ngalert/state/compat.go @@ -49,7 +49,10 @@ func StateToPostableAlert(alertState *State, appURL *url.URL) *models.PostableAl } if alertState.Image != nil { - nA[alertingModels.ImageTokenAnnotation] = generateImageURI(alertState.Image) + imageURI := generateImageURI(alertState.Image) + if imageURI != "" { + nA[alertingModels.ImageTokenAnnotation] = imageURI + } } if alertState.StateReason != "" { @@ -174,5 +177,9 @@ func generateImageURI(image *ngModels.Image) string { if image.URL != "" { return image.URL } - return "token://" + image.Token + if image.Token != "" { + return "token://" + image.Token + } + + return "" } diff --git a/pkg/services/ngalert/state/compat_test.go b/pkg/services/ngalert/state/compat_test.go index a33551cc27f..f98f32ff7a1 100644 --- a/pkg/services/ngalert/state/compat_test.go +++ b/pkg/services/ngalert/state/compat_test.go @@ -133,6 +133,21 @@ func Test_StateToPostableAlert(t *testing.T) { require.Equal(t, expected, result.Annotations) }) + + t.Run("don't add __alertImageToken__ if there's no image token", func(t *testing.T) { + alertState := randomState(tc.state) + alertState.Annotations = randomMapOfStrings() + alertState.Image = &ngModels.Image{} + + result := StateToPostableAlert(alertState, appURL) + + expected := make(models.LabelSet, len(alertState.Annotations)+1) + for k, v := range alertState.Annotations { + expected[k] = v + } + + require.Equal(t, expected, result.Annotations) + }) }) t.Run("should add state reason annotation if not empty", func(t *testing.T) {