* 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>
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>
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>