Alerting: Check if pagination token is greater than or equal to (#99576)

Use goe for token comparison
This commit is contained in:
Fayzal Ghantiwala 2025-01-27 15:56:06 +00:00 committed by GitHub
parent cc09f38421
commit 848ef72100
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -352,7 +352,7 @@ func PrepareRuleGroupStatuses(log log.Logger, manager state.AlertInstanceManager
} }
if nextToken != "" && !foundToken { if nextToken != "" && !foundToken {
if nextToken != getRuleGroupNextToken(rg.Folder, rg.GroupKey.RuleGroup) { if !tokenGreaterThanOrEqual(getRuleGroupNextToken(rg.Folder, rg.GroupKey.RuleGroup), nextToken) {
continue continue
} }
foundToken = true foundToken = true
@ -394,6 +394,14 @@ func getRuleGroupNextToken(namespace, group string) string {
return base64.URLEncoding.EncodeToString([]byte(namespace + "/" + group)) return base64.URLEncoding.EncodeToString([]byte(namespace + "/" + group))
} }
// Returns true if tokenA >= tokenB
func tokenGreaterThanOrEqual(tokenA string, tokenB string) bool {
decodedTokenA, _ := base64.URLEncoding.DecodeString(tokenA)
decodedTokenB, _ := base64.URLEncoding.DecodeString(tokenB)
return string(decodedTokenA) >= string(decodedTokenB)
}
type ruleGroup struct { type ruleGroup struct {
Folder string Folder string
GroupKey ngmodels.AlertRuleGroupKey GroupKey ngmodels.AlertRuleGroupKey