The problem was that the License Manager was listening to PropertyChanged events on the master only, not on slaves.
When the master's properties change (e.g. edition) we update the row in the license manager; but in some cases a slave (or more) hasn't been updated yet (as it may be updated in another event.from) and we think that the pool is partially updated.
Our solution is to listen to Host BatchCollectionChanged event, which is triggered once per cache update for the host collection (it any property changed for any of the hosts).
The sleep in the ApplyLicenseEditionAction is not needed anymore, nor is the extra call to update the cell after the action is completed, because the cell is getting updated correctly on the BatchCollectionChanged event.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Changes to the License Manager dialog:
- Summary panel: show smaller icons for warning and information messages
- Summary panel: show license entitlements for all Creedence hosts (not eligible for support, eligible for support, enterprise features enabled, etc)
- for free Creedence or Clearwater hosts, the license status is Free (it used to be Expired for ClearwaterOrGreater)
and the text displayed is "Unlicensed" for Creedence and "Unsupported" for Clearwater;
the warning message is "Not eligible for support" (instead of "Your support and maintenance has expired")
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
This fixes the following issue: event.from fails with "The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.".
It happens because we end the connections to the slave hosts only after all hosts have joined the pool and in the meantime event.from on a slave fails.
We fix this by ending the connection to each host immediately after the host has joined the pool.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
To to determine if the feature is restricted we use:
- "restrict_export_resource_data" license flag for Creedence hosts
- license edition and expiry date for pre-Creedence hosts
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Showing link to CTX page if StorageLink problem was found at pre-check (in RPU Wizard)
-Enable the Resolve All button on the pre-check page only when there is at least one problem found and all the problems have solution/fix - minor refactoring
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- If XenCenter node or a disconnected host is selected, show the default search.
- Otherwise, find the top-level parent (= pool or standalone server) and show the search restricted to that.
- In the case of multiselect, if all the selections are within one pool (or standalone server), then show that report.
- Otherwise show everything, as on the XenCenter node.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
The reason for the error dialog appearing behind License Manager dialog was that we used MainWindow as parent of the Licensing Error dialog (in ShowLicensingFailureDialog method in ApplyLicenseEditionCommand)
and there were already 3 other modal dialogs displayed one on top of each other: License Manager, Apply License and Action Progress.
Fixed by calling the ShowLicensingFailureDialog from the command, on action.Completed event (instead of action.Run) and passing the Parent as a parameter, so that we can use the correct parent when displaying the error dialog.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Reverted changes of CA-109242 (PR-62 on GitHub)
-Network tab: now to show '<None>' instead of '-' as Link Status (for pools: when the network has no PIFs; for hosts: when the network has no PIF )
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- In the Events view, offer a choice only to dismiss the visible ones instead of all
- Keep the filter buttons always enabled. This applies to all Notification views (Alerts, Updates & Events)
- Also refined the confirmation messages displayed when dismissing events
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Enhance WLB pool audit trail report:
1). Update advance settings to control audit trail granularity.
2). Update pool audit trail report to add user and object lists for selection.
3). Display large pool audit trail report with sections.
4). Localization for Chinese version.
5). Compatibility with WLB 6.5 and 6.1 or before.
Signed-off-by: Hui Zhang <hui.zhang@citrix.com>
Changes to the DeleteAllAlertsAction:
- when the dismiss operation fails with INVALID_HANDLE we need to remove the alert from our alert list (XenCenterAlerts) and trigger the CollectionChanged event so that the alert count gets updated.
- the action title now says "Removing <n> alerts" when dismissing all/selected alerts and "Removing alert" when dismissing single alert (instead of "Removing all alerts" in all cases)
- move the initialization of Dismissing flag outside the action (see below)
This fix also includes changes so that the Dismissing flag works as intended: to be able to hide the dismissing alerts in the Alerts view immediately, rather than one by one when they were actually deleted, causing a large number of refreshes.
On dismissing alerts we do:
1. set dismissing to true for all alerts
2. rebuild alert list (this will filter out the dismissing alerts)
3. dismiss alerts - run the DismissAllAlerts action
Also, the action buttons on each row should only apply to the clicked row (not multiselect).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Set the pool details in the action to allow proper filtering by location on the Events page
- Also, when possible, set the Host property: when setting the SR in the action, we also set the Host to SR.Home
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Suppress reporting of success and failure for sub-actions:
The suppress history flag is set when the action is created and if is false (by default) the action is added to the history (the Events list).
In order to suppress history for the subactions, we need change all actions used in Edit pages so their constructor can set the SuppressHistory flag and then use these constructors with suppressHistory = true on all the implementations of IEditPage.SaveSettings() where an action is created
(then we need to remember to do the same everytime we introduce a new page and / or "save" action).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Added 'Host:' to HTTP headers for all the HTTP GET and PUT requests sent by XenCenter.
This change will presumably fix network issues occurring when going through certain corporate firewalls/proxies.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- Added three Warning classes (HAEnabledWarning, WLBEnabledWarning, HostNotLiveWarning), used in the Pre-checks page of the Install wizard (also in the Rolling Pool Upgrade wizard) to indicate that a check was skipped and the reason why.
- If HA or WLB is on, we show this as an error in the "HA and WLB status" check and the "VM migration status" checks will be skipped (with a warning displayed) for all the hosts in the pool.
- Similarly, if a host if unreachable, we show this as an error in the "Host liveness status" check and the following checks for that host will be skipped (and warning displayed).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Calling new overload of the session.login_with_password() XAPI function (+originator field). This lets XenServer to group all sessions from a given XenCenter instance.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
If a VM is created from snapshot which has a vGPU and "No" vGPU is selected then the newly created VM shouldn't have a vGPU.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
The error has been caused by the shadow multiplier field on Advanced Settings page: XenCenter thinks that the values has changed, and tries to save it, but this is not allowed for VM Admin users.
The solution is:
- use -1 as the signal value for unparseable string, instead of 1.0, which is actually a valid value;
- display the existing value without formatting it to 2 deciaml places;
Also corrected the validation function, as the shadow multiplier has to be greater than or equal to 1, not 0.1.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Added check for null for sm.features in SR.SupportsTrim;
- Better error messages;
- Moved error messages from Messages to FriendlyNames;
- Removed the check for actions in progress from TrimSRCommand.CanExecute().
-
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
The operation applies to an SR. The button is on the Storage tab of the host/pool, and is entitled "Reclaim freed space".
It comes between the New SR and Properties buttons.
If the SR does not support TRIM , the button is invisible and the Properties button moves left to close up the gap.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Renamed “Checking can evacuate host status” precheck group to “Checking VM migration status”
- Prechecks page – check that all VMs have valid vCPU settings (i.e. number of vCPUs is a multiple of number of cores per socket).
- This check is included in the ‘Checking VM migration status” group
- If a VM has invalid vCPU settings, the precheck will display the problem with a solution to “Fix vCPU configuration” which opens the VM Properties dialog on the CPU page.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Text on CPU page - changed to include topology.
- Summary page on the New VM Wizard – changed to include topology
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Added Topology drop-down box with available values for sockets and cores per socket, so that the number of vCPUs is divisible by the number of cores per socket.
E.g. if user specified 8 vCPUs, Cores per socket can only be 1, 2, 4, or 8.
- This updates VM's platform:cores-per-socket property.
- Can only be set when the VM is shut down (similar to number of vCPUs).
- Text on CPU page - changed to include topology.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Made the radio button invisible for Creedence or higher XS hosts.
Removed previous StorageLink-related upgrade pre-checks and added (strict) check to prevent upgrade when StorageLink is used.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- The VLAN can be set to 0 only for Creedence or greater hosts on the vSwitch backend.
- When VLAN 0 is selected, an info is shown next to the control, saying "VLAN 0 will receive all traffic not on any other VLAN"
- Also fixed an error on New Network Wizard, where the "VLAN in use" message was still visible when changing the NIC.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Renamed "Delete Pool" to "Make into standlone server"
Made sure it can never work with a multi-server pool
Removed confirmation dialog, as it is not destructive
Removed from context menu, as it is not important/common enough
The Heartbeat would log out the session after the first missed heartbeat.
This worked fine when the Heartbeat was on its own session, back in George
and earlier versions. However, when it was changed to use just a
DuplicateSession() instead of a new Session(), this broke the main session
of the connection. This caused a first heartbeat failure to break the
connection, and also caused the expectDisruption flag to be ignored.
This patch restores the old behaviour by not logging out the session until
the second failure.
XAPI (from 1.7) destroy destroys suspend VDIs as well (code is here: xapi: ocaml/xapi/cli_operations.ml). Depending on actual race conditions, this can lead to a situation when we try to destroy a Suspend VDI that has just been deleted.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
existing or due to the host being a slave. Use the action description instead of
the action title to construct the error for failed connection results. Indentation.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
of XenCenter and tasks started from outside and cancelling the former when exiting
or disconnecting from the pool.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Changed the way the dependency patches are fetched, to avoid getting an exception if
requiredpatches/conflictingpatches node has at least one child that has no uuid attribute,
also checking the child name
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- setting the ConnectionGroupName causes all the new sessions to be on their own set of TCP streams.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- group names are not cached when the other user details are cached (in the constructor), but only when the UserDetails.GroupMembershipNames property is first used.
- also optimized the code for getting user details.
is downloaded and stored every time an update is performed (if manual all updates
are downloaded, if automatic only as per the user's choices). If there are available
updates, update alerts are generated if there are connected hosts and disappear
when the hosts are disconnected.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>