From dc163a958d912ca14cabfa96ffa42fcfe2eb41bf Mon Sep 17 00:00:00 2001 From: Gilles De Mey Date: Mon, 20 Dec 2021 16:45:29 +0100 Subject: [PATCH] Alerting: update response text assertion (#43291) --- .../features/alerting/unified/api/ruler.ts | 46 ++++++++++++++----- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/public/app/features/alerting/unified/api/ruler.ts b/public/app/features/alerting/unified/api/ruler.ts index f215ffe4952..a849fbb4e49 100644 --- a/public/app/features/alerting/unified/api/ruler.ts +++ b/public/app/features/alerting/unified/api/ruler.ts @@ -1,10 +1,15 @@ import { lastValueFrom } from 'rxjs'; -import { getBackendSrv } from '@grafana/runtime'; +import { FetchResponse, getBackendSrv } from '@grafana/runtime'; import { PostableRulerRuleGroupDTO, RulerRuleGroupDTO, RulerRulesConfigDTO } from 'app/types/unified-alerting-dto'; import { getDatasourceAPIId, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource'; import { RULER_NOT_SUPPORTED_MSG } from '../utils/constants'; +interface ErrorResponseMessage { + message?: string; + error?: string; +} + // upsert a rule group. use this to update rules export async function setRulerRuleGroup( dataSourceName: string, @@ -97,28 +102,47 @@ async function rulerGetRequest(url: string, empty: T, params?: Record { + const hasErrorMessage = (error as FetchResponse).data != null; + const hasErrorCode = Number.isFinite((error as FetchResponse).status); + return hasErrorCode && hasErrorMessage; +} + +function isCortexErrorResponse(error: FetchResponse) { + return error.data.error?.includes('group does not exist') || error.data.error?.includes('no rule groups found'); +} + export async function deleteNamespace(dataSourceName: string, namespace: string): Promise { await lastValueFrom( getBackendSrv().fetch({