feat(api): handle @cluster=foo in the silence browser

This commit is contained in:
Łukasz Mierzwa
2020-06-13 12:12:40 +01:00
committed by Łukasz Mierzwa
parent 74f8d83063
commit 3244b65dbc
2 changed files with 27 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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)
}
}
}