import { ModalType } from '@@/modals'; import { confirm } from '@@/modals/confirm'; import { buildConfirmButton } from '@@/modals/utils'; export function confirmUpdateNode( taintsWarning: boolean, labelsWarning: boolean, cordonWarning: boolean, drainWarning: boolean ) { let message; if (taintsWarning && !labelsWarning) { message = 'Changes to taints will immediately deschedule applications running on this node without the corresponding tolerations. Do you wish to continue?'; } else if (!taintsWarning && labelsWarning) { message = 'Removing or changing a label that is used might prevent applications from being scheduled on this node in the future. Do you wish to continue?'; } else if (taintsWarning && labelsWarning) { message = ( <>

Changes to taints will immediately deschedule applications running on this node without the corresponding tolerations.

Removing or changing a label that is used might prevent applications from scheduling on this node in the future.

Do you wish to continue?

); } else if (cordonWarning) { message = 'Marking this node as unschedulable will effectively cordon the node and prevent any new workload from being scheduled on that node. Are you sure?'; } else if (drainWarning) { message = 'Draining this node will cause all workloads to be evicted from that node. This might lead to some service interruption. Are you sure?'; } return confirm({ title: 'Are you sure?', modalType: ModalType.Warn, message, confirmButton: buildConfirmButton('Update', 'primary'), }); }