* Simplification: use auto-properties.
* Removed unnecessary null check. Converted private methods to linq method chain.
* Removed unused file. Added null check.
* Corrected property names as it was difficult to distinguish between the alert,
the patch and the filepath.
* Removed duplicate lock.
* CA-296490: Rewrote the logic uploading single updates so as to facilitate uploading to multiple pools in parallel.
* Corrections as per code review.
* Account for the case of uploading from disk legacy updates that do not correspond to an update alert.
Removed unfriendly error messages (the failure is written out in the logs anyway).
* Wizard test corrections and some modernising:
- Only call cancel on the last page if the test allows us to.
- Do finish the UpdatesWizard test.
- Finish the RunWizardKeyboardTests using key strokes instead of button clicks.
- Ensure the Cancel/Previous buttons do not have focus when sending an Enter stroke.
- Use optional parameters in the WizardTest constructor and string interpolation.
* Renamed badly named property.
* Improved code cloning VMs by assigning new opaque_refs to cloned VBDs.
Compacted test object provider: use optional parameters instead of method overloads.
* Modifications to prevent multiple update of enabled state and ensure the wizard
buttons are updated last.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
If, for example, the host was disconnected, poolUpdateFromHost was null,
which was causing a silent exception resulting to an empty precheck list
shown on the page.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
If the update sequence for automated updates contains an update which requires a host reboot and a hotfix with an immediate toolstack restart (after-apply-guidance=restartXAPI and guidance-mandatory=true),
then XenCenter should do an immediate host reboot after applying the hotfix that required the immediate toolstack restart (as doing a toolstack restart when a host reboot is required is potentially risky)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
lost when leaving and returning back to the SelectServers page.
Also, the list of SelectedServers does not need to be re-evaluated every time
it is accessed but rather once when we move away from the page.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Also, simplified the logic selecting the single update when we leave the
SelectPatchPage so as to avoid ambiguities in which properties are to be set
and refactored the error handling methods to avoid duplicate checks and
provide the right error message (for example, the error message was misleading
for a non-existent path; or, the level of detail provided in the case of
invalid zip content was of lesser relevance to the user).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
legacy patch and then went back to select and install an update.
The code was removing all the uploaded legacy patches except the installed
ones. In this case the installed legacy patch is null hence all the already
uploaded patches need to be removed.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* CP-29768: Add Skip functionality for RPU supp pack installation
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
* Minor corrections
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* Revert unnecessary layout changes
Also changed the title of the confirmation dialog to the wizard title, as it could be shown in either RPU or the Patching wizard
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
the Prechecks page, then back to select a single iso update, and forwards again
to the Prechecks page. The cause was that the values of Patch and PoolUpdate
were not always propagated from the Upload page to the following pages, hence
on that occasion they were both non-null, while the logic of the following
pages expects only one of the two to be non-null.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
One of the PatchGridViewRow constructors was obsoleted, hence the _image and
_status cells and the row's PathPatch were always null. When a user selected a
patch, moved to the Prechecks page, back to the Select page, and the host got
disconnected, on moving to the SelectServers page and closing the warning pop-up,
XenCenter crashed because it was trying to update details of null cells. Also,
removed obsoleted toggling expanded state functionality.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
With this change, following are working:
1) After applying XS75E003-5 only restart host, no restart toolstack
2) After applying vGPU driver on 7.4, restart host happens
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
* CA-293776: The order in which a single update is applied on the slaves is not the same as the order in which they are displayed
Apply the same Hosts sorting rules for all the PatchingWizard Pages .
Signed-off-by: Tim Liu <tim.liu@citrix.com>
* CA-293776: The order in which a single update is applied on the slaves is not the same as the order in which they are displayed
Place orderby clause after where clause
Signed-off-by: Tim Liu <tim.liu@citrix.com>
* CA-293813: Patch pools in parallel when installing a single update/patch or supplemental package.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* Corrections as per code review.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* CA-292626: Consider the contains-livepatch flag of all the applicable updates when doing the prechecks in the automated updates mode.
Instead of looking at the minimal patches, we look at all applicable patches for that host (i.e. all the updates on the host's version that are not already installed) and we say that the host won't need a reboot only if all these are marked as contains-livepatch.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CA-293854: Patching wizard updates list loses selection and resizes columns when resorted
Remove the redundant code
Change the AutoSize mode from DisplayedCells to AllCells.
Fix the date column sorting
Disable column header AutoSizing
Signed-off-by: Tim Liu <tim.liu@citrix.com>
* CA-284914: Prechecks are re-run every time the 'Hide successful prechecks' is ticked/unticked
Signed-off-by: Jisheng Xing <jisheng.xing@citrix.com>
* fix some comments
or Host accordingly. Extended comparison of Problems to also take account of
the XenObject the Check was performed on, otherwise the Problems get mixed
up when there are homonymous members across pools.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* CP-28431: Block updates and upgrades from Kolkata onwards if clustering enabled
* CP-28431: Rename files and change from Pool Check to [Host] Check
* CP-28431: Change description message
Signed-off-by: Seren Corbett <seren.corbett@citrix.com>
on the update mode, so that the right set of hosts is passed on to the prechecks
page for partially upgraded pools that are to be updated to a new version with
hotfixes. Also, corrected code that was mixing the logic of changing the enabled
state of a row with the checked state.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Also sort Messages.resx and call ReplaceProgressStep instead of AddProgressStep in the DownloadPatchPlanAction class (when the download is skipped)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
a new check on the existing one instead. Moved the background worker to the designer
of the class.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
reverted to the new class UpdateUpgradeWizard which serves as base for the
Patching and the RPU wizards. Pass the list of resolved problems to the
automated updates page and not the actions, so as to prevent premature (i.e.
on creation as opposed to on start) addition to the global list shown on
the Events page.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
is now in one place, namely the PatchingWizard_PrecheckPage.UnwindChangesActions.
The pages following this page use now this list instead of the problems
encountered, so we ensure that the update/upgrade plans do not include the
unwind action if no resolution of problems took place on the prechecks page.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
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>