From faa920437cc66986fc06d558b5485e72f7561a5c Mon Sep 17 00:00:00 2001 From: Gilles De Mey Date: Wed, 1 Feb 2023 13:32:06 +0100 Subject: [PATCH] Alerting: Add support for "normal" as state filter in rule search (#62630) --- .../unified/search/rulesSearchParser.test.ts | 1 + .../alerting/unified/search/rulesSearchParser.ts | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/public/app/features/alerting/unified/search/rulesSearchParser.test.ts b/public/app/features/alerting/unified/search/rulesSearchParser.test.ts index 4520655095c..e32aa102e23 100644 --- a/public/app/features/alerting/unified/search/rulesSearchParser.test.ts +++ b/public/app/features/alerting/unified/search/rulesSearchParser.test.ts @@ -35,6 +35,7 @@ describe('Alert rules searchParser', () => { it.each([ { query: 'state:firing', expectedFilter: PromAlertingRuleState.Firing }, { query: 'state:inactive', expectedFilter: PromAlertingRuleState.Inactive }, + { query: 'state:normal', expectedFilter: PromAlertingRuleState.Inactive }, { query: 'state:pending', expectedFilter: PromAlertingRuleState.Pending }, ])('should parse $expectedFilter rule state filter from "$query" query', ({ query, expectedFilter }) => { const filter = getSearchFilterFromQuery(query); diff --git a/public/app/features/alerting/unified/search/rulesSearchParser.ts b/public/app/features/alerting/unified/search/rulesSearchParser.ts index c74bd0871bf..e70e00ecc8d 100644 --- a/public/app/features/alerting/unified/search/rulesSearchParser.ts +++ b/public/app/features/alerting/unified/search/rulesSearchParser.ts @@ -50,7 +50,7 @@ export function getSearchFilterFromQuery(query: string): RulesFilter { [terms.GroupToken]: (value) => (filter.groupName = value), [terms.RuleToken]: (value) => (filter.ruleName = value), [terms.LabelToken]: (value) => filter.labels.push(value), - [terms.StateToken]: (value) => (isPromAlertingRuleState(value) ? (filter.ruleState = value) : undefined), + [terms.StateToken]: (value) => (filter.ruleState = parseStateToken(value)), [terms.TypeToken]: (value) => (isPromRuleType(value) ? (filter.ruleType = value) : undefined), [terms.HealthToken]: (value) => (filter.ruleHealth = getRuleHealth(value)), [terms.FreeFormExpression]: (value) => filter.freeFormWords.push(value), @@ -98,3 +98,15 @@ export function applySearchFilterToQuery(query: string, filter: RulesFilter): st return applyFiltersToQuery(query, filterSupportedTerms, filterStateArray); } + +function parseStateToken(value: string): PromAlertingRuleState | undefined { + if (value === 'normal') { + return PromAlertingRuleState.Inactive; + } + + if (isPromAlertingRuleState(value)) { + return value; + } + + return; +}