[v10.4.x] Alerting: Fix saving evaluation group. (#83234)

Alerting: Fix saving evaluation group. (#83188)

fix saving evaluation group

(cherry picked from commit 2a1873f038)

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
This commit is contained in:
grafana-delivery-bot[bot]
2024-02-22 15:34:26 +01:00
committed by GitHub
co-authored by Sonia Aguilar
parent 272ca9a46b
commit e229eef365
2 changed files with 9 additions and 5 deletions
@@ -18,7 +18,7 @@ import {
} from '@grafana/ui';
import { CombinedRuleGroup, CombinedRuleNamespace } from '../../../../../types/unified-alerting';
import { logInfo, LogMessages } from '../../Analytics';
import { LogMessages, logInfo } from '../../Analytics';
import { useCombinedRuleNamespaces } from '../../hooks/useCombinedRuleNamespaces';
import { useUnifiedAlertingSelector } from '../../hooks/useUnifiedAlertingSelector';
import { RuleFormValues } from '../../types/rule-form';
@@ -65,6 +65,7 @@ import {
FetchRulerRulesFilter,
setRulerRuleGroup,
} from '../api/ruler';
import { encodeGrafanaNamespace } from '../components/expressions/util';
import { RuleFormType, RuleFormValues } from '../types/rule-form';
import { addDefaultsToAlertmanagerConfig, removeMuteTimingFromRoute } from '../utils/alertmanager';
import {
@@ -803,11 +804,14 @@ export const updateLotexNamespaceAndGroupAction: AsyncThunk<
}
const newNamespaceAlreadyExists = Boolean(rulesResult[newNamespaceName]);
if (newNamespaceName !== namespaceName && newNamespaceAlreadyExists) {
const isGrafanaManagedGroup = rulesSourceName === GRAFANA_RULES_SOURCE_NAME;
const originalNamespace = isGrafanaManagedGroup ? encodeGrafanaNamespace(namespaceName) : namespaceName;
if (newNamespaceName !== originalNamespace && newNamespaceAlreadyExists) {
throw new Error(`Namespace "${newNamespaceName}" already exists.`);
}
if (
newNamespaceName === namespaceName &&
newNamespaceName === originalNamespace &&
groupName === newGroupName &&
groupInterval === existingGroup.interval
) {
@@ -829,8 +833,8 @@ export const updateLotexNamespaceAndGroupAction: AsyncThunk<
}
}
// if renaming namespace - make new copies of all groups, then delete old namespace
if (newNamespaceName !== namespaceName) {
// this is only possible for cloud rules
if (newNamespaceName !== originalNamespace) {
for (const group of rulesResult[namespaceName]) {
await setRulerRuleGroup(
rulerConfig,