From 489c5006b44bb8c005971a82dbd9e3bb6cdb9438 Mon Sep 17 00:00:00 2001 From: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:00:32 +0100 Subject: [PATCH] Alerting: Update irm links for incident and oncall in case new irm plugin is present (#99952) Update irm links for incident and oncall in case new irm plugin is present --- .../configuration-tracker/incidents/hooks.ts | 4 +-- .../gops/configuration-tracker/irmHooks.ts | 25 +++++++++++-------- .../configuration-tracker/onCall/hooks.ts | 4 +-- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/public/app/features/gops/configuration-tracker/incidents/hooks.ts b/public/app/features/gops/configuration-tracker/incidents/hooks.ts index aabbaf56a2b..748c21b4b11 100644 --- a/public/app/features/gops/configuration-tracker/incidents/hooks.ts +++ b/public/app/features/gops/configuration-tracker/incidents/hooks.ts @@ -1,6 +1,6 @@ import { incidentsApi } from 'app/features/alerting/unified/api/incidentsApi'; import { usePluginBridge } from 'app/features/alerting/unified/hooks/usePluginBridge'; -import { SupportedPlugin } from 'app/features/alerting/unified/types/pluginBridges'; +import { getIrmIfPresentOrIncidentPluginId } from 'app/features/alerting/unified/utils/config'; interface IncidentsPluginConfig { isInstalled: boolean; @@ -11,7 +11,7 @@ interface IncidentsPluginConfig { export function useGetIncidentPluginConfig(): IncidentsPluginConfig { const { installed: incidentPluginInstalled, loading: loadingPluginSettings } = usePluginBridge( - SupportedPlugin.Incident + getIrmIfPresentOrIncidentPluginId() ); const { data: incidentsConfig, isLoading: loadingPluginConfig } = incidentsApi.endpoints.getIncidentsPluginConfig.useQuery(); diff --git a/public/app/features/gops/configuration-tracker/irmHooks.ts b/public/app/features/gops/configuration-tracker/irmHooks.ts index 3510de2e5e5..1f02021aff6 100644 --- a/public/app/features/gops/configuration-tracker/irmHooks.ts +++ b/public/app/features/gops/configuration-tracker/irmHooks.ts @@ -3,6 +3,10 @@ import { useMemo } from 'react'; import { locationService } from '@grafana/runtime'; import { useGrafanaContactPoints } from 'app/features/alerting/unified/components/contact-points/useContactPoints'; import { useNotificationPolicyRoute } from 'app/features/alerting/unified/components/notification-policies/useNotificationPolicyRoute'; +import { + getIrmIfPresentOrIncidentPluginId, + getIrmIfPresentOrOnCallPluginId, +} from 'app/features/alerting/unified/utils/config'; import { GRAFANA_RULES_SOURCE_NAME } from 'app/features/alerting/unified/utils/datasource'; import { RelativeUrl, createRelativeUrl } from 'app/features/alerting/unified/utils/url'; @@ -222,11 +226,11 @@ export function useGetEssentialsConfiguration(): EssentialsConfigurationData { button: { type: 'openLink', urlLink: { - url: '/a/grafana-incident-app/walkthrough/generate-key', + url: `/a/${getIrmIfPresentOrIncidentPluginId()}/walkthrough/generate-key`, }, label: 'Initialize', urlLinkOnDone: { - url: '/a/grafana-incident-app', + url: `/a/${getIrmIfPresentOrIncidentPluginId()}`, }, labelOnDone: 'View', }, @@ -238,12 +242,12 @@ export function useGetEssentialsConfiguration(): EssentialsConfigurationData { button: { type: 'openLink', urlLink: { - url: '/a/grafana-oncall-app/settings', + url: `/a/${getIrmIfPresentOrOnCallPluginId()}/settings`, queryParams: { tab: 'ChatOps', chatOpsTab: 'Slack' }, }, label: 'Connect', urlLinkOnDone: { - url: '/a/grafana-oncall-app/settings', + url: `/a/${getIrmIfPresentOrOnCallPluginId()}/settings`, queryParams: { tab: 'ChatOps' }, }, labelOnDone: 'View', @@ -257,11 +261,11 @@ export function useGetEssentialsConfiguration(): EssentialsConfigurationData { button: { type: 'openLink', urlLink: { - url: '/a/grafana-incident-app/integrations/grate.slack', + url: `/a/${getIrmIfPresentOrIncidentPluginId()}/integrations/grate.slack`, }, label: 'Connect', urlLinkOnDone: { - url: '/a/grafana-incident-app/integrations', + url: `/a/${getIrmIfPresentOrIncidentPluginId()}/integrations`, }, }, done: isChatOpsInstalled, @@ -272,11 +276,11 @@ export function useGetEssentialsConfiguration(): EssentialsConfigurationData { button: { type: 'openLink', urlLink: { - url: '/a/grafana-oncall-app/integrations/', + url: `/a/${getIrmIfPresentOrOnCallPluginId()}/integrations/`, }, label: 'Add', urlLinkOnDone: { - url: '/a/grafana-oncall-app/integrations/', + url: `/a/${getIrmIfPresentOrOnCallPluginId()}/integrations/`, }, labelOnDone: 'View', }, @@ -295,7 +299,8 @@ export function useGetEssentialsConfiguration(): EssentialsConfigurationData { type: 'dropDown', label: 'Select integration', options: onCallOptions, - onClickOption: (value) => onIntegrationClick(value, '/a/grafana-oncall-app/integrations/'), + onClickOption: (value) => + onIntegrationClick(value, `/a/${getIrmIfPresentOrOnCallPluginId()}/integrations/`), stepNotAvailableText: 'No integrations available', }, }, @@ -305,7 +310,7 @@ export function useGetEssentialsConfiguration(): EssentialsConfigurationData { button: { type: 'openLink', urlLink: { - url: '/a/grafana-incident-app', + url: `/a/${getIrmIfPresentOrIncidentPluginId()}`, queryParams: { declare: 'new', drill: '1' }, }, label: 'Start drill', diff --git a/public/app/features/gops/configuration-tracker/onCall/hooks.ts b/public/app/features/gops/configuration-tracker/onCall/hooks.ts index 7fb4862970d..fe7fb50c056 100644 --- a/public/app/features/gops/configuration-tracker/onCall/hooks.ts +++ b/public/app/features/gops/configuration-tracker/onCall/hooks.ts @@ -1,9 +1,9 @@ import { onCallApi } from 'app/features/alerting/unified/api/onCallApi'; import { usePluginBridge } from 'app/features/alerting/unified/hooks/usePluginBridge'; -import { SupportedPlugin } from 'app/features/alerting/unified/types/pluginBridges'; +import { getIrmIfPresentOrOnCallPluginId } from 'app/features/alerting/unified/utils/config'; export function useGetOnCallIntegrations() { - const { installed: onCallPluginInstalled } = usePluginBridge(SupportedPlugin.OnCall); + const { installed: onCallPluginInstalled } = usePluginBridge(getIrmIfPresentOrOnCallPluginId()); const { data: onCallIntegrations } = onCallApi.endpoints.grafanaOnCallIntegrations.useQuery(undefined, { skip: !onCallPluginInstalled,