are set unless the new value is actually different. Small efficiency improvements
to the DownloadPatch action and plan action.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
a message in this case as the SRs are reconnected after reboot and this may lead
to duplicate messages. Also, simplified check-and-plug methods for PBDs to avoid
repetition of iterations.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* Deprecate set but unused Status property in favour of ProgressDescription.
* Deprecate set but unused TitlePlan property.
* Deprecated property Title in favour of ProgressDescription.
* Removed unused plan RebootHostPlanAction.
* Updated event declaration.
* Removed property Visible. The plan is to have the actions log their history as soon as some is available.
* Reworked the logging for the plan actions. The main change is the replacement of
the ProgressDescription with a stack where all the steps of an action are stored,
i.e. the action is responsible for its history, not the worker running it.
* Lock the progress history before accessing it.
* Better handling of error logging and user cancellation.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
1) Always pool level selection of hosts, except uploading sup pack file
from disk.
2) Revert homogeneity precheck change recently. It won't happen in new version
update any more.
3) User can never update slaves to a higher version than master, so delete
master_version_not_compatible_problem.
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
- In the RPU case, re-enable the host after the upgrade is done, as the host will be put back into maintenance mode when needed during the update process.
- The VMs should not be repatriated during the RPU
- When a host is rebooted, it needs to be disabled first (even if an evacuation is not needed), otherwise the reboot won't happen
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Renamed HostPlanActions class to HostPlan to avoid confusion with the HostPlanAction class.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Also corrected the function that creates the update plan action in RPU: when running a retry, these actions shouldn't be regenerated.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Some methods have been moved/added to the base class to facilitate the calculation of the plan actions in the RPU case.
- Also fixed the calculation of the progress bar value.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
The base class contains all the code for creating and starting the background workers, displaying the progress of the actions, handling failures and retries.
The derived classes override the property for label at the top of the page and the method that generates the plan actions.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- ensure that an action is only added once to the DoneActions and InProgressActions
- reset the wizard buttons (Cancel, Finish) when a retry is started
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CP-28286: Support resume from a partially upgraded pool via Update wizard
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
* CP-28286: Fix comments of the previous commit
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
- use the plan action's ProgressDescription property to display the steps in RestartHostPlanAction (evacuate host, reboot host, bring babies back);
- the plan action should not be visible if the restart is skipped;
- The change to the DownloadAndUnzipXenServerPatchAction is to ensure that the download progress description is updated on the wizard with the correct description (in automated updates mode, via DownloadPatchPlanAction); DownloadPatchPlanAction is using the ActionChanged event to update its description based on the action's DownloadProgressDescription property, but the ActionChanged event is called when the PercentComplete is updated, so this needs to happen after DownloadProgressDescription has been updated.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- also fixing an error on the patching wizard where a null reference exception is thrown if, when the wizard is cancelled, the host where an update has been uploaded is not connected anymore
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CA-274082: Check status of SR uploaded updates during update installation
* fix review comments
Signed-off-by: Jisheng Xing <jisheng.xing@citrix.com>
us a lot of broken builds. Fixed bug where the HostPlanAction.CurrentHost was
always null (as the private field was never set).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
PageLoaded override in derived classes, enforce it by wrapping the page specific
code in a new virtual method, which the derived classes can override and PageLoaded
can call after its own logic.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
override in derived classes, enforce it by wrapping the page specific code in
a new virtual method, which the derived classes can override and PageLeave can
call before its own logic.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
For this purpose, the evacuate-reboot-bringbabiesback triplet was replaced by a
new RestartHostPlanAction, which allows fallback to toolstack restart if live
patching has succeeded. Also, created new abstract class HostPlanAction to
reduce code duplication.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
List in order to enforce the order of checks (the Dictionary is not guaranteed to
keep the order the items are added). Also, extra null check.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
in the Host extensions. Moved method TryResolveWithTimeout to the Connection class
where it is more relevant. Removed wrapper methods WaitForReboot and WaitForAgent
as they were not particularly useful.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
alongside the wizard progress buttons. For this purpose, the separate UpdateControls
method was removed and the logic was moved in the EnableNext method. The OnPageUpdated
method that fires this is now called every time the checks start.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
calculating the AfterApplyGuidanceActionsForPatch twice when the patch had
mandatory guidance.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* CA-281646: Do not download the update again when using an update from disk
When applying a "new version" update, XenCenter starts an automated updates sequence that by default downloads all the updates. However, when using an update from disk, we shouldn't download it again.
With these changes, when an update from disk is used we save the [update, path] mapping, which we then use in the automated updates sequence, so we don't download that update again.
Also fixed a bug where a zipped update file from disk is not identified as a new version.
* CA-281646: Remove unused directive
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- The new "server selection" precheck is added for Inverness or greater pools and checks if all the servers in the pool are selected (if update not already applied) when applying an update that has the "enforce-homogeneity" flag set to true
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Increased the wait between host_enable attempts, allowing to wait more for the host to reboot.
This will affect Automated Updates and other normal Patching Wizard
operations as well.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
CA-267330: [Update Wizard Improvements] The Update wizard: block the installation of an update on slaves if a reboot or a toolstack restart is pending on master
The commit fixes bug and unify sorting rules in ManageUpdatesPage,
PatchingWizard_SelectServers and RollingUpgradeWizardSelectPool data
grid views.
The rules are:
1) Name column sorted purely by name.
2) Other columns sorted by string value, if the same, sorted by default,
which is still in order even in reverse direction.
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
Fixed a bug that caused XenCenter to try to apply an update (that the user manually selected) multiple times and therefore failed. This was only present when the Select All button was used.
prevent them from being serialised alongside the API properties. This will also
be useful for moving the API bindings out of XenModel.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Change the "Web page" column alignment to TopLeft, to match the other columns
- When trying to find an alert from a filename, use the patch name instead of the alert name, because now the alert name can also be a version name
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CA-249823 - Accept zip files in Updates Wizard
* CA-258326 - Improve implementation of CA-248823(Accept zip files in Updates Wizard)
* Small unrelated bugfix: Stop selectFromDiskRadioButton being checked when
restoring dismissed updates.
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
- Ensure that the disk-space plugin functions are not called on Ely or greater hosts, except for the 'get_avail_host_disk_space' function, which is still needed
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Due to a regression (introduced by [1]), XenCenter will not run delayed actions in the correct host-order at all times. This can cause the master to be not the first host to be rebooted what may result in connections being lost to slaves should the API change between restarts/updates in a way that it would not be compatible to the previous version. This would make the wizard fail and users would have to restart their master host manually to make it connect to its slaves again.
This commit fixes the order of the hosts when executing the delayed actions.
[1]: 15827512e1
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
In rare cases, the GetMaster could return null, causing the update progress to fail with "Pool_patch or Pool_update not found". (when the Cache hasn't been populated by the execution gets here)
This commit drops GetMaster and uses a pre-saved masterUuid instead of waiting for the Cache what would be the other way to solve this issue.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Reset the PrecheckPage.PoolUpdate property on leaving the SelectPatch page, because it needs to be null for the Automated Updates mode and for the single update mode it will be updated on leaving the Upload page.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Perform all the prechecks on applicable hosts only (i.e. the hosts that don't have the update applied already), with the following exceptions:
- The HA check, which is performed on the pool master
- The server-side precheck (PatchPrecheckCheck) which will still be performed on all servers in the pool and will show the warning if the update has already been applied on some servers
This commit also adds an override to the HAOffCheck.SuccessfulCheckDescription to show the pool name instead of the master's if the check is successful.
Also, in the PatchPrecheckCheck, I had moved the code that checks if the patch is already applied to the very beginning (before the host liveness check), so it will return the warning that the server will be skipped even if the server is not reachable
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Also rearranged some code in PatchingWizard class, to keep all property assignments together for each wizard page
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Introduced the WizardMode enum and the WizardMode properties in several wizard pages (replacing the IsInAutomatedUpdates boolean property)
When in NewVersion mode, we show the same wizard pages as the AutomatedUpdates mode and we build the update sequence based on the selected update alert (which is an update to a new version)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
In the Updates wizard:
New versions that are available as updates will be listed in the "Download Updates from Citrix" section, before any other updates.
If XenCenter is not the latest version, these rows will be greyed out, with a tooltip.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- On the Updates tab: for new versions, check that the version of XenCenter is at least the latest. If not, give an additional option to download a newer XenCenter (for both updates and upgrades), and not offer "Download and Install" (for updates).
- In the Patching wizard: if the update is a new version, we force the user to first update their XenCenter to the new version
- In the RPU wizard: if the server version is not the latest and their XenCenter version is not the latest from updates.xml, we assume that they want to upgrade to the latest XenServer version and we force the user to first update their XenCenter to the latest version.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
When a TargetInvocationException is raised, its InnerException property holds the underlying exception, which is what we should display.
Also ellipsise the action description (which could be an error thrown by the upload action) that is displayed on the Upload page.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
This commit fixes a bug in the Update Wizard that causes XenCenter to not restart Toolstack when it should in the following case: in Automated Mode, when the update sequence for a host has an update that contains live-patch with restartHost guidance (and guidance-mandatory=false) followed by an update with Toolstack restart guidance.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Also changed ApplyPatchAction and ApplyUpdateAction to install a single update to a single host, so that the appropriate action title can be displayed if an action fails. And replaced 2 hardcoded strings with resource strings.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Disabled the ability to select unreachable hosts and in addition
added a try/catch block to hide error message resulting from trying
to clean up an unreachable host.
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
This change does not apply to supplemental packs, as we should be able to install supp packs to individual hosts in a pool.
Also, if the wizard is installing an update from disk and we cannot match it in updates.xml, then we will continue to allow host selection, because we can't tell whether it is a supp pack or a hotfix.
Plus fixing the bug where the "Select All" button is enabled even when all the selectable servers/pools are selected
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>