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>
-Fixed Home server's commands to try to use both versions of migration when deciding to enable or disable the menu item
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>
- Make "Reclaim freed space" a CommandButton (will appear as disabled if the command cannot execute)
- Add tooltip to "Reclaim freed space" button to show the reason it is disabled
- Hide "Reclaim freed space" button on old servers
- Allow multiselect
- "Reclaim freed space" button enabled if at least one SR can be trimmed
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Register a PIF CollectionChanged event, so the page is refreshed when a bond is added / deleted.
- Register the PIF PropertyChanged event to each PIF when the grid is populated; this ensures that all the PIFs displayed will be refreshed when their properties change.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
This fixes the following problem:
When the main window is resized, we set the minimum width of the right side panel (Panel2MinSize) to half the size of the window so that the tab contents are visible. This is fine on most situations, but on a higher screen resolution (e.g. 1920x1080) the following problem occurs:
- starting with the main window at minimum size, when the window is maximized, the Panel2MinSize is set to half window's size (e.g. 960)
- when the main window is restored back to the minimum size, the split container is not resized because there is a conflict between Panel2MinSize and the size of the window itself (Panel1MinSize + Panel2MinSize > window's width)
- therefore the navigation panel is not visible and also the content of the tab control may appear out of scale.
To fix this, we set the Panel2MinSize to half of the window's minimum width. This way the right side panel will always fit in the window, including when it is restored to minimum size.
This also fixes [CA-137956] - Restoring Maximised XenCenter does not resize the main panel properly.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
When the navigation panel is resized, we need to preserve the height of the bottom panel, by recalculating the splitter distance.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Added a 'refresh grid' parameter to UpdateRow() which indicates if a sort and refresh of the grid is necessary.
- A sort and refresh is not needed when the user selects a server by pressing the space key or by mouse, but it is needed when the information displayed has changed, for example when the license has changed.
- Also solved a possible null reference exception in CheckableDataGridViewController.ReplaceStoredRow(), by returning -1 if the index is not within the rows range.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Force an update of the selected tab when switching back from Notification view, as some tabs ignore the update events when not visible (e.g. Snapshots, HA)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- When clicking the action button on the grid, execute the action on the item that has been clicked, instead on using the grid's selected item, which may have not been updated yet.
- On multiselect (if the multiselect is allowed for the action), if the clicked item is in the grid's selection list, then execute the action on the whole list, otherwise on the clicked item only.
- This applies to both Updates and Alerts windows.
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>
- Reverted "CP-4951: CAR-100: Remove Rdp2 console" because Rdpclient 6.0 is not included in Windows Server 2003 SP2;
- Redone the fix for CA-123779 (Unhandled exception in Console Tab View), by moving RDPSetSettings() call inside a try..catch block, so we handle any exception thrown while setting the rdp client properties.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- XS60E009 has been replaced by XS62E006 and that the latter applies to all 6.x releases;
- 5.x hotfixes have changed, even though the version numbers are unchanged.
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>
When running XenCenter after a new installation, and the program's hash has changed (e.g. by .NET 4.0 upgrade), the previous settings are not automatically restored because they cannot be found (they are there, but in different folder).
We need to try and locate a config file from a previous installation, and if found, update the settings from there.
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
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>
If errors are found the error info at the bottom of the page shows up, however this should not happen while still checking and before any errors have been found.
Same applies for Prechecks page of Install Update Wizard.
Signed-off-by: Mihaela Stoica <mihaela.stoica@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>
On the affinity picker, the "no home server" radio button is disabled if there is no shared storage, except on editing an existing VM that already has no affinity.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Moved RDPSetSettings inside try..catch block, so we handle any exception thrown while setting the rdp client properties.
Also did some refactoring, removing redundant variable rdpClient6.
was available for non-dismissible alerts. Fixed wrong enabled state of the top
ToolStripSplitbutton Dismiss on the alerts and the events page. Refactored code
calculating dismissability of alerts and dismissing them. Events list should be
multi-selectable.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
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>
version alert from connections rather than ConnectionsManager.XenConnectionsCopy
(in accordance to dismissal of patch alerts).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
it was only used when logging and only for the updates; using the Description in
its place should be adequate. Fixed bug in the formatting of XenCenterUpdateAlert.Description
and removed duplicate logging when dismissing an alert.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
confusion (patch alerts and version alerts are both considered as server update alerts).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Performance issue - reconstruct the plugin menu items only when the plugins are
loaded/refreshed instead of doing it every time the parent menu is clicked. Workflow
issue - the PluginManager.Enabled gets its value from the registry; we shouldn't
wait unitl the plugins are loaded to set it.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>