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>
* CA-236844: XenCenter throws "Assertion failed" error when toggling between the RDP and VNC consoles
Couldn't reproduce it, but it looks like the assertion is hit because the console view still holds a subscription to an event from an old vnc stream (maybe not garbage collected yet).
Added code to deregister event handlers when the vcnStream is disconnected and also replaced the the assertion with an if statement, ignoring the case that might have caused the assertion failure.
* CA-236844: XenCenter throws "Assertion failed" error when toggling between the RDP and VNC consoles
Added a Debug assert and a null check.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
After deleting the schedule vmss will be null for that message, hence
we need to handle this case.
Signed-Of-By: Sharath Babu <sharath.babu@citrix.com>
Implemented a generic mechanism to allow tab pages to unregister their event handlers when they are hidden (when a tab page gets deselected)
Also changed VMStoragePage to derive from BaseTabPage, so it could use the same mechanism.
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>
[VMSS] XC -> right click 'VM' -> Assign VM to snapshot schedule shows all policies,
even though they are not supported by VM
Signed-Off-By: Sharath Babu <sharath.babu@citrix.com>
These lists were continuously growing on each refresh, because the Where
clauses returned all items as the predicate was always evaluated to
true. The reason is: A. Even IEquatable<XenServerPatch> is
implemented on XenServerPatch, it only compares uuids. B. XenServerVersion
(also XenCenterversion) does not implement Equals (always different as the
Action returns new objects).
The two bugs these caused are: A] forever growing list of versions causing
obsolete data to be kept while everything is added to the end of the list
additionally. B] Any previously added Patch will not be updated unless the uuid has been changed (this never changes).
Fix in this commit: On each refresh, taking the new lists as they are
(from the Action) and not trying to keep or modify existing items. GC will do the rest with the old list (and objects)
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Added "VM.pool_migrate" to the list of tasks suitable for meddling actions.
Removed the usage of MeddlingActionTitle other_config key, because it wasn't working as intended for two reasons:
- If XenCenter starts an action that does multiple async api calls, so multiple tasks, the action's title is assigned to all tasks as MeddlingActionTitles, so the second XenCenter instance would create multiple meddling actions with the same title.
- When a second XenCenter instance tries to see if a task is suitable for a meddling action, the MeddlingActionTitle is not yet present in the task's other_config, so the task is ignored in most of the cases.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Further changes
* implemented similar logic for the Commands too as those are keep on getting updates so affected
* moved these static fields to a class (at Images)
* used the same casing as in Resources once they have been moved
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@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>
Changed code at a a few places where it made sense to limit how many times XenCenter asks the Resource Manager for a new instance(*1) of the same(*2) image.
*1: RM returns a new object each time
*2: they are the same as we don't change the locale of a thread and also we don't localise these images - by design
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Added a check for default_template as a workaround an issue where the allowed_operations of a default template _initially_ indicated that cross pool migration was allowed.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- Replaced the information tooltip with a warning icon and label at the bottom of the page.
- Added some null checks
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
have the wizard do it before we get there. Also, replaced the labels in such way
that, if there should be lag, the user will not see the draft message used only
on the designer.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Added a new method in XenTabPage which the derived classes can implement to select a default control after the page is loaded.
- Added a new wizard test that runs through the wizard by pressing the Enter key and checks if it has landed on the right page.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- On the PVS Cache Configuration dialog, disable the cache storage fields with an information tooltip stating that this PVS cache storage cannot be changed because it is in use.
- Also set the minimum width for the splitter panels, to avoid display issues when the splitter is moved and either of the panels becomes unusable.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
According to the Microsoft style guide XC to use 'username' for UI fields and use 'user name' when it's being referred to.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Show the "Change role" dialog as modal. This way we avoid other issues, like removing the user while the "Change role" dialog is open.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Set the suppressHistory flag to true for the parallel action that we run periodically to check the Health Check analysis result
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* [CA-233454] PVS tab doesn't show a new VM when it's created
Refined the rules for not adding a VM to the table, if it is a template (thus not_a_real_vm), and it has the __gui__ prefix (thus hidden), we still add it, but hide it.
When its name is changed (to remove the __gui__ prefix), we update its name and re-calculate whether it should be visible (in the case of a new VM this will be true once the __gui__ prefix is gone). Also resort the table if a node changes from hidden to visible, because it appears as an addition to the table.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
* [CA-233454] Update criteria for VM visibility to include is_a_real_vm
is_a_template is changed before the name_label removes the __gui__ prefix, so this works with no other changes to the vm property changed event.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
* [CA-233454] Update when the VMs are shown in the PVS list
New observable property IsBeingCreated for VMs, set to true when they're made a hidden object, and false when they're removed from hidden objects (both in CreateVMAction). In the PVS Page when this is set to false, we re-evaluate whether a VM can be shown. This means that new VMs show here at the same time they're added to the tree (only different is tree refresh time), instead of far earlier (and before their networks were added).
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
* [CA-233454] Set IsbeingCreated in the CreateVMFastAction
* [CA-233454] Properly support the VM Fast Create action
Further changes to CreateVMFastAction, to ensure it works with PVS tab - use the __gui__ prefix when the VM is created and then change it back just before showing.
* [CA-233454] Small logic adjustments/tidying up
This commit is to fix the following: "when right clicking a disconnected pool the context menu gives you the option to connect, this opens a window to enter credentials. if you close this window (either by cancel or the X), next time when you right click and click connect, nothing happens. you have to restart XenCenter to connect to the pool"
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Changed the tree builder so that the tree nodes rely on the TreeView's font. If the nodes have their NodeFont != null, then a tree update causes new fonts to be generated for each node and when fonts are being created faster than they could be cleaned up, we reach the GLI handles limit of 10000 (which causes the Out of Memory exception).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
If batch updating fails in a pool, this code will do the clean up by
running the appropriate (next in the queue) RemoveUpdateFilesFromMaster action. In addition to Pool_update.clean(), Pool_update.destroy() will be called when needed.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
confirmations are displayed. Added checkboxes to the dialogs requesting confirmation
of dismissal of notifications so the user can opt to skip this step.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Changes as discussed on the ticket: No longer disable the rows when they have a warning in the dialog, support warning about storage configuration as well as PVS configuration, and also include these warnings in the PVS page table.
A site's configuration needs to be completed outside of XenCenter, and when it isn't done we shouldn't allow VMs to enable PVS read caching on that site. We now disable sites that aren't configured in the enable read caching dialog, using an EnableableComboBox. I've also changed the DrawMode of that ComboBox component, OwnerDrawFixed more appropriately sizes the dropdown container when the number of items is small.
quiesce after installing vss tools
Enabling snapshot policy type to be changed to quiesce from
other snapshot policy types if the selected VMs are
quiesce snapshot capable.
Signed-off-by: Sharath Babu <sharath.babu@citrix.com>
The Pool_update does not always covers all the VDIs XenCenter creates. These orphaned ones have to be deleted as well.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Moved to A for Dismiss All, and E for Dismiss Selected. Since this frees D (the toolstrip menu split button uses one of these, so was previously always D), moved Filter by Date from A to D.
For ISO updates, when disabling hosts, use the filename matching logic for pre-Ely hosts as well.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Modify the cleanup pool update action to also call update destroy (removing the update from xapi db) when the update has not been applied to any hosts (ie we cancelled the wizard before completion).
This happened because the LivePatchCodesByHost was null when the prechecks were generated for an update, so the live patch codes returned by the precheck were ignored.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
on a background thread and show a spinner while this process is going on. Also,
removed certain duplicate controls and made some minor layout changes (margins,
sizes, column widths).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
on a background thread and show a spinner while this is going on. Also: run this
check only the first time the page is loaded; some refactoring, namely simplified
the code scanning for SRs by reducing the number of things each method does;
fixed column widths; removed unused property.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Due to the tooltip container introduced for the automatic radio button, winforms didn't treat these radio buttons properly - we needed code to make them mutually exclusive, tab didn't behave properly and keyboard arrow navigation between them didn't work. Therefore I have removed the tooltip container (so our radio buttons behave properly without any extra work) and we instead use a winforms tooltip shown when the mouse is over the automatic radio button. Note that since the control is disabled when we want a tooltip, neither hover events nor attaching a winforms tooltip in the usual way will work. Therefore I use a mousemove event on the table, which displays the tooltip if and only if we are over the disabled control. Also adjusted the tab indexes to make sure tab works correctly across the whole page.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
The resume on server uses the CrossPoolMigrateCommand to implement the migration of the VM to the desired host. Before this change that command had no support for resuming a VM after migrating it, so the VM was not resumed. With this change, the CrossPoolMigrateWizard can take an optional (default false) parameter to restart the VM after migration. When this is true, the migrate action becomes a MultipleAction, first migrating and then restarting the VM.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
Also changed the page to use different resource strings for the Storage type in the right hand panel (no hotkeys should be shown there)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Instead of using VCPUs_max, use VCPUs_at_startup, which is the value set when we change the VCPUs count on the VM. Note that despite its name we don't need to restart to see this value change.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
I've looked at how this was implemented in Dundee, and there we used an absolute height on the row containing the manual checkbox. I've done the same here, changing row 3 from autosize to absoliute 47px. I've also removed the empty row that was between the two radio buttons. This is a Winforms problem, without workarounds an autosize radio button in an autosize container (say the table row) will report its height as one row of text, no matter whether it needs more. This seems to be the only place we use a long radio label (as opposed to a separate label underneath the radio), so I doubt it's worth doing anything more complex than this. I've tested it with the CN string used in the ticket, and it uses less space than the English translation. The string also hasn't changed from Dundee.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
- show a different message when deleting a Cache Configuration (a PVS_site object) that is actively in use by a PVS site
- some more text changes on the "Configure PVS Cache" dialog
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
If windows_update is in the hidden features registry key, then we hide the virtualization state line about Windows update.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
The reported bug was that the new VM would crash because when clicking through the wizard the pool master is selected by default, not the slave the VM snapshot is on. We already select a default host when a new VM is created from a selected host using HostAncestor, but this property is null for a template (which isn't in the server/VM tree). The fix is that if the selection is a template (which it is when we use new VM from Snapshot) then we instead use its host (using Home()) as the default host. Now the correct host is selected in the VM wizard and the VM creation succeeds.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
The problem here was that TimeSpan.Minutes is always below 60, eg. for 67 minutes it is 7 (with TimeSpan.Hours being 1 then). So our TimeSpan was correct, but if it was between 1 and 2 hours then we would write the minutes in the second hour (which is below 60), ignoring the hour. The fix is to use s.TotalMinutes which for 67 minutes is 67. Hours also had a similar issue, except it would be off by 24 hours for spans between 1 and 2 days.
On the General tab XenCenter shows a list of updates that requires the host to be restarted. This is shown for applied updates for which the required guidance hasn't been done (eg. restartHost or restartAgent after-apply-guidances)
This commit fixes a regression that caused restartToolstack warnings to be not shown in the list of warnings.
The displayed messages are also improved, XenCenter will show Toolstack restart or host restart appropriately and not just restart only as it used to.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
We now enumerate pre-Creedence and pre-Clearwater servers once, and check hosts only in those lists for the checks that only apply to those servers.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
Moved from BuildList method to the GraphHelpers class. Since they're only used in this class for this search, and there's similar but broader Regex objects in the Helpers class that are used for parsing, I think it's better to keep them in this class to avoid confusion.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
This avoids unnecessary checks where we are upgrading multiple pools from different versions. Also made the same change for the unrelated pre-Clearwater only checks which had the same issue.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
We now only include the StorageLink check if we have any hosts earlier than Creedence in the RPU.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
We have some new RRDs - read, write, read_latency and write_latency. This adds support for them by adding a friendly name and using it to display them. It also adds some filtering (see GraphHelpers.cs) because for backward compatibility io_throughput_read and io_throughput_write (which differ from read and write only in scale) are still available, but shouldn't be displayed in XC. If the new read or write are available, we filter these old datasources out.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
TickUntilCompletion() is now a static method and again takes an ApplianceAction parameter. It does a null check on each while iteration to handle the case where another thread nulls the action. Also added Run() method to ApplianceAction which initialises the ticker (now a private method), and let child classes call Run() instead.
For other actions we get a ticking timer in the Events view because they use PollToCompletion, which calls their Changed event every 900ms. These actions don't use PollToCompletion, and didn't regularly call their Changed event - so their timer didn't tick regularly. This change adds a lightweight mechanism to call their changed event every 900ms until they complete. This allows the events page timer to tick every second in the same way as it does for other actions.
- on certain occasions retrieving datasources can be slow; show a spinner while in progress.
- on certain systems the list of datasources may be long; added search box to aid the user filter them by name.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- added a new precheck, called "Live patching status" which checks is a reboot is needed for each host. If reboot is needed, the check will display a warning, otherwise it will show a green tickbox, saying that the server does not need to be rebooted, and if live patching is used, this information will be included as well.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Instead we use the vbd.allowed_operations list, and check for the plug/unplug operation respectively.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
- take the already assigned dom0 memory into account when calculating maximum memory available
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Correction in the text on the PVS Cache configuration page
- Added help IDs for all new dialogs and the PVS tab
- Help button on the Enable PVS read caching dialog, plus some adjustments in the controls sizes on this dialog
- Removed minimize and maximize buttons from the PVS servers dialog, and added the help button
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Renamed Add/Remove PVS Site buttons
- Added a note on the PVS Cache configuration page, regarding the recommended cache size and the allowed size for "memory only"
- Added a warning about the Site configuration not being complete until the PVS part is done as well (only visible if PVS_uuid is not set for a PVS_site)
- Added PVS Read Caching status on the VM's general tab
- The absolute maximum allowed for a cache size is 2TB
- Changed the rubric on the Enable PVS read caching dialog
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
2 new radio buttons in Connection Options page, for Basic and Digest; Digest is the default as it's the most secure.
New proxy authentication method setting, which is used to configure XenAPI's HTTP class and the .NET AuthenticationManager (which handles which authentication schemes can be used by the .NET web classes).
The new setting is also transferred and used by the Health Check service.
The bug noted in CA-214653 also occurs here, but the work-around on PR#1201 for that bug will also work for this.
Signed-off-by: Frezzle <frederico.mazzone@citrix.com>
- instead of repopulating the whole grid when a proxy or a site changes, we now refresh just the row that needs refreshing, and when the refresh is indeed needed.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- We shouldn't include the hidden SRs in the list of available SRs in the Migration wizard
- Updated the SR.SupportsVdiCreate function to return false for the Memory SR; this fixes other places where the Memory SR might be visible (e.g. all places where SrPicker is used)
- Also fixed the same issue in the Attach disk dialog
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- For the PVS cache space utilization the multiplying factor should be 1 (the default value) because its values range from 0 to 100
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- correction to the previous commit: only collect the IP addreses if the PIF is connected or is null
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- include networks without PIFs in the list of networks to test for RDP (at the end of the list)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
removing event registration unless it's written out fully like the rest of the
autogenerated code.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- in the ConfigurePvsSiteAction, we now check if a site still exists, before trying to configure it
- added a CollectionChanged event handler in the Cache configuration dialog, and if we observe that a site has been added, we add it to the dialog as a new page
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Removed the cache configuration gridview from the PVS tab. This tab now contains the button to configure PVS cache and the VMs grid
- Show the confirmation dialog even when deleting a new site
- Enabled the "View PVS servers" button only if the site has servers
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Using new XAPI functionality in Install Update Wizard required by the new packaging format (ISO updates)
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- If the PVS site cannot be removed (it has running proxies) then popup a dialog stating the reason, instead of starting the action and failing there. We still have the same check in the action, just in case the situation changed in the meantime.
- Removed unused controls
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
is possible, because what it actually does is move. When asserting migration use
an SR other than the VDI's current SR for the check to ensure that both source and
target SRs are checked to see whether they support migration. Also, use the VM's
Home() instead of resident_on to ensure the current server cannot be selected as
target server. Some refactoring.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
because the differentiation was in the filters, which can be passed in as parameters
to the base class, and other than this they were only adding complexity.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
PVS Tab:
- Move the "View PVS sites" button inside the "Configure PVS Cache" dialog (next to Remove button) and make it per-site (showing only the PVS servers from that site)
- Remove "Currently attached" column from the VMs section
- Rename "Status" column to "Read caching status"
Configure PVS Cache" dialog:
- Make sure there is a scrollbar to accommodate all hosts in a pool
- Add a confirmation dialog when a site is removed. The action is executed when the Remove button is pressed.
- When Memory SR is selected, set the maximum value to the dom0-extra-memory..
- Allow empty configuration (but see next point): The OK button should only be disabled if the PVS site name is empty
- Add an extra option in the "Cache storage" combobox, with text "Not configured", selected by default on a new site. When this is selected, we will remove the existing entry in pvs_cache_storage and will not create a new one.
- When a PVS site is deleted (forgotten), we first delete all the associated PVS_servers, otherwise the site cannot be deleted.
as move (halted) or migrate (suspended) destination; this was caused by using the
VM's resident_on instead of Home() host. Also, changed the disabled reason to be
a bit more generic and cover cases other than migration.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- the image for resume suspended VM on non-home server should be connected-server,
not vm-being-migrated.
- the image for a server where a running VM cannot be migrated to should be connected-server,
not disconnected-server (it is disabled anyway). Also, simplified the logic to obtain
the cannot-execute-reasons.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
before move; thus, if the SR does not support migration, the user can at least
detach the disk and try a move.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
home host from a shared to a local storage (while it was possible from the CLI).
Minor refactoring.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Allow move of multiple VDIs
- CA-187659: show better messages when batching move/migration of multiple VDIs.
- Show different tooltips for single vs. multiple VDI move/migration/deletion.
- Refactored the MoveDiskDdialog. Removed the inherited class VDIMigrateDialog and
the batching manager as it was not very different from its parent, it was registering
the events twice, and was batching migration of even single VDIs.
- Tidied up the Move- and MigrateVirtualDisk commands so they're easier to compare.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Was only able to move and not migrate vdi if selected from the objects view.
- The text on the ToolStripMenuItems on the SrStoragePage was different from the
corresponding buttons.
- Added item move/migrate to the multiple VDI context menu. The Properties item
should not be shown in this case.
- new image for PVS_site
- added cache size restrictions based on the SR selected
- added button to remove the PVS site on the page
- fixed the error where the subtext for a new PVS sites showed as "Not configured" even after it has been configured
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Replace PATCH_PRECHECK_LIVEPATCH_MISSING to PATCH_PRECHECK_LIVEPATCH_NOT_APPLICABLE due to changes in XAPI
Note: if XAPI change gets active before this change we will see UNKNOWN instead of PATCH_PRECHECK_LIVEPATCH_NOT_APPLICABLE in XenCenter what will make no difference
* CP-16922: UI changes to PvsPage to replace the single configure button with a separate enable and disable one, per the design doc
* CP-16922: Intermediate checkin - command + dialog implemented, but PVS page has some layout problems.
* CP-16922: Implement GUI for enabling PVS read caching and marking/unmarking VMs for prepopulation
Fix the broken layout by reverting MainWindow.resx (which shouldn't have changed) back to the previous commit. Also removed duplicate properties button code.
* CP-16922: PVS Page changes, to properly display all VMs (not just ones with proxy), only populating proxy columns if there is a proxy set.
* CP-16922: Use a CommandButton for the enable button, connected to the same command as the VM main menu button, and using the table selection as its selection manager.
* CP-16922: Delete the old enable button click behaviour (because it now has a proper command), was causing the dialog to show up twice
* CP-16922: Properly list VMs by hiding those that should be hidden (in addition to non-VMs, also hide the __gui__ prefix and others covered by Show function). Also fixes a bug in NewVMGroupVMsPage discovered when fixing this - it would show VMs that should be hidden if you used the search bar.
* CP-16922: Use ButtonText on the Command to set the text on the PVS enable button
* CP-16922: Add the disable PVS read-caching command, and its associated proxy destroy action. Both based off enable equivalents (main difference is no dialog for now). Not used yet but will be in main window menu + disable button
* CP-16922: Add disable PVS read-caching to the main window menu (under enable), with the disable command attached to it
* CP-16922: Add support for disabling PVS read-caching for selected hosts via the PVS tab page by converting the disable button into a CommandButton in the same way as the enable button, using its own command + selection manager (because Selection Managers only bind to one control)
* CP-16922: Design - adding the "read caching enabled" column from the design, so that we display both whether caching is enabled and whether the VM is currently cached. If it's disabled all other values are missing.
* CP-16922: Add the PVS site column per the design to show the site a VM's PVS Proxy is on if it has a proxy
* CP-16922: Add an event handler for VMs changing so that newly provisioned VMs immediately show up in the PVS tab page
* CP-16922: Support for properly remembering the selection when the VM list is refreshed. A new method returns the list of VMs for the selected rows, and we can then check if the VM for the row being added is in this list. If there was no previous selection then we still select the first row by default.
* CP-16922: Remove prepopulate, which is being removed from the design. The next XAPI version will remove it, so just pass False as prepopulate for now, and remove the option from the dialog and PVS tab page.
* CP-16922: Improve UI appearance for a missing Storage Repository. Per the design, if there is no SR show the message None (memory only) instead of an empty cell
* CP-16922: Improved sorting behaviour. All columns (except VM name, which always uses it) use the VM tag as a sorting fallback (since they all have duplicates). New default sort which sorts by caching enabled first (yes before no), and then VM tag as a tiebreaker. Support for remembering the current sort on refresh, ie when a value changes.
* CP-16922: Refactoring to use a VM extension method to get the PVSProxy (or null if none exists) for a VM. This was used in the PVS Page + commands which are now much simpler.
* CP-16922: Move where the SelectionChanged event handler is set when refreshing the PVS table, so that the command buttons are updated correctly.
* CP-16922: Improvements to PVS read-caching dialog. Set accept/cancel buttons properly + adjust tab values, so focus acts as expected
* CP-16922: Remove the images from the menu for Enable/Disable PVS read-caching, most commands in the menu don't have one
* CP-16922: Sorting out the strings for the actions + ParallelAction calls, and moving them into the resx. Also reverting wrong MainWindow.resx changes.
* CAR-2184: XAPI changes. I've made the minimal possible changes to PvsPage to ensure it compiles, but it's had a lot of feature work (CP-16922) that supersedes this, these small changes should keep that merge painless.
* CAR-2184 XAPI: Reverse the unrelated changes, only keep the PVS ones.
* CP-16922: Merge latest XAPI changes, notably changes to Pvs_site.create
* CP-16922: Change tab show/hide logic for PVS tab, show it even if there are no PVS sites.
* CP-16922: Implement GUI for enabling PVS read caching
Design changes - remove the storage repo column and replace it with status, which is populated with a friendly version of the pvs_proxy_status enum. Also populate site list using site.name_label
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
* CP-16922: Implement GUI for enabling PVS read caching
Adjusting the CanExecute of Enable PVS read-caching command to require at least one PVS site to be created. Since the PVS tab can show up without any sites, we need this because we can't create a proxy without a site.
* CP-16922: Code review changes.
Tidied up messages, and ensured actions run async properly, and without exiting before their task.
* CP-16922: Code review changes.
Update dialog resx, wider combobox on dialog, update action descriptions before setting RelatedTask, add friendly message body for PVS error notifications.
* CAR-2184: XAPI changes. I've made the minimal possible changes to PvsPage to ensure it compiles, but it's had a lot of feature work (CP-16922) that supersedes this, these small changes should keep that merge painless.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
* CAR-2184 XAPI: Reverse the unrelated changes, only keep the PVS ones.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
- The value of the spinner control is rounded to the nearest, while the minimum is rounded up and the maximum down (or, in some cases, min and max are not rounded at all).
In most cases this is fine, but if the current value (in bytes) is equal to one of these ranges, by rounding this way we might end up with a value that is outside of the control's ranges (causing ArgumentOutOfRange exception).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Leaving the new pool's name field empty, forcing user to enter a name before the Next button is enabled.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
We already renamed the column to target server, this changes the message in the case where the user doesn't choose a server on this page to also use target server.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
The bad message was in the dialog created in the BugToolWizard after selecting servers. Since this method is the only one using the ActionProgressDialog(String) constructor, I've modified that ctor to hide the subaction label - which makes sense because there is no action in that ctor (to set a subaction) and no other appropriate label.
Shorten the ellipsise to the first 40 characters instead of 45, which allows the ellipsis, quotation and question marks to fit correctly onto the line.
avoid buttons on the console tab overlapping. Removed some panels from the console
tab to reduce control nesting.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- show/hide the context menu items instead of creating and adding new ones each time the context menu opens
- right click menu with rescan/add was not available for empty list or when empty space was clicked
- the condition for the edit button was slightly different from the edit toolstripmenuitem
- improved button layout (part of CA-100083)
- tidied up button event handlers and renamed one or two class members
- removed unused parameter in constructor and method of VDIRow
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- fixed issue where the context menu with add/attach items was not available
for empty list or when empty space was clicked; in the latter case I also clear
the selections
- added ability to launch the context menu by using the windows properties button
- moved context menu to the designer; changed code to show/hide the relevant menu
items instead of adding new ones each time the context menu opens
- added icon to the context menu item Properties
- fixed button layout (part of CA-100083), then removed separators between buttons
because when they wrap it looks a bit strange
- fixed some weird cross-threading exception (could not reproduce reliably)
- renamed one or two class members and tidied up the button event handlers
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Fixed regression caused by 5555709337.
Supplemental packs can now be installed again in automatic mode.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Adjusted messages, and added a tooltip to the Automatic restart radio when it's disabled. Also now support standalone hosts in addition to pooled.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
Expose both the HIMN network and any VIFs associated with the HIMN
network using XenCenter when the "View->Show Hidden Objects" option
is displayed. However the shown HIMN should not be able to autoplug,
edit or delete.
Changed the ellipsise length from 45 to 90 characters. This means that the first row of text becomes variable length, so I've reworked the dialog to support this and work like others: icon/rows of text in table cells, right aligned flow panel for buttons.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
- When building the list of servers that require post-install actions, ignore the ones where the patch has already been installed.
- Also fixing the infinite recursion in Build() method (causing StackOverflowException when installing a supplemental pack).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
This fixes the NullReferenceException that occurs when trying to evacuate a host after a non-livepatch update (that requires reboot) has been installed
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
The truncating of the custom field name by space (instead of ellipsising) seems to be a Windows default, but it's not ideal. This change edits the text displayed in the dropdown when an item is selected so that if a custom field is selected it is ellipsised to an appropriate length. It doesn't affect the dropdown itself, which continues to display the full custom field name.
Making the requested changes: Name is now sorted by the generic CompareTo method (which uses name with opaque ref as tiebreaker), and Description also uses opaque ref as tiebreaker for consistency.
XenCenter will check host.patches_requiring_reboot when a host restart is due while a batch update is in progress. If the restart is not required, XenCenter will skip relevant PlanActions.
The intention here is to check this whenever a restart is due according to the original schedule - this way a completely livepatchable update can prevent the restart while the key batch hotfixing logic is not changed.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Automatic is disabled if any pool forbids auto restart (per Neptune), and reboot is required. It's also disabled if the update type isn't one of the three in the switch statement. If it's enabled it is checked by default.
Change the sorting on the Name and Description columns to use StringUtility.NaturalCompare, which correctly sorts strings with numbers at the end (eg name, name0, name1, name2, name10 will now sort correctly while alphabetic sorting is incorrect). Also added a tie break on uuid to make sorting behave predictably with duplicates in these columns.
other than strings. Moved settings of the FullScreenForm from the VNCTabView to
the former class. The FullScreenFormof the VNCTabView is only initialised as
FullSCreenFrom so no casts are necessary. The FullScreenForm is responsible for
updating the connection bar text with the value obtained from the vncScreen everytime
the name of the connection changes. Also reduced visibility of certain members.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
to be shown. It is complicated to have the one control call a method in the other
which checks the state on the first control.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
If we are expecting to live patch, but at the end
hosts.patches_requring_reboot contains the patch, then warn the user that
live patching has failed for the host - and it needs to be rebooted.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
This commit implements the check for LiveUpdate capability of a patch. If
the patch is completely live-updatable, XenCenter will not restart the
host (but will do further checks once it has finished installing the
update - separate ticket)
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Now using the EscapeAmpersands string extension method. Also resolved the custom fields display issue in the same way.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
The ticket said the character after the & became a hotkey (like labels etc do with UseMnemonic enabled) but I couldn't reproduce that - & symbols were simply removed from the string. The fix is to replace them with &&, so the string.format prints a single & as it should.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
the checks before the page is loaded. Corrected the conditions for enabling the
Previous and Next buttons on this page. This commit fixes broken RPU wizard test.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Comparing uuids instead of references that likely will be changed after the Cache has been repopulated.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- when the cd drive or the tools iso cannot be found, the action should fail.
- if the tools SR is broken, do not show the error on a pop-up because the UX is
bad when installation is attempted on multiple VMS.
- added one more entry to the list of possible tools iso names.
- small performance improvement.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Generalising to also support pools. New CheckHostPatchesRequiringReboot method with the same behaviour as old method (return list of KeyValue warning messages). Pool updates on Ely use the union of messages from this method instead of the old one. Also localised the "{hotfix} on {server}" string per todo (hence resx changes).
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
For servers running Ely or greater we now produce messages for patching requiring reboot using the host.patches_requiring_reboot field. The Pool_patch objects resolved are sufficient to produce the same messages. Note that some patches produce a message in the old API but not the new, this is intentional. Still to do: update pool updates in the same way,
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
Now behaves as expected - alert interval (top control) has lowest tab stop, all other groups incremented by 1.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
Instead of adding a second table layout panel for the rubric label, I have extended the original table to include two new rows at the top - one for the label rubric, and one for the repeat interval controls (previously not in the table).
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
The CancelHostConnectionCommand executes by using a DisconnectCommand, so the fix here is to allow that command to execute on connections in progress as well as those that are connected.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
By passing null as the srHost parameter to the affinity picker, the "no home server" radio button remains enabled, even when no shared SRs are available, allowing users to unset the home server of a VM
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Mostly just terminology changes from home server to target server in the CPM wizard. Changes in shared component SelectMultipleVMDestinationPage (shared with ImportWizard) to allow CPM wizard to rename the Home Server column (as it can the VM/template one - using the same pattern).
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
This is resolved by moving the label into a TableLayoutPanel, docked to the top and with auto-grow on.
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
- Moved progress bar at the bottom of the page and made it the same height as on Upload page; This progress bar is now used when the prechecks are performed (existing functionality) and also for the "resolve" actions (new functionality).
- Added a label for displaying action progress.
- The icon and label saying that you need to resolve problems is hidden when there are no issues found and when an action is in progress (when the progress label is shown instead).
- When a resolve action is in progress, all controls on the page are disabled, apart from Cancel; pressing Cancel will cancel the "resolve" action and the wizard.
- Also put everything in a TableLayoutPanel (hence all the designer changes)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Add the Live Patching tab as a new part of PropertiesDialog, shown for pools and standalone hosts. Tab contains one checkbox which toggles the live_patching_disabled XenServer API property. Not yet implemented: license check ("The option should only be shown if the pool is licensed")
Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>
Partially upgraded pools are not supported. If the versions of servers mismatch in a pool, Automatic updating will be disabled with the appropriate info message.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
even when automatic mode was supported for them. The problem was that the xenserver
versions were not retrieved from the DownloadUpdatesXmlAction once the latter had run.
Also, minor refactoring.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Added Control Domain memory entry in the host memory control on Memory tab.
- Control domain memory is editable for Ely and greater hosts.
- Can be changed from a dialog that requires host to be in maintenance mode and triggers a host reboot after the memory is changed.
- This dialog is available from Server main menu and from the host memory tab.
- Also removed unused unit controls on host and VM memory bars.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
If there is no <minimalpatches /> tag, the version is not supported. This check has priority over licensed state when displaying the reason why a server is not supported.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
hotkeys; button enabled state; some memory leaks; added spinner while check for
updates is in progress; added alternative text for when automatic mode is not available.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Implemented pre-check to check whether there is enough free disk space
before starting updating a pool.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
more obvious to the user that they can edit it. To this purpose change the button
Properties to Edit (and do the same on the Networking page for consistence). Also
show the name of the disk (ellipsized if too long) on the wizard's finish page.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Add a new update to the list of uploaded updates only when the upload action has completed successfully.
- Do not perform the disk space check if there is nothing to upload (update has already been uploaded).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
in the calculation of the never-expiring licence ("greater than 3653 days" in
LicenceAlert and LicenceStatus vs "greater than or equal to 3653 days" elsewhere).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Despite the update sequences are correct by host, when they are flattened, the original order (order in minimal patches) was not considered properly, so a missing patch was scheduled for later in the sequence than it should have been, thus the upgrade failed with a precheck-error.
This bug occurs when we are given
* a pool of more than one host,
* with (at least) patchA not installed on 2 or more hosts
* patchA requires patchR that is not installed on at least one of the above hosts (but not not on all)
* the host that is missing patchR is ahead of other hosts in pool.Hosts.Cache
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
The PatchPrechecksOnMultipleHostsInAPoolPlanAction did not filter the patchmappings by masterhost, so with some probability, it could choose the wrong mapping (pool_patch object for the same update, but in different pool). This bug is being fixed in this commit, other changes only renamed (for more consistent naming) a class and removed an unused field.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- The "Alarm Settings" action on Alerts page should open host's properties dialog for Dom0 alerts
- Also added help id for the Control Domain Memory Usage alert
Removed unused properties.
Added new string resource to set the pvs farm dialog's title.
Extended XenAPI's PVS_farm class to override Name property to allow for simpler sorting code.
Removed embedded icon in resource file; dialog now inherits the application's icon.
Signed-off-by: Frezzle <frederico.mazzone@citrix.com>
Added event handlers for changes made to PVS server; it may end up calling Rebuild() twice but that's not a problem.
Signed-off-by: Frezzle <frederico.mazzone@citrix.com>
Even though the correct row have been selected by the time the grid becomes visible, it is not displayed properly. This change set fixes the problem by selecting the row again.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Bugs fixed:
* OK button not re-enabling when switching back to using existing credentials in Health Check Enrollment dialog
* Using empty credentials to authenticate with Citrix Insight Services does not disable OK button in Health Check Enrollment dialog
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
a selected item collection - there was no need to make temporarily each one of them
the command selection just to call CanExecute on them. (2) Do not mix the methods
returning the can't-execute-reasons (which can be unknown) with the tooltip property
(which can be null).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
to null, otherwise the wrond text is shown for items with null can't-execute-reason
that are selected after items with non-null can't execute reason.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
FolderBrowser dialogs. Fixed text which caused label to look unaligned. Prevent
crash when attempting to launch the DownloadAppliance dialog with "http://" as URI.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Changes following code review
- Made PVS tab localizable and added Chinese and Japanese resources
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
In the New Network wizard, when the "Single-Server Private Network" type is selected, the Network settings page should not display the MTU hint message, because it is not relevant to any controls on the page
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
title so we can tell the one from the other. For consistency I used a format similar
to Import/export XVA. I also removed the gerund from the latter as it cannot be
used when the action is completed.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>