private void timer_Elapsed(object sender, ElapsedEventArgs e) { if (!rebooting) { return; } Program.Invoke(invokingControl, () => { using (var dialog = new NonModalThreeButtonDialog(SystemIcons.Exclamation, Messages.ROLLING_UPGRADE_TIMEOUT, Messages.ROLLING_POOL_UPGRADE, Messages.KEEP_WAITING_BUTTON_LABEL, Messages.CANCEL)) { if (dialog.ShowDialog(invokingControl) != DialogResult.OK) { Cancel(); } } }); }
protected override void RunWithSession(ref Session session) { //Show dialog prepare host boot from CD or PXE boot and click OK to reboot Program.Invoke(invokingControl, () => { using (var dialog = new NonModalThreeButtonDialog(SystemIcons.Information, string.Format(Messages.ROLLING_UPGRADE_REBOOT_MESSAGE, GetResolvedHost().Name()), Messages.ROLLING_POOL_UPGRADE, Messages.REBOOT, Messages.SKIP_SERVER)) { if (dialog.ShowDialog(invokingControl) != DialogResult.OK) // Cancel or Unknown { if (GetResolvedHost().IsMaster()) { Error = new ApplicationException(Messages.EXCEPTION_USER_CANCELLED_MASTER); throw Error; } Error = new CancelledException(); } } }); if (Error != null) { return; } var hostObj = GetResolvedHost(); string beforeRebootProductVersion = hostObj.LongProductVersion(); string hostName = hostObj.Name(); do { if (Cancelling) { break; } Upgrade(ref session); hostObj = GetResolvedHost(); if (Helpers.SameServerVersion(hostObj, beforeRebootProductVersion)) { var obj = hostObj; Program.Invoke(invokingControl, () => { using (var dialog = new NonModalThreeButtonDialog(SystemIcons.Exclamation, string.Format(Messages.ROLLING_UPGRADE_REBOOT_AGAIN_MESSAGE, hostName), Messages.ROLLING_POOL_UPGRADE, Messages.REBOOT_AGAIN_BUTTON_LABEL, Messages.SKIP_SERVER)) { if (dialog.ShowDialog(invokingControl) == DialogResult.OK) { return; } if (obj.IsMaster()) { Error = new Exception(Messages.HOST_REBOOTED_SAME_VERSION); throw Error; } Error = new CancelledException(); Cancel(); } }); } else { break; } } while (true); }