2021-04-07 00:42:43 -05:00
|
|
|
import { combineReducers } from 'redux';
|
2021-04-14 07:57:36 -05:00
|
|
|
import { createAsyncMapSlice, createAsyncSlice } from '../utils/redux';
|
2021-04-09 05:44:26 -05:00
|
|
|
import {
|
|
|
|
fetchAlertManagerConfigAction,
|
2021-04-27 15:46:34 -05:00
|
|
|
fetchAmAlertsAction,
|
2021-07-01 05:02:41 -05:00
|
|
|
fetchEditableRuleAction,
|
2021-04-23 07:54:31 -05:00
|
|
|
fetchGrafanaNotifiersAction,
|
2021-04-09 05:44:26 -05:00
|
|
|
fetchPromRulesAction,
|
|
|
|
fetchRulerRulesAction,
|
|
|
|
fetchSilencesAction,
|
2021-04-14 07:57:36 -05:00
|
|
|
saveRuleFormAction,
|
2021-04-27 08:28:53 -05:00
|
|
|
updateAlertManagerConfigAction,
|
2021-05-06 02:29:02 -05:00
|
|
|
createOrUpdateSilenceAction,
|
2021-05-17 03:15:17 -05:00
|
|
|
fetchFolderAction,
|
2021-07-07 18:17:26 -05:00
|
|
|
fetchAlertGroupsAction,
|
2021-07-12 16:10:13 -05:00
|
|
|
checkIfLotexSupportsEditingRulesAction,
|
2021-04-09 05:44:26 -05:00
|
|
|
} from './actions';
|
2021-04-07 00:42:43 -05:00
|
|
|
|
|
|
|
export const reducer = combineReducers({
|
|
|
|
promRules: createAsyncMapSlice('promRules', fetchPromRulesAction, (dataSourceName) => dataSourceName).reducer,
|
|
|
|
rulerRules: createAsyncMapSlice('rulerRules', fetchRulerRulesAction, (dataSourceName) => dataSourceName).reducer,
|
|
|
|
amConfigs: createAsyncMapSlice(
|
|
|
|
'amConfigs',
|
|
|
|
fetchAlertManagerConfigAction,
|
|
|
|
(alertManagerSourceName) => alertManagerSourceName
|
|
|
|
).reducer,
|
2021-04-09 05:44:26 -05:00
|
|
|
silences: createAsyncMapSlice('silences', fetchSilencesAction, (alertManagerSourceName) => alertManagerSourceName)
|
|
|
|
.reducer,
|
2021-04-14 07:57:36 -05:00
|
|
|
ruleForm: combineReducers({
|
|
|
|
saveRule: createAsyncSlice('saveRule', saveRuleFormAction).reducer,
|
2021-07-01 05:02:41 -05:00
|
|
|
existingRule: createAsyncSlice('existingRule', fetchEditableRuleAction).reducer,
|
2021-04-14 07:57:36 -05:00
|
|
|
}),
|
2021-04-23 07:54:31 -05:00
|
|
|
grafanaNotifiers: createAsyncSlice('grafanaNotifiers', fetchGrafanaNotifiersAction).reducer,
|
2021-04-27 08:28:53 -05:00
|
|
|
saveAMConfig: createAsyncSlice('saveAMConfig', updateAlertManagerConfigAction).reducer,
|
2021-05-06 02:29:02 -05:00
|
|
|
updateSilence: createAsyncSlice('updateSilence', createOrUpdateSilenceAction).reducer,
|
2021-04-27 15:46:34 -05:00
|
|
|
amAlerts: createAsyncMapSlice('amAlerts', fetchAmAlertsAction, (alertManagerSourceName) => alertManagerSourceName)
|
|
|
|
.reducer,
|
2021-05-17 03:15:17 -05:00
|
|
|
folders: createAsyncMapSlice('folders', fetchFolderAction, (uid) => uid).reducer,
|
2021-07-07 18:17:26 -05:00
|
|
|
amAlertGroups: createAsyncMapSlice(
|
|
|
|
'amAlertGroups',
|
|
|
|
fetchAlertGroupsAction,
|
|
|
|
(alertManagerSourceName) => alertManagerSourceName
|
|
|
|
).reducer,
|
2021-07-12 16:10:13 -05:00
|
|
|
lotexSupportsRuleEditing: createAsyncMapSlice(
|
|
|
|
'lotexSupportsRuleEditing',
|
|
|
|
checkIfLotexSupportsEditingRulesAction,
|
|
|
|
(source) => source
|
|
|
|
).reducer,
|
2021-04-07 00:42:43 -05:00
|
|
|
});
|
|
|
|
|
|
|
|
export type UnifiedAlertingState = ReturnType<typeof reducer>;
|
|
|
|
|
|
|
|
export default reducer;
|