From 3244b65dbcb25f7e59c879bc3229665f1bb85bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Sat, 13 Jun 2020 12:12:40 +0100 Subject: [PATCH] feat(api): handle @cluster=foo in the silence browser --- cmd/karma/views.go | 2 ++ cmd/karma/views_test.go | 26 +++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/cmd/karma/views.go b/cmd/karma/views.go index 88747facc..02ccb4933 100644 --- a/cmd/karma/views.go +++ b/cmd/karma/views.go @@ -585,6 +585,8 @@ func silences(c *gin.Context) { isMatch := false if strings.ToLower(silence.Silence.ID) == searchTerm { isMatch = true + } else if fmt.Sprintf("@cluster=%s", silence.Cluster) == searchTerm { + isMatch = true } else if slices.StringInSlice(clusters, silence.Cluster) { isMatch = true } else if strings.Contains(strings.ToLower(silence.Silence.Comment), searchTerm) { diff --git a/cmd/karma/views_test.go b/cmd/karma/views_test.go index c150d0ba0..9ae624ea2 100644 --- a/cmd/karma/views_test.go +++ b/cmd/karma/views_test.go @@ -724,6 +724,30 @@ func TestSilences(t *testing.T) { showExpired: "1", results: []string{}, }, + { + searchTerm: "@cluster=foo", + sortReverse: "0", + showExpired: "0", + results: []string{}, + }, + { + searchTerm: "@cluster=default", + sortReverse: "0", + showExpired: "0", + results: []string{silenceHostDown, silenceInstance, silenceServer7}, + }, + { + searchTerm: "@cluster=default", + sortReverse: "0", + showExpired: "1", + results: []string{silenceHostDown, silenceInstance, silenceServer7}, + }, + { + searchTerm: "@cluster=default", + sortReverse: "1", + showExpired: "1", + results: []string{silenceHostDown, silenceInstance, silenceServer7}, + }, } mockConfig() @@ -753,7 +777,7 @@ func TestSilences(t *testing.T) { } sort.Strings(results) // can't rely on API order since it's sorted based on timestamps, resort if diff := cmp.Diff(testCase.results, results); diff != "" { - t.Errorf("Wrong silences returned (-want +got):\n%s", diff) + t.Errorf("Wrong silences returned for '%s' (-want +got):\n%s", uri, diff) } } }