We observed that some threads can reach deadlock-ish state after they have Invoked into a control's UI thread. When it happens they are all in a waiting for join or in sleep state for very long time, although there should not be any deadlock situations.
It seems this has something to do with multiple parent controls and with which control we invoked on. This should not make a difference, because we have got one UI thread (for MainWindow) they should wait for, but we have seen it does.
The solution that fixed this issue was to invoke on the MainWindow instead of various controls (see a4fe507adf ).
This changeset is changing all our Invokes to invoke into MainWindow
instead of a control itself. (MainWindow's UI thread is the only UI thread
all Control is using in XenCenter)
This changeset should be in place until we have found the root cause or the exact reason for the above.
- Added check for Clearwater SP1 or greater to the gpu capability on the New VM wizard
- On the GPU tab, draw the grid on the shiny bar only if the capacity is greater than one
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
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
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>
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>
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>
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>
-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>
-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>
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>
- 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>
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>
for the server, not the one for the secret pool
# HG changeset patch
# User Stephen Turner <stephen.turner@citrix.com>
# Date 1384881428 0
# Tue Nov 19 17:17:08 2013 +0000
# Node ID 030ebb6e2f6964a4dbf9d5602c69cb23fcc0cbdb
# Parent 370811ffe245c8ea57ebd6f406711f8e1fee5a05
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
the events page. This renders the old custom history controls obsolete, hence
removed them. Moved ActionBase extension methods to XenAdmin.Core namespace.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
events. Fixed display issue when moving between the notifications and the other views.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Preserve last selected node when switching between views. Added labelling to the
unit tests run post-build. Minor tidy.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Mihaela Stoica <Mihaela.Stoica@citrix.com>
# Date 1384254998 0
# Tue Nov 12 11:16:38 2013 +0000
# Node ID 6b3fc3d7a54e58e92ecfe714d19c8dc26b7a0565
# Parent 2cc90cb50e7ff2566f9d0833ad17735922d3f0c9
- Only close the inactive VNC consoles (not RDP) after an interval
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Gabor Apati-Nagy <Gabor.Apati-Nagy@citrix.com>
# Date 1383736103 0
# Wed Nov 06 11:08:23 2013 +0000
# Node ID f79a41a7c73e5555143a1f5cdf7bd3e8f27a8fba
# Parent 04c02de675af090f3171b6fbf3b21b023c645c24
GPU page:
5. put GPU page back at server level
7. Move Edit button of "Placement policy" closer to text and make the box smaller and fixed
8. Put Placement policy box within the scroll bar
VM properties dialog / New VM wizard:
9. gpu types should be shown in order 2-4-8
10. show types that are not allowed as disabled items in the combobox (instead of not showing at all)
11. increase the height of combobox (max no of items) so that all items are seen without scroll
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Mihaela Stoica <Mihaela.Stoica@citrix.com>
# Date 1383126814 0
# Wed Oct 30 09:53:34 2013 +0000
# Node ID 8af833de348d090a0126ad2f922ba7679739b654
# Parent 35673b51503006bbbb1e6647b1e0eb1938bd72ef
- added Max displays and Video RAM
- videoRAM needs TO BE REPLACED with max_resolution when this becomes available in the API
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Mihaela Stoica <Mihaela.Stoica@citrix.com>
# Date 1383045574 0
# Tue Oct 29 11:19:34 2013 +0000
# Node ID 35673b51503006bbbb1e6647b1e0eb1938bd72ef
# Parent bb05d6e143d7199359da1f555250d3a4ee126a5c
Overview tab completely redesigned and shown only on pool and standalone hosts.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
This fix corrects the following behaviour: when you have a VM with no affinity and you go into its Properties dialog,
XenCenter believes that a VM on a standalone host has to have that affinity, and greys out the "no affinity" radio button,
which has the effect of forcibly changing the affinity to the host, which a VM Admin is not allowed to do.
The correct behaviour is that if a VM already has no affinity, we don't grey out the radio button.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Console tab: When entering full screen mode, make sure the screen is assigned before attempting to display the connection name.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
icon. Moved class OrganizationalView from XenModel back to XenAdmin as it is more
relevant to the latter. Updated relevant tests. Some code tidy.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
a autowrap-on-resize radiobutton. Also, removed badly aligned label and appended
its text to the radiobutton text.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Konstantina Chremmou <Konstantina.Chremmou@citrix.com>
# Date 1377079306 -3600
# Node ID 170c7cbbbaefee729774ae21a3c417205708abee
# Parent 5bd4ebbd0553c160917192dd4546bb19a2a5a64d
CA-112226: Updated unit tests to reflect the changes in string measurement. Minor code tidy.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Mihaela Stoica <Mihaela.Stoica@citrix.com>
# Date 1377013845 -3600
# Node ID a47a556a4ebb1abda620cfe1d79bba4292eaff8f
# Parent cc0505085de1e5f19326e13d74ec5542ce006080
[CA-92517] , [CA-112376] & [CA-112387] : Fixed the truncation in the CustomTreeView control
caused by wrong font being used in the calculation of scrollbar width.
Added a call to recalculate scrollbox width after the font used for description is changed.
This fixes the truncation in the following dialogs: Move VM, Move Virtual Disk, New Pool, Server Status Report.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Konstantina Chremmou <Konstantina.Chremmou@citrix.com>
# Date 1377010165 -3600
# Node ID 46350c8ef9df37a0c41d7a7245438948d261504b
# Parent a1c6bcf2b4d3119cff54d87fb97bd2491c9d8f67
CA-112226: Ellipsization should use TextRenderer.MeasureText (GDI) rather than
Graphics.MeasureString (GDI+) since the controls use the default UseCompatibleTextRendering
value (false).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
# HG changeset patch
# User Konstantina Chremmou <Konstantina.Chremmou@citrix.com>
# Date 1377007835 -3600
# Node ID a1c6bcf2b4d3119cff54d87fb97bd2491c9d8f67
# Parent 41c2dfb11187cbc91b4f874b1df8c06524aad3c7
CA-113310: Corrected string measurement which was causing truncation on SC and a
lot of white space on EN and JA versions.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
removed uninitialised streams which we were taking care to close. Solution-wide
style: use string.IsNullOrEmpty method instead of checking separately for null
and zero length.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
is expanded. Removed the title "New Search" from the panel and added a "New Search"
button which blanks the search. Renamed the "Reset" button to "Default Search" as
it wasn't obvious what it was resetting to.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
selectable combobox items from the classes EnableableComboBox and ISODropDownBox
to a base class called NonSelectableComboBox.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Fixed some memory leaks in the wizard and dialog tests. Updated broken Searcher tests.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
the search mode has changed; the latter should not be accessible from outside the
class.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- added code to deregister event handlers when the ISO drop down box is disposed; plus some code tidy-up
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
succeeded, failed; cancelled at the moment counts as failed, we may need to distinguish
in future). As a consequence the filter checkboxes from the top of the Log tab
were removed and some temporary changes were made to the drawing of action rows
(the controls will change completely in a subsequent commit).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
NewAction to use the Action<ActionBase> delegate instead of EventHandler. Thus
there is no need to fire them with Empty or null EventArgs and on several occasions
we avoid casting objects in the event handlers.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
pass in parameters when the event is fired. Moved QueryElement.Dispose method
from the Designer.cs to the main file (it needs visibility since it contains more
code than the autogenerated method).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
a Save button in the Searcher panel. Moved collapse Searcher panel functionality
from the SearchOptions dropdown menu to a Close button in the panel. Use new
Expanded property to query the state of the Searcher panel (instead of Visible).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
1. Changed definition of IsDetached property in SR.cs: SR is detached when it has no PBDs or when all its PBDs are unplugged.
2. Added bool HasPBDs property in SR.cs (replaced previous IsDetached property definition).
3. Reviewed all usages of sr.IsDetached property.
Signed-off-by: Adrian Jachacy <Adrian.Jachacy@citrix.com>