Skip to content

Commit

Permalink
renamed Resolved to Recovered
Browse files Browse the repository at this point in the history
  • Loading branch information
gmmorris committed Nov 23, 2020
1 parent ac73b6a commit 8716b86
Show file tree
Hide file tree
Showing 13 changed files with 66 additions and 64 deletions.
10 changes: 5 additions & 5 deletions x-pack/plugins/alerts/common/builtin_action_groups.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
import { i18n } from '@kbn/i18n';
import { ActionGroup } from './alert_type';

export const ResolvedActionGroup: ActionGroup = {
id: 'resolved',
name: i18n.translate('xpack.alerts.builtinActionGroups.resolved', {
defaultMessage: 'Resolved',
export const RecoveredActionGroup: ActionGroup = {
id: 'recovered',
name: i18n.translate('xpack.alerts.builtinActionGroups.recovered', {
defaultMessage: 'Recovered',
}),
};

export function getBuiltinActionGroups(): ActionGroup[] {
return [ResolvedActionGroup];
return [RecoveredActionGroup];
}
14 changes: 7 additions & 7 deletions x-pack/plugins/alerts/server/alert_type_registry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ describe('register()', () => {
name: 'Default',
},
{
id: 'resolved',
name: 'Resolved',
id: 'recovered',
name: 'Recovered',
},
],
defaultActionGroupId: 'default',
Expand All @@ -117,7 +117,7 @@ describe('register()', () => {

expect(() => registry.register(alertType)).toThrowError(
new Error(
`Alert type [id="${alertType.id}"] cannot be registered. Action groups [resolved] are reserved by the framework.`
`Alert type [id="${alertType.id}"] cannot be registered. Action groups [recovered] are reserved by the framework.`
)
);
});
Expand Down Expand Up @@ -229,8 +229,8 @@ describe('get()', () => {
"name": "Default",
},
Object {
"id": "resolved",
"name": "Resolved",
"id": "recovered",
"name": "Recovered",
},
],
"actionVariables": Object {
Expand Down Expand Up @@ -287,8 +287,8 @@ describe('list()', () => {
"name": "Test Action Group",
},
Object {
"id": "resolved",
"name": "Resolved",
"id": "recovered",
"name": "Recovered",
},
],
"actionVariables": Object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,7 @@ export class EventsFactory {
'@timestamp': this.date,
event: {
provider: EVENT_LOG_PROVIDER,
action: EVENT_LOG_ACTIONS.resolvedInstance,
action: EVENT_LOG_ACTIONS.recoveredInstance,
},
kibana: { alerting: { instance_id: instanceId } },
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ export function alertInstanceSummaryFromEventLog(
status.status = 'Active';
status.actionGroupId = event?.kibana?.alerting?.action_group_id;
break;
case EVENT_LOG_ACTIONS.resolvedInstance:
case EVENT_LOG_ACTIONS.recoveredInstance:
status.status = 'OK';
status.activeStartDate = undefined;
status.actionGroupId = undefined;
Expand Down
2 changes: 1 addition & 1 deletion x-pack/plugins/alerts/server/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ export const EVENT_LOG_ACTIONS = {
execute: 'execute',
executeAction: 'execute-action',
newInstance: 'new-instance',
resolvedInstance: 'resolved-instance',
recoveredInstance: 'recovered-instance',
activeInstance: 'active-instance',
};

Expand Down
12 changes: 6 additions & 6 deletions x-pack/plugins/alerts/server/task_runner/task_runner.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ import { alertsMock, alertsClientMock } from '../mocks';
import { eventLoggerMock } from '../../../event_log/server/event_logger.mock';
import { IEventLogger } from '../../../event_log/server';
import { SavedObjectsErrorHelpers } from '../../../../../src/core/server';
import { Alert, ResolvedActionGroup } from '../../common';
import { Alert, RecoveredActionGroup } from '../../common';
import { omit } from 'lodash';
const alertType = {
id: 'test',
name: 'My test alert',
actionGroups: [{ id: 'default', name: 'Default' }, ResolvedActionGroup],
actionGroups: [{ id: 'default', name: 'Default' }, RecoveredActionGroup],
defaultActionGroupId: 'default',
executor: jest.fn(),
producer: 'alerts',
Expand Down Expand Up @@ -114,7 +114,7 @@ describe('Task Runner', () => {
},
},
{
group: ResolvedActionGroup.id,
group: RecoveredActionGroup.id,
id: '2',
actionTypeId: 'action',
params: {
Expand Down Expand Up @@ -517,7 +517,7 @@ describe('Task Runner', () => {
`);
});

test('fire resolved actions for execution for the alertInstances which is in the resolved state', async () => {
test('fire recovered actions for execution for the alertInstances which is in the recovered state', async () => {
taskRunnerFactoryInitializerParams.actionsPlugin.isActionTypeEnabled.mockReturnValue(true);
taskRunnerFactoryInitializerParams.actionsPlugin.isActionExecutable.mockReturnValue(true);

Expand Down Expand Up @@ -650,7 +650,7 @@ describe('Task Runner', () => {
Array [
Object {
"event": Object {
"action": "resolved-instance",
"action": "recovered-instance",
},
"kibana": Object {
"alerting": Object {
Expand All @@ -666,7 +666,7 @@ describe('Task Runner', () => {
},
],
},
"message": "test:1: 'alert-name' resolved instance: '2'",
"message": "test:1: 'alert-name' recovered instance: '2'",
},
],
Array [
Expand Down
32 changes: 17 additions & 15 deletions x-pack/plugins/alerts/server/task_runner/task_runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import { IEvent, IEventLogger, SAVED_OBJECT_REL_PRIMARY } from '../../../event_l
import { isAlertSavedObjectNotFoundError } from '../lib/is_alert_not_found_error';
import { AlertsClient } from '../alerts_client';
import { partiallyUpdateAlert } from '../saved_objects';
import { ResolvedActionGroup } from '../../common';
import { RecoveredActionGroup } from '../../common';

const FALLBACK_RETRY_INTERVAL = '5m';

Expand Down Expand Up @@ -219,7 +219,7 @@ export class TaskRunner {
alertInstance.hasScheduledActions()
);

generateNewAndResolvedInstanceEvents({
generateNewAndRecoveredInstanceEvents({
eventLogger,
originalAlertInstances,
currentAlertInstances: instancesWithScheduledActions,
Expand All @@ -229,7 +229,7 @@ export class TaskRunner {
});

if (!muteAll) {
scheduleActionsForResolvedInstances(
scheduleActionsForRecoveredInstances(
alertInstances,
executionHandler,
originalAlertInstances,
Expand Down Expand Up @@ -436,7 +436,7 @@ export class TaskRunner {
}
}

interface GenerateNewAndResolvedInstanceEventsParams {
interface GenerateNewAndRecoveredInstanceEventsParams {
eventLogger: IEventLogger;
originalAlertInstances: Dictionary<AlertInstance>;
currentAlertInstances: Dictionary<AlertInstance>;
Expand All @@ -445,18 +445,20 @@ interface GenerateNewAndResolvedInstanceEventsParams {
namespace: string | undefined;
}

function generateNewAndResolvedInstanceEvents(params: GenerateNewAndResolvedInstanceEventsParams) {
function generateNewAndRecoveredInstanceEvents(
params: GenerateNewAndRecoveredInstanceEventsParams
) {
const { eventLogger, alertId, namespace, currentAlertInstances, originalAlertInstances } = params;
const originalAlertInstanceIds = Object.keys(originalAlertInstances);
const currentAlertInstanceIds = Object.keys(currentAlertInstances);

const newIds = without(currentAlertInstanceIds, ...originalAlertInstanceIds);
const resolvedIds = without(originalAlertInstanceIds, ...currentAlertInstanceIds);
const recoveredIds = without(originalAlertInstanceIds, ...currentAlertInstanceIds);

for (const id of resolvedIds) {
for (const id of recoveredIds) {
const actionGroup = originalAlertInstances[id].getLastScheduledActions()?.group;
const message = `${params.alertLabel} resolved instance: '${id}'`;
logInstanceEvent(id, EVENT_LOG_ACTIONS.resolvedInstance, message, actionGroup);
const message = `${params.alertLabel} recovered instance: '${id}'`;
logInstanceEvent(id, EVENT_LOG_ACTIONS.recoveredInstance, message, actionGroup);
}

for (const id of newIds) {
Expand Down Expand Up @@ -496,7 +498,7 @@ function generateNewAndResolvedInstanceEvents(params: GenerateNewAndResolvedInst
}
}

function scheduleActionsForResolvedInstances(
function scheduleActionsForRecoveredInstances(
alertInstancesMap: Record<string, AlertInstance>,
executionHandler: ReturnType<typeof createExecutionHandler>,
originalAlertInstances: Record<string, AlertInstance>,
Expand All @@ -505,22 +507,22 @@ function scheduleActionsForResolvedInstances(
) {
const currentAlertInstanceIds = Object.keys(currentAlertInstances);
const originalAlertInstanceIds = Object.keys(originalAlertInstances);
const resolvedIds = without(
const recoveredIds = without(
originalAlertInstanceIds,
...currentAlertInstanceIds,
...mutedInstanceIds
);
for (const id of resolvedIds) {
for (const id of recoveredIds) {
const instance = alertInstancesMap[id];
instance.updateLastScheduledActions(ResolvedActionGroup.id);
instance.updateLastScheduledActions(RecoveredActionGroup.id);
instance.unscheduleActions();
executionHandler({
actionGroup: ResolvedActionGroup.id,
actionGroup: RecoveredActionGroup.id,
context: {},
state: {},
alertInstanceId: id,
});
instance.scheduleActions(ResolvedActionGroup.id);
instance.scheduleActions(RecoveredActionGroup.id);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { ActionParamsProps } from '../../../../types';
import { EmailActionParams } from '../types';
import { TextFieldWithMessageVariables } from '../../text_field_with_message_variables';
import { TextAreaWithMessageVariables } from '../../text_area_with_message_variables';
import { resolvedActionGroupMessage } from '../../../constants';
import { recoveredActionGroupMessage } from '../../../constants';

export const EmailParamsFields = ({
actionParams,
Expand All @@ -29,10 +29,10 @@ export const EmailParamsFields = ({
const [addBCC, setAddBCC] = useState<boolean>(false);

useEffect(() => {
if (defaultMessage === resolvedActionGroupMessage) {
if (defaultMessage === recoveredActionGroupMessage) {
editAction('message', defaultMessage, index);
} else if (
(!message || message === resolvedActionGroupMessage) &&
(!message || message === recoveredActionGroupMessage) &&
defaultMessage &&
defaultMessage.length > 0
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { EuiSelect, EuiFormRow } from '@elastic/eui';
import { ActionParamsProps } from '../../../../types';
import { ServerLogActionParams } from '.././types';
import { TextAreaWithMessageVariables } from '../../text_area_with_message_variables';
import { resolvedActionGroupMessage } from '../../../constants';
import { recoveredActionGroupMessage } from '../../../constants';

export const ServerLogParamsFields: React.FunctionComponent<ActionParamsProps<
ServerLogActionParams
Expand All @@ -32,10 +32,10 @@ export const ServerLogParamsFields: React.FunctionComponent<ActionParamsProps<
}, []);

useEffect(() => {
if (defaultMessage === resolvedActionGroupMessage) {
if (defaultMessage === recoveredActionGroupMessage) {
editAction('message', defaultMessage, index);
} else if (
(!message || message === resolvedActionGroupMessage) &&
(!message || message === recoveredActionGroupMessage) &&
defaultMessage &&
defaultMessage.length > 0
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n';
import { ActionParamsProps } from '../../../../types';
import { SlackActionParams } from '../types';
import { TextAreaWithMessageVariables } from '../../text_area_with_message_variables';
import { resolvedActionGroupMessage } from '../../../constants';
import { recoveredActionGroupMessage } from '../../../constants';

const SlackParamsFields: React.FunctionComponent<ActionParamsProps<SlackActionParams>> = ({
actionParams,
Expand All @@ -20,10 +20,10 @@ const SlackParamsFields: React.FunctionComponent<ActionParamsProps<SlackActionPa
}) => {
const { message } = actionParams;
useEffect(() => {
if (defaultMessage === resolvedActionGroupMessage) {
if (defaultMessage === recoveredActionGroupMessage) {
editAction('message', defaultMessage, index);
} else if (
(!message || message === resolvedActionGroupMessage) &&
(!message || message === recoveredActionGroupMessage) &&
defaultMessage &&
defaultMessage.length > 0
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ export const routeToConnectors = `/connectors`;
export const routeToAlerts = `/alerts`;
export const routeToAlertDetails = `/alert/:alertId`;

export const resolvedActionGroupMessage = i18n.translate(
'xpack.triggersActionsUI.sections.actionForm.ResolvedMessage',
export const recoveredActionGroupMessage = i18n.translate(
'xpack.triggersActionsUI.sections.actionForm.RecoveredMessage',
{
defaultMessage: 'Resolved',
defaultMessage: 'Recovered',
}
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { act } from 'react-dom/test-utils';
import { actionTypeRegistryMock } from '../../action_type_registry.mock';
import { ValidationResult, Alert, AlertAction } from '../../../types';
import ActionForm from './action_form';
import { ResolvedActionGroup } from '../../../../../alerts/common';
import { RecoveredActionGroup } from '../../../../../alerts/common';
jest.mock('../../lib/action_connector_api', () => ({
loadAllActions: jest.fn(),
loadActionTypes: jest.fn(),
Expand Down Expand Up @@ -232,7 +232,7 @@ describe('action_form', () => {
}}
actionGroups={[
{ id: 'default', name: 'Default' },
{ id: 'resolved', name: 'Resolved' },
{ id: 'recovered', name: 'Recovered' },
]}
setActionGroupIdByIndex={(group: string, index: number) => {
initialAlert.actions[index].group = group;
Expand Down Expand Up @@ -355,18 +355,18 @@ describe('action_form', () => {
"value": "default",
},
Object {
"data-test-subj": "addNewActionConnectorActionGroup-0-option-resolved",
"inputDisplay": "Resolved",
"value": "resolved",
"data-test-subj": "addNewActionConnectorActionGroup-0-option-recovered",
"inputDisplay": "Recovered",
"value": "recovered",
},
]
`);
});

it('renders selected Resolved action group', async () => {
it('renders selected Recovered action group', async () => {
const wrapper = await setup([
{
group: ResolvedActionGroup.id,
group: RecoveredActionGroup.id,
id: 'test',
actionTypeId: actionType.id,
params: {
Expand All @@ -389,14 +389,14 @@ describe('action_form', () => {
"value": "default",
},
Object {
"data-test-subj": "addNewActionConnectorActionGroup-0-option-resolved",
"inputDisplay": "Resolved",
"value": "resolved",
"data-test-subj": "addNewActionConnectorActionGroup-0-option-recovered",
"inputDisplay": "Recovered",
"value": "recovered",
},
]
`);
expect(actionGroupsSelect.first().text()).toEqual(
'Select an option: Resolved, is selectedResolved'
'Select an option: Recovered, is selectedResolved'
);
});

Expand Down
Loading

0 comments on commit 8716b86

Please sign in to comment.