From d71d8c42c6d361fbfbb453ae7b3665ed17ec1988 Mon Sep 17 00:00:00 2001 From: Rares Mardare Date: Fri, 16 Sep 2022 16:48:05 +0300 Subject: [PATCH] fetch item with ?from_organization=true --- engine/config_integrations/alertmanager.py | 2 +- engine/config_integrations/grafana_alerting.py | 2 +- .../src/components/Policy/EscalationPolicy.tsx | 16 +++++++--------- .../EscalationChainSteps.tsx | 2 +- .../src/containers/GSelect/GSelect.tsx | 4 +++- grafana-plugin/src/models/base_store.ts | 7 +++++-- .../models/outgoing_webhook/outgoing_webhook.ts | 4 ++-- grafana-plugin/src/models/schedule/schedule.ts | 4 ++-- 8 files changed, 22 insertions(+), 19 deletions(-) diff --git a/engine/config_integrations/alertmanager.py b/engine/config_integrations/alertmanager.py index bfdcff2e..cc356e26 100644 --- a/engine/config_integrations/alertmanager.py +++ b/engine/config_integrations/alertmanager.py @@ -9,7 +9,7 @@ is_able_to_autoresolve = True is_demo_alert_enabled = True description = """ -Alerts from Grafana Alertmanager are automatically routed to this integration." +Alerts from Grafana Alertmanager are automatically routed to this integration. {% for dict_item in grafana_alerting_entities %}
Click here to open contact point, and diff --git a/engine/config_integrations/grafana_alerting.py b/engine/config_integrations/grafana_alerting.py index e8942b1e..4eac0135 100644 --- a/engine/config_integrations/grafana_alerting.py +++ b/engine/config_integrations/grafana_alerting.py @@ -12,7 +12,7 @@ is_able_to_autoresolve = True is_demo_alert_enabled = True description = """ \ -Alerts from Grafana Alertmanager are automatically routed to this integration." +Alerts from Grafana Alertmanager are automatically routed to this integration. {% for dict_item in grafana_alerting_entities %}
Click here to open contact point, and diff --git a/grafana-plugin/src/components/Policy/EscalationPolicy.tsx b/grafana-plugin/src/components/Policy/EscalationPolicy.tsx index 1d2b5ce1..0a8d609b 100644 --- a/grafana-plugin/src/components/Policy/EscalationPolicy.tsx +++ b/grafana-plugin/src/components/Policy/EscalationPolicy.tsx @@ -14,14 +14,11 @@ import GSelect from 'containers/GSelect/GSelect'; import RemoteSelect from 'containers/RemoteSelect/RemoteSelect'; import UserTooltip from 'containers/UserTooltip/UserTooltip'; import { WithPermissionControl } from 'containers/WithPermissionControl/WithPermissionControl'; -import { ActionDTO } from 'models/action'; import { prepareEscalationPolicy } from 'models/escalation_policy/escalation_policy.helpers'; import { EscalationPolicy as EscalationPolicyType, EscalationPolicyOption, } from 'models/escalation_policy/escalation_policy.types'; -import { PRIVATE_CHANNEL_NAME } from 'models/slack_channel/slack_channel.config'; -import { User, UserRole } from 'models/user/user.types'; import { WaitDelay } from 'models/wait_delay'; import { SelectOption } from 'state/types'; import { UserAction } from 'state/userAction'; @@ -272,15 +269,15 @@ export class EscalationPolicy extends React.Component - ); @@ -319,6 +316,7 @@ export class EscalationPolicy extends React.Component ); diff --git a/grafana-plugin/src/containers/EscalationChainSteps/EscalationChainSteps.tsx b/grafana-plugin/src/containers/EscalationChainSteps/EscalationChainSteps.tsx index 062b9b8d..8f9174aa 100644 --- a/grafana-plugin/src/containers/EscalationChainSteps/EscalationChainSteps.tsx +++ b/grafana-plugin/src/containers/EscalationChainSteps/EscalationChainSteps.tsx @@ -67,7 +67,7 @@ const EscalationChainSteps = observer((props: EscalationChainStepsProps) => { // const STEP_COLORS = ['#52C41A', '#A0D911', '#FADB14', '#FAAD14', COLOR_RED]; const STEP_COLORS = ['#1A7F4B', '#33cc33', '#ffbf00', '#FF8000', COLOR_RED]; - const { alertReceiveChannelStore, escalationPolicyStore } = store; + const { escalationPolicyStore } = store; const escalationPolicy = escalationPolicyStore.items[escalationPolicyId]; diff --git a/grafana-plugin/src/containers/GSelect/GSelect.tsx b/grafana-plugin/src/containers/GSelect/GSelect.tsx index a41c31ce..07e8c562 100644 --- a/grafana-plugin/src/containers/GSelect/GSelect.tsx +++ b/grafana-plugin/src/containers/GSelect/GSelect.tsx @@ -32,6 +32,7 @@ interface GSelectProps { showWarningIfEmptyValue?: boolean; showError?: boolean; nullItemName?: string; + fromOrganization?: boolean; filterOptions?: (id: any) => boolean; dropdownRender?: (menu: ReactElement) => ReactElement; getOptionLabel?: (item: SelectableValue) => React.ReactNode; @@ -59,6 +60,7 @@ const GSelect = observer((props: GSelectProps) => { showWarningIfEmptyValue = false, getDescription, filterOptions, + fromOrganization, } = props; const store = useStore(); @@ -123,7 +125,7 @@ const GSelect = observer((props: GSelectProps) => { (values as string[]).forEach((value: string) => { if (!isNil(value) && !model.items[value] && model.updateItem) { - model.updateItem(value); + model.updateItem(value, fromOrganization); } }); }, [value]); diff --git a/grafana-plugin/src/models/base_store.ts b/grafana-plugin/src/models/base_store.ts index 03115181..aed5144b 100644 --- a/grafana-plugin/src/models/base_store.ts +++ b/grafana-plugin/src/models/base_store.ts @@ -41,8 +41,11 @@ export default class BaseStore { } @action - async getById(id: string, skipErrorHandling = false) { - return await makeRequest(`${this.path}${id}/`, { + async getById(id: string, skipErrorHandling = false, fromOrganization = false) { + let path = `${this.path}${id}`; + if (fromOrganization) {path = path.concat('?from_organization=true');} + + return await makeRequest(path, { method: 'GET', }).catch((error) => this.onApiError(error, skipErrorHandling)); } diff --git a/grafana-plugin/src/models/outgoing_webhook/outgoing_webhook.ts b/grafana-plugin/src/models/outgoing_webhook/outgoing_webhook.ts index d064fa38..f8a435c7 100644 --- a/grafana-plugin/src/models/outgoing_webhook/outgoing_webhook.ts +++ b/grafana-plugin/src/models/outgoing_webhook/outgoing_webhook.ts @@ -42,8 +42,8 @@ export class OutgoingWebhookStore extends BaseStore { } @action - async updateItem(id: OutgoingWebhook['id']) { - const response = await this.getById(id); + async updateItem(id: OutgoingWebhook['id'], fromOrganization = false) { + const response = await this.getById(id, false, fromOrganization); this.items = { ...this.items, diff --git a/grafana-plugin/src/models/schedule/schedule.ts b/grafana-plugin/src/models/schedule/schedule.ts index a2b66973..3cf0e8d1 100644 --- a/grafana-plugin/src/models/schedule/schedule.ts +++ b/grafana-plugin/src/models/schedule/schedule.ts @@ -76,9 +76,9 @@ export class ScheduleStore extends BaseStore { }; } - async updateItem(id: Schedule['id']) { + async updateItem(id: Schedule['id'], fromOrganization = false) { if (id) { - const item = await this.getById(id); + const item = await this.getById(id, true, fromOrganization); this.items = { ...this.items,