Instead of showing the cross-pool migration upsell dialog, we now show the wizard, where user can try to perform an intra-pool copy (the cross-pool option is disabled with an explanatory message displayed)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* L10n: Inverness
build_chm # 24
* Revert "L10n: Inverness"
This reverts commit 8b41bb8c79cd4d73ed6021a5533cf7624a5421c4.
* L10n: Inverness
CHMs from build_chm master-l10n #24
Second attempt at checkin with a merge conflict resolve. (I hope)
We always add the VM wizard button to the migrate dropdown, but it's
currently not added until the end of the enable loop - after we've
calculated whether we can boot on each host. There's no reason to wait
until we've done all that before showing the wizard, so add it straight
away to the end of the list before the loop.
Signed-off-by: Callum McIntyre <callum.mcintyre@citrix.com>
When we right click migrate a VM we load all the hosts in the pool into
a dropdown, and then one-by-one assert whether the selected VM can boot
on that host, enabling each option where this is positive. If the
dropdown is exited then nothing stops these assert calls from
continuing, and looking at the logs we can see that they do.
With a large pool this is problematic because the UI basically locks up
until it's completed all these asserts, even if we've already selected a
host to migrate to. If we try to migrate another host then we see in the logs that both the old thread and new
thread are making `assert_can_boot_here` calls, and the UI for the new
thread doesn't function until the old one has finished.
This commit adds a new property `_isDropDownClosed`, which is set by the
new `OnDropDownClosed` event handler. In the loop enabling dropdown
items, each iteration we check this property - and if it is true then
the dropdown is no longer showing so we stop the loop and thus don't
call any more `assert_can_boot_here` commands. This stops the UI locking
up after the dropdown is closed.
Signed-off-by: Callum McIntyre <callum.mcintyre@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
* CP-25081: UI improvements for USB passthrough
* CP-25081: Show text when AttachUsbDialog list is empty.
* Fix comments.
* Improve the presentation of warnings in USBEditPage.
* Update warning text of attach usb dialog.
* Simplify the layout of Attach USB Dialog.
* Check if USB devices plugged before showing UI.
* Fix comments.
* Fix comments.
* Improve code.
when the max tolerance is being calculated, the text and icon on top of HA
wizard is no longer visible after this fix.
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
* CP-24412: Apply a filter before adding USBs to candidate list in Attach Dialog.
* CP-24333: Apply HA restraint.
* CP-24412: Fix a merge error.
* CP-24412: implement actions to attach/detach/passthrough.
* CP-24412: Add license check before making UI components visible.
* CP-24412: Change layout of new components to Dpi.
* Fixed all comments.
* Fix comments.
* fixed comments
This is caused by the `waitingNtolUpdate.waitOne()` call being at the end of the loop, not the beginning. The reason is that the `waitingNtolUpdate` is set during the first iteration (before the thread even gets loaded) - because the setter for Settings in this file sets it (and that's set by the setter for AssignPriorites.Connection, which is set in the HAWizard constructor). So when the thread first spawns we do the calculations, then get to the `waitOne` lock, which is set so we go back around the loop and calculate everything again before returning to the lock and waiting to be triggered. The correct behaviour is to trigger only once on the page load, and then only when re-triggered. To achieve that I've moved the `waitOne` call to the beginning of the loop, so that (assuming the `waitingNtolUpdate` lock is set before the thread is first started) we immediately run the calculations and then stop at the beginning of the loop waiting to be triggered again. This means that on page load (and after each re-trigger) we only calculate once.
The assumption that the lock is set before the thread is triggered is currently valid, because as mentioned above it's currently set by the setter for Settings which is indirectly called by the wizard constructor. I don't want to rely on that behaviour though because it's very indirect, so just to be safe I've added an explicit set just before the thread is triggered so that it's guaranteed to run the calculations the first time. This isn't strictly necessary but seems better than relying on the existing implicit setting. Since we use the same mechanism just in a different place, all the existing code that sets `waitingNtolUpdate` continues to trigger this thread as expected.
Following pattern would be caught when using "XenCenter" "XenServer" and
"Citrix":
1) not "[" or "/" or """ on left of the brand string
2) brand string followed by space followed by not "p", and optional letter
3) optional letter followed by space followed by the brand string
4) brand string followed by "," and optional letter
5) begin with the brand string
6) end with the brand string
tested with all .resx files
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
* CP-24709: Add a warning in the New VM wizard and Import wizard if the pool is licensed using XD/XA entitlement
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CP-24709: Add a warning in the New VM wizard and Import wizard if the pool is licensed using XD/XA entitlement
Fixed unintended designer code additions/changes
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
The bug is that when XC does not connect to Internet, By Server Update
page shows all the hosts up to date.
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
* CP-24707: Add license status information to the title bar for pool and hosts
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CP-24707: Add license status information to the title bar for pool and hosts
Show expired licenses as Unlicensed in the Header
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CP-24707: Add license status information to the title bar for pool and hosts
Improvements, fixes following the code review
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CP-24707: Add license status information to the title bar for pool and hosts
More code to make it nicer
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CP-24707: Add license status information to the title bar for pool and hosts
More code to make it even more nicer
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Based on comments from doc team:
1) Column title "Patching Status" should be replaced by "Status" in csv file
2) In View dropdown, "By Host" should be replaced by "By Server"
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
* CP-24331: Add UI for UsbTab and VM Usb Property
Signed-off-by: Kun Ma <kun.ma@citrix.com>
* CP-24331: Update XenAPI reference
Signed-off-by: Kun Ma <kun.ma@citrix.com>
* CP-24331: Add AttachUsbDialog
Signed-off-by: Kun Ma <kun.ma@citrix.com>
* CP-24331: Refine UI changes
Signed-off-by: Kun Ma <kun.ma@citrix.com>
* CP-24331: Discard UsbList and little refining to code
Signed-off-by: Kun Ma <kun.ma@citrix.com>
* CP-24331: Refine UI code
Signed-off-by: Kun Ma <kun.ma@citrix.com>
* CP-24331: Refine USBEditPage
Signed-off-by: Kun Ma <kun.ma@citrix.com>
* CP-24331: Refine USBEditPage
Signed-off-by: Kun Ma <kun.ma@citrix.com>
Also includes some improvements to the Select Pools page of the RPU wizard
- do not show the checkbox if the item is disabled
- show the icon for the pool items, not only for hosts (making this consistent with the similar page in the Update Wizard)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
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>
1) Show required updates in case of versions without minimal patches
2) Hide version text in installed updates when version is Ely or above
Signed-off-by: Ji Jiang <ji.jiang@citrix.com>
server time (previously on the UI thread) and also update the message list
for each snapshot schedule. Preserve column sorting and multiple selection
when the list is rebuilt. Do not enforce minimum size on the form since it
is not resizable.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
on the VM Snapshots page; update VM's status on the Snapshots page when the
VM's membership in a policy changes.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Merged the PolicyHistory control into the dialog; removed legacy column from
the policies datagridview; put retrieval of messages on a background thread
to avoid UI freezing if there is a huge number of messages; retrieve messages
only when the VMSS collection changes and not every time the run history grid
is repopulated; sorted out button enabled state.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@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.
it's not needed as it does not make server calls. Some more refactoring and corrections
here and there.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
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>
CUs are available as both updates and upgrades, but they should be presented as updates where possible.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
When the update precheck fails with UPDATE_PRECHECK_FAILED_UNKNOWN_ERROR, we try to find the actual error in the failure's parameters (in the form of an xml string containing the error code) and display that error instead of the "unknown error".
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Added app manifest to explicitly target XC to all windows versions from Vista to Windows 10 so that the Environment variables will reflect the correct Windows versions. Note that "Manifesting the .exe for Windows 8.1 or Windows 10 will not have any impact when run on previous operating systems." [1]
[1] https://msdn.microsoft.com/en-gb/library/windows/desktop/dn481241.aspx
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Add the toggle to enable/disable IGMP snooping.
Display the property if the pool is licensed
and the network backend is OVS.
Signed-off-by: Hui Zhang <hui.zhang@citrix.com>
Also restrict the use of build number as an integer to pre-Ely hosts (because a Honolulu host has a non-numeric build number and XenCenter doesn't know the difference between Ely and Honolulu)
And a small update to the pool join rule to match what we have in Honolulu XenCenter (check the database schema regardless of the version)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
once for all the items to be removed, passing in their list as argument. This method,
and the method Clear calling it, are used for alerts, updates, events and connections,
hence changed the handling of the CollectionChanged event in these cases to expect
either a single item or a collection. In the case of alerts, updates and events
this means that we can rebuild the whole list instead of removing single rows which
causes the application to hang for big numbers of items.
* CA-235459 - G11n:SC: The numeric tag for “Disks” and “Network” is overlap on the search window.
* CA-235459 - G11n:SC: The numeric tag for “Disks” and “Network” is overlap on the search window.
- use col widths from resource file instead of hardcoded values
* CA-235459 - G11n:SC: The numeric tag for “Disks” and “Network” is overlap on the search window.
- safer implementation
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@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>
- Add an empty string (instead of 'null') if the IP address is null
- Only include the XC uptime in the SSR produced in XenCenter
- Also changed the name of the metadata file that is included in the SSR
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Added more items to the metadata; the content is now slightly different between the SSR produced in XenCenter and the one from the HealthCheck;
- Encode the metadata string before sending it to the Health Check;
- Always suppress history for the action that sends the proxy settings;
- Renamed some of the new classes;
- Also refactored the actions that send data to the HealthCheck service.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- XenCenter sends its telemetry info to the HealthCheck service
- The HealthCheck service saves this metadata in its settings file and includes it in the health check upload
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
This commit changes the dropdown control to not only show the available
positions, but also mark the ones that are already being used.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CA-257574: Manage vApps dialog is unusable with a vApp containing a large number of VMs
- In the VMAppliancesDialog, change event handlers to reduce the number of refreshes when something changes: only reload the appliances when the VM_appliance collection change; if a relevant property is changed (in VM_appliance or VM), then update only the affected rows.
- Improve the way we assign VMs to a group (AssignVMsToVMApplianceAction and AssignVMsToPolicyAction): only update the VMs that really changed.
- Also improve the way we update the VM startup options and HA restart priorities on a set of VMs
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CA-257574: Manage vApps dialog is unusable with a vApp containing a large number of VMs: changes following code review
- reverted the changes to the AssignVMsToGroup actions that added the additional constructor
- changed the AssignVMsToGroup actions to calculate the set difference between two lists more efficiently
- added code to deregister PropertyChanged events on VM_appliances
- removed getCurrentSettings() method as it is not needed, GetChangedSettings can be used in all cases
Signed-off-by: Mihaela Stoica <mihaela.stoica@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>
-Removed rdpControl because it is always identical to rdpClient9
-Renamed rdpClient9 to just rdpClient because we use only one
client so there is no need to distinguish, and it can easily be updated
to future versions.
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
Fixed build by removing unused fields that caused the Release build to fail. Removed more dead code.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
(The member 'CanExecute()' does not hide an inherited member. The new keyword is not required)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Network HB initially shown as error because it takes time for the status to be
read from xha by xapi. This adds a delay to allow the status to be updated
before XC displays it.
- Moved the top warning out of the filter toolstrip and into the same tableLayoutPanel
as the dataGridVew to avoid hardcoding the dataGridview location in the code.
- Corrected linkLabel colour for compliance. Changed icon to match the icon
of the bottom information label.
- When checking for updates disable the linklabel instead of hiding the whole
warning to avoid empty space or the dataGridView jumping up and down.
- The check button in the middle should be available when the check link is
available.
- Avoid toggling explicitly the enabled state of controls; it can be taken
care of within the check for updates event handlers.
- Other minor layout improvements (control positioning).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
thus solving the resizing issue of the Actions column. Also, register an action
before starting running it.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
General tab (Pool): In the list of updates, added a space after each comma
to let the control wrap the text into multiple lines. This way the text is
no longer cut, therefore no additional scrollbar is needed.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Changed the pre-check error message to refer to the absence of the Tools
when that is suspected to be the case.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- This is needed because this class is shared with the VNCControl solution which doesn't have access to the Helpers class
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
A bit of refactoring as requested by the reviewers
I decided not remove the NullReferenceExceptions and throw the Failures
immediately in order to avoid the additional error handling that seems to be unnecessary there. However, the reason I've decided to keep it as is is that it would change what gets logged and the performance gain would not be noticeable anyway. Furthermore, the current implementation (try-catchall) catches any other exceptions providing fallback to the default Failure.
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>
- removed unused methods and properties from the NewPolicyWizard class
- made the wizard pages private in the NewPolicyWizard class
- removed unused constructor from the NewPolicySnapshotTypePage class
- removed unused property from the PolicyHistory class
- removed the public properties TreeView and DataGridView from the SnapshotsPage
- removed the PolicyType from the PolicyAlert class and the constructor that is no longer used
- removed unused property from the VMSS class
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CA-205187 - L10n: JA/SC: The websites are not shown as hyperlink on the “Health Check Privacy Statement” window
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
* CA-205187 - L10n: JA/SC: The websites are not shown as hyperlink
Fixed tab order
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
* CA-205187 - L10n: JA/SC: The websites are not shown as hyperlink
Added Japanese privacy policy
* CA-205187 - L10n: JA/SC: The websites are not shown as hyperlink
Fixed regression in tab order
Detect both VM_LACKS_FEATURE and VM_LACKS_FEATURE_SUSPEND, show proper error message on the pre-check page in the Install Updates Wizard
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CA-249849 - Using arrows to select license in license manager are the wrong way
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
* CA-249849 - Using arrows to select license in license manager are the wrong way round
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
* CA-249849 - Using arrows to select license in license manager
Reverted tab order for radiobutton groupbox as per review comments
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>
Moved "Legacy Windows" template to the bottom of the Windows templates
to discourage users from selecting it and avoid it being selected by default
at the top of the list as was the case.
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@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>
QEMU EXT_KEY_EVENT expects key symbol and key scan code to
be sent. This commit extends KeyEvent to supply translated key symbol,
as well as scan code.
Signed-off-by: Anoob Soman <anoob.soman@citrix.com>
* CA-249056: Add a unique ID to XenCenter Check For Update
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CA-249056: Add a unique ID to XenCenter Check For Update
Fixed the format of the User-Agent to comply with [1].
[1] https://tools.ietf.org/html/rfc7231#section-5.5.3
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CA-249056: Add a unique ID to XenCenter Check For Update
Changes following the code review
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CA-249056: Add a unique ID to XenCenter Check For Update
Changes following the code review
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
* CA-249056: Add a unique ID to XenCenter Check For Update
Changes following the code review
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Also ensuring that if the UpdateSessionDisplaySettings function (which we use for resize) is not supported, then we display the console centered in the parent window and with scrollbars if needed
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- set managed=true, otherwise the network creation fails with the error "The network is not managed by xapi"
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>
First step, this can return an upgrade sequence that will upgrade a pool to a version and will bring that version up-to-date right away. Untested skeleton yet.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@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>
CP-21185: Show new versions of XS and XC on the top
...unless not sorted by name, date, or servers.
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>
If a patch updates the server version, then save a reference to that version in the alert and display this alert as a "new version" alert
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Suppress updates to the status when the PureAsyncAction runs the action to populate the ApiMethodsToRoleCheck
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>
Try to match the alerts by message type, not by title, because for pooled hosts the title contains the host name followed by the friendly name, while for standalone hosts the host name is not included
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
This way XC will display the name attribute of the XC-version which is expected to contain the LTSR string for LTSR version.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- save multiple dismissed alerts as a comma-separated list in Settings.Default.LatestXenCenterSeen
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Add "latestcr" field to the XenCenterVersion class
- Change the Updates class to cope with multiple latest XenCenter versions
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Added "Changes will apply to all hosts in a pool." to clarify the scope of these settings
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
In addition to adding scrollbars when content panel size is reduced using splitter,
I also fixed the teal top panel issue from the base class so that it is applied to all
VerticallyTabbedDialog implementations.
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@citrix.com>
In addition to ticket requirements, the console size is updated when the console is:
- resized in undocked mode
- resized manually by dragging window edges
- resized by dragging the panel splitter
Signed-off-by: Letsibogo Ramadi <letsibogo.ramadi@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>
XenCenter uses the wrong token (upload token instead of the diagnostic token) when the "Request an additional update" option is used
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
The ProxyAuthenticationEnabled registry key is no longer needed since
CAR-2214 is now in its own branch.
Signed-off-by: Frederico Mazzone <frederico.mazzone@citrix.com>
Fixed the bug that caused a disconnected host to appear as if it was still connected in the License Manager. After this commit, if a host get disconnected in the background its row will be disabled and will be unselectable.
(Note that when the connection resumes, the user will still have to click on a different row to have the disabled state (and the buttons) fixed, but that is a Won't fix bug (CA-115261) that I couldn't fix right now.)
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>
* 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>