mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Make pagination token empty if an invalid token is passed (#99644)
Reset token to empty if invalid
This commit is contained in:
parent
1cc9f8f0c2
commit
f8e7e9e024
@ -334,6 +334,11 @@ func PrepareRuleGroupStatuses(log log.Logger, manager state.AlertInstanceManager
|
|||||||
|
|
||||||
maxGroups := getInt64WithDefault(opts.Query, "group_limit", -1)
|
maxGroups := getInt64WithDefault(opts.Query, "group_limit", -1)
|
||||||
nextToken := opts.Query.Get("group_next_token")
|
nextToken := opts.Query.Get("group_next_token")
|
||||||
|
if nextToken != "" {
|
||||||
|
if _, err := base64.URLEncoding.DecodeString(nextToken); err != nil {
|
||||||
|
nextToken = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
groupedRules := getGroupedRules(log, ruleList, ruleNamesSet, opts.Namespaces)
|
groupedRules := getGroupedRules(log, ruleList, ruleNamesSet, opts.Namespaces)
|
||||||
rulesTotals := make(map[string]int64, len(groupedRules))
|
rulesTotals := make(map[string]int64, len(groupedRules))
|
||||||
|
@ -790,8 +790,8 @@ func TestRouteGetRuleStatuses(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("bad token should return no results", func(t *testing.T) {
|
t.Run("bad token should return first group_limit results", func(t *testing.T) {
|
||||||
r, err := http.NewRequest("GET", "/api/v1/rules?group_limit=10&group_next_token=foobar", nil)
|
r, err := http.NewRequest("GET", "/api/v1/rules?group_limit=1&group_next_token=foobar", nil)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
c.Context = &web.Context{Req: r}
|
c.Context = &web.Context{Req: r}
|
||||||
@ -801,7 +801,14 @@ func TestRouteGetRuleStatuses(t *testing.T) {
|
|||||||
result := &apimodels.RuleResponse{}
|
result := &apimodels.RuleResponse{}
|
||||||
require.NoError(t, json.Unmarshal(resp.Body(), result))
|
require.NoError(t, json.Unmarshal(resp.Body(), result))
|
||||||
|
|
||||||
require.Len(t, result.Data.RuleGroups, 0)
|
require.Len(t, result.Data.RuleGroups, 1)
|
||||||
|
require.Len(t, result.Data.Totals, 0)
|
||||||
|
require.NotEmpty(t, result.Data.NextToken)
|
||||||
|
|
||||||
|
folder, err := api.store.GetNamespaceByUID(context.Background(), "namespace_0", orgID, user)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, folder.Fullpath, result.Data.RuleGroups[0].File)
|
||||||
|
require.Equal(t, "rule_group_0", result.Data.RuleGroups[0].Name)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("should return nothing when using group_limit=0", func(t *testing.T) {
|
t.Run("should return nothing when using group_limit=0", func(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user