mirror of https://github.com/apache/superset.git
fix: moved alerts and reports default values to config (#22880)
This commit is contained in:
parent
500d90058f
commit
09757dc518
|
@ -55,8 +55,10 @@ import {
|
|||
MetaObject,
|
||||
Operator,
|
||||
Recipient,
|
||||
AlertsReportsConfig,
|
||||
} from 'src/views/CRUD/alert/types';
|
||||
import { InfoTooltipWithTrigger } from '@superset-ui/chart-controls';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { AlertReportCronScheduler } from './components/AlertReportCronScheduler';
|
||||
import { NotificationMethod } from './components/NotificationMethod';
|
||||
|
||||
|
@ -83,6 +85,10 @@ interface AlertReportModalProps {
|
|||
show: boolean;
|
||||
}
|
||||
|
||||
const DEFAULT_WORKING_TIMEOUT = 3600;
|
||||
const DEFAULT_CRON_VALUE = '0 * * * *'; // every hour
|
||||
const DEFAULT_RETENTION = 90;
|
||||
|
||||
const DEFAULT_NOTIFICATION_METHODS: NotificationMethodOption[] = ['Email'];
|
||||
const DEFAULT_NOTIFICATION_FORMAT = 'PNG';
|
||||
const CONDITIONS = [
|
||||
|
@ -135,25 +141,6 @@ const RETENTION_OPTIONS = [
|
|||
},
|
||||
];
|
||||
|
||||
const DEFAULT_RETENTION = 90;
|
||||
const DEFAULT_WORKING_TIMEOUT = 3600;
|
||||
const DEFAULT_CRON_VALUE = '0 * * * *'; // every hour
|
||||
const DEFAULT_ALERT = {
|
||||
active: true,
|
||||
creation_method: 'alerts_reports',
|
||||
crontab: DEFAULT_CRON_VALUE,
|
||||
log_retention: DEFAULT_RETENTION,
|
||||
working_timeout: DEFAULT_WORKING_TIMEOUT,
|
||||
name: '',
|
||||
owners: [],
|
||||
recipients: [],
|
||||
sql: '',
|
||||
validator_config_json: {},
|
||||
validator_type: '',
|
||||
force_screenshot: false,
|
||||
grace_period: undefined,
|
||||
};
|
||||
|
||||
const StyledModal = styled(Modal)`
|
||||
max-width: 1200px;
|
||||
width: 100%;
|
||||
|
@ -512,6 +499,38 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
|
|||
);
|
||||
};
|
||||
|
||||
const {
|
||||
ALERT_REPORTS_DEFAULT_WORKING_TIMEOUT,
|
||||
ALERT_REPORTS_DEFAULT_CRON_VALUE,
|
||||
ALERT_REPORTS_DEFAULT_RETENTION,
|
||||
} = useSelector<any, AlertsReportsConfig>(state => {
|
||||
const conf = state.common?.conf;
|
||||
return {
|
||||
ALERT_REPORTS_DEFAULT_WORKING_TIMEOUT:
|
||||
conf?.ALERT_REPORTS_DEFAULT_WORKING_TIMEOUT ?? DEFAULT_WORKING_TIMEOUT,
|
||||
ALERT_REPORTS_DEFAULT_CRON_VALUE:
|
||||
conf?.ALERT_REPORTS_DEFAULT_CRON_VALUE ?? DEFAULT_CRON_VALUE,
|
||||
ALERT_REPORTS_DEFAULT_RETENTION:
|
||||
conf?.ALERT_REPORTS_DEFAULT_RETENTION ?? DEFAULT_RETENTION,
|
||||
};
|
||||
});
|
||||
|
||||
const defaultAlert = {
|
||||
active: true,
|
||||
creation_method: 'alerts_reports',
|
||||
crontab: ALERT_REPORTS_DEFAULT_CRON_VALUE,
|
||||
log_retention: ALERT_REPORTS_DEFAULT_RETENTION,
|
||||
working_timeout: ALERT_REPORTS_DEFAULT_WORKING_TIMEOUT,
|
||||
name: '',
|
||||
owners: [],
|
||||
recipients: [],
|
||||
sql: '',
|
||||
validator_config_json: {},
|
||||
validator_type: '',
|
||||
force_screenshot: false,
|
||||
grace_period: undefined,
|
||||
};
|
||||
|
||||
const updateNotificationSetting = (
|
||||
index: number,
|
||||
setting: NotificationSetting,
|
||||
|
@ -549,7 +568,7 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
|
|||
setIsHidden(true);
|
||||
onHide();
|
||||
setNotificationSettings([]);
|
||||
setCurrentAlert({ ...DEFAULT_ALERT });
|
||||
setCurrentAlert({ ...defaultAlert });
|
||||
setNotificationAddState('active');
|
||||
};
|
||||
|
||||
|
@ -992,7 +1011,7 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
|
|||
!isEditMode &&
|
||||
(!currentAlert || currentAlert.id || (isHidden && show))
|
||||
) {
|
||||
setCurrentAlert({ ...DEFAULT_ALERT });
|
||||
setCurrentAlert({ ...defaultAlert });
|
||||
setNotificationSettings([]);
|
||||
setNotificationAddState('active');
|
||||
}
|
||||
|
@ -1299,7 +1318,7 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
|
|||
<span className="required">*</span>
|
||||
</StyledSectionTitle>
|
||||
<AlertReportCronScheduler
|
||||
value={currentAlert?.crontab || DEFAULT_CRON_VALUE}
|
||||
value={currentAlert?.crontab || ALERT_REPORTS_DEFAULT_CRON_VALUE}
|
||||
onChange={newVal => updateAlertState('crontab', newVal)}
|
||||
/>
|
||||
<div className="control-label">{TRANSLATIONS.TIMEZONE_TEXT}</div>
|
||||
|
@ -1329,7 +1348,7 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
|
|||
value={
|
||||
typeof currentAlert?.log_retention === 'number'
|
||||
? currentAlert?.log_retention
|
||||
: DEFAULT_RETENTION
|
||||
: ALERT_REPORTS_DEFAULT_RETENTION
|
||||
}
|
||||
options={RETENTION_OPTIONS}
|
||||
sortComparator={propertyComparator('value')}
|
||||
|
|
|
@ -117,3 +117,8 @@ export enum RecipientIconName {
|
|||
Email = 'Email',
|
||||
Slack = 'Slack',
|
||||
}
|
||||
export interface AlertsReportsConfig {
|
||||
ALERT_REPORTS_DEFAULT_WORKING_TIMEOUT: number;
|
||||
ALERT_REPORTS_DEFAULT_RETENTION: number;
|
||||
ALERT_REPORTS_DEFAULT_CRON_VALUE: string;
|
||||
}
|
||||
|
|
|
@ -1264,6 +1264,10 @@ ALERT_REPORTS_WORKING_TIME_OUT_LAG = int(timedelta(seconds=10).total_seconds())
|
|||
# if ALERT_REPORTS_WORKING_TIME_OUT_KILL is True, set a celery hard timeout
|
||||
# Equal to working timeout + ALERT_REPORTS_WORKING_SOFT_TIME_OUT_LAG
|
||||
ALERT_REPORTS_WORKING_SOFT_TIME_OUT_LAG = int(timedelta(seconds=1).total_seconds())
|
||||
# Default values that user using when creating alert
|
||||
ALERT_REPORTS_DEFAULT_WORKING_TIMEOUT = 3600
|
||||
ALERT_REPORTS_DEFAULT_RETENTION = 90
|
||||
ALERT_REPORTS_DEFAULT_CRON_VALUE = "0 * * * *" # every hour
|
||||
# If set to true no notification is sent, the worker will just log a message.
|
||||
# Useful for debugging
|
||||
ALERT_REPORTS_NOTIFICATION_DRY_RUN = False
|
||||
|
|
|
@ -116,6 +116,9 @@ FRONTEND_CONF_KEYS = (
|
|||
"HTML_SANITIZATION_SCHEMA_EXTENSIONS",
|
||||
"WELCOME_PAGE_LAST_TAB",
|
||||
"VIZ_TYPE_DENYLIST",
|
||||
"ALERT_REPORTS_DEFAULT_CRON_VALUE",
|
||||
"ALERT_REPORTS_DEFAULT_RETENTION",
|
||||
"ALERT_REPORTS_DEFAULT_WORKING_TIMEOUT",
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
Loading…
Reference in New Issue