Changes following code review:
- Added VM.CanHaveVGpu function (at the moment just returns CanHaveGpu, but it will change in the future)
- Added vGPU_type.IsPassthrough function and used it everywhere we needed to test for passthrough (max-heads==0)
- Simplified code in Helpers.GpuCapability, Helpers.VGpuCapability, NewVMWizard (gpuCapability), MainWindow and GpuRow
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
New properties:
- Pool.HasGpu = Pool has at least one PGPU
- Pool.HasVGpu = Pool has at least one PGPU that HasVGpu
- PGPU.HasVGpu = PGPU has at least one supported_VGPU_type that is not pass-through
New or modified helper functions:
- Helpers.GpuCapability = GPU feature not restricted (by licensing) and Pool.HasGpu
- Helpers.VGpuCapability = vGPU feature not restricted (by licensing) and Pool.HasVGpu
- Helpers.ClearwaterSp1OrGreater = API version is 2.1 or greater
The GPU dialogs are displayed as follows:
- GPU page on VM properties dialog: Visible only if VM.CanHaveGpu and the GPU feature not restricted (by licensing)
- GPU page on New VM Wizard: Visible only if VM.CanHaveGpu and the pool has GPU capability (Helpers.GpuCapability)
- GPU page on Pool properties dialog: Visible only if the pool has vGPU capability (Helpers.VGpuCapability)
- GPU tab: Visible only if the pool has GPU capability (Helpers.GpuCapability) and is Clearwater SP1 or greater
- On the GPU tab, the "Placement policy" panel: Visible only if the pool has vGPU capability (Helpers.VGpuCapability)
- On the GPU tab, the "Edit" button on the "vGPU types" panel: Visible only if the PGPU.HasVGpu and vGPU feature not restricted (by licensing)
Also:
- VM.CanHaveVGpu function renamed to CanHaveGpu
- On the GPU tab, renamed "Allowed vGPU types" to "vGPU types
Instead of showing just the name, this code is showing name with location information in title for all objects that appear in the tree view.
(A new property (NameWithLocation) with a getter accessor defined in IXenObject and has been implemented as virtual in XenObject and overridden at several child classes.)
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Show pool (or standalone server) name on the Upload page.
Also corrected some resource strings.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Added new page to the patching wizard, called "Upload" which displays the upload actions for each server and the progress of these actions
- MultipleAction: added the functionality to optionally stop the action on first failure
- Fixed the error where an existing patch downloaded from another server and then uploaded to a new one was not deleted on cancelling the wizard [CA-156788]
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Correction following code review: When a host collection changes, update all rows containing the hosts changed. This will cover the case when the License Manager shows all members of a pool on separate rows for pre-6.2 versions of XenServer.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
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>
The Free license never expires and is confusing to see "Unlicensed" or "Unsupported" hosts with expiry date "Never".
Added the ability to add "hidden" entries to the General tab sections and to update their visibility when needed without regenerating the whole section.
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>
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>
In some cases calling Control.Invoke() from a background thread causes that thread to go in a "sleep, wait, or join" mode, while waiting for Invoke to happen, although the UI thread is running normally.
If the Control is the MainWindow, it works as expected, but we've seen it happening while connecting or disconnecting from a large pool, on calling Invoke on controls like NavigationView, AlertSummaryPage, HistoryPage, etc.
To fix this, we call the Invoke on the MainWindow in all the places where we've seen the issue.
With this changes, the previous fix for CA-148245 (call RequestRefreshTreeView on CacheClearing event) is not needed anymore, so I removed that call.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Changes following the code review: To minimize the distance between the OK button and the "View Legal Notices" link, the latter has been aligned to the Bottom-Left and the height of its container row has been set to 100% instead of Auto.
-Changed Location to Server or Server/Pool in the views contained by the Notifications View
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@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>
Based on the discussion of CA-144708, when error happens or the Current Server is listed and disabled
in the recommendation host list, there is no rating score and star actually, so it is good to hide the
zero star to avoid confusing.
This fix hides the zero star indication on XenCenter GUI.
Signed-off-by: Zheng Chai <zheng.chai@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>
-Fixing issue as per Mihaela's review: "when an object and its parent (i.e. the group) are selected, the search result should be the search on that group"
-Fixed search on Objects view when multiple items were selected. If one item is selected the behaviuor is unchanged. If multiple items are selected the common ancestor's search is displayed if there is one, otherwise we display the search view that belongs to the root node (Objects by Type).
For issue 1, move the "labelStartDate" location to left with 4 points.
This would make the gap between "labelStartDate" and "StartDatePicker" larger than others under Windows EN.
For issue 2, would not extend the size of "StartDatePicker" and "EndDatePicker" since they would occupy other labels and comboBoxes' room.
Signed-off-by: Hui Zhang <hui.zhang@citrix.com>
-I defined save and restore selection functionality in SelectionBroadcaster and implemented them in SelectionManager. The NavigationPanel now uses these to: 1) save the current Selection (context) when the user switches to the Notification view, 2) to restore previous selection when switching away from the Notifications view.
Fix the following display issues:
1. Should leave more space upon pool granularity setting with XenCenter Chinese version.
2. "Close" should not be the default button when "Previous Section" or "Next Section" is enabled.
3. On WLB advanced settings page, the split line of pool audit granularity should extend and contract along with the size change of the form.
4. For large pool audit trail report, click "Next Section" till the report end, if change user/object/startdate/enddate, "Run Report" button is shown but disabled. Should enable it.
Signed-off-by: Hui Zhang <hui.zhang@citrix.com>
Fix the display issues of Chinese version XenCenter/WLB:
When WLB Configuration Dialog size is changing,
1. OK and Cancel buttons are truncated,
2. OK and Cancel buttons do not keep at the bottom/right corner of the dialog.
Signed-off-by: Hui Zhang <hui.zhang@citrix.com>
Fix the display issues when WLB Configuration Dialog size is changing:
1. OK and Cancel buttons are truncated.
2. OK and Cancel buttons do not keep at the bottom/right corner of the dialog.
3. The height of the SplitContainer does not track the change of the height of the dialog.
Signed-off-by: Hui Zhang <hui.zhang@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>
For pool audit trail report, when click "Run Report",
reset "_endTime" so that the end time will be re-retrieved.
Signed-off-by: Hui Zhang <hui.zhang@citrix.com>
- Show the page and grey out the irrelevant options (i.e. the installation media if the template has no CD drive).
- Only disable the Installation media step if the template has no installation media and we don't show the boot options (because is HVM).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Updates view: on pressing Download and Install, open the wizard at "Servers" page, select all the servers that the patch applies to, and disable all the others.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Modified layout to avoid overlapping and dynamic movement of input fields/buttons when an error message is being displayed.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@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>
-Fixed by removing all the (redundant) tooltips from all the buttons in Alerts, Updates, Events view.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
-Fixed by removing all the (redundant) tooltips from all the buttons in Alerts, Updates, Events view.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@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>
- The problem was the Summary page was displayed before the lists of succeeded and failed actions have been populated (on the Completed event of each action).
- To fix it, we populate these lists after all the actions are completed, and on the event thread.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- cannot remove completely because of the plugin specification, but it is not be visible even if they were plugins trying to use it
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>
-According to the call stack this is the place where the exception can come. Although I was not able to reproduce the exception, this fix solves a possible argument (index) out of range exception. With this check, point merging is not going to be done if it would be unnecessary anyway when there were an empty list to be merged (count==0).
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>