- Fixed the way we calculate PercentComplete for ParallelAction: use the sum of actions in actionsByConnection and actionsWithNoConnection instead of subActions.Count, to avoid waiting for the completion of actions that we never start, because we exclude actions with disconnected connections from actionsByConnections
If there is no <minimalpatches /> tag, the version is not supported. This check has priority over licensed state when displaying the reason why a server is not supported.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Implemented pre-check to check whether there is enough free disk space
before starting updating a pool.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- The multiple action is cancellable if is at least one sub action is not completed
- When a multiple action is cancelled, we try to cancel all sub actions that are not completed
- Also changed the way we calculate the percent complete for the parent action, to report partial progress of the sub actions
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
title so we can tell the one from the other. For consistency I used a format similar
to Import/export XVA. I also removed the gerund from the latter as it cannot be
used when the action is completed.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
XenCenter no longer ignores checking if the master host already has the specified patch applied; it now checks before trying to apply it, which means we get no error in the Patching Wizard's Patching Page.
Signed-off-by: Frezzle <frederico.mazzone@citrix.com>
Replaced the call to Task.destroy() with the DestroyTask() method, which additionally sets RelatedTask to null. This ensures that we stop polling the task for its progress and report the error.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Assigned Proxy property in all WebClient, WebRequest and HttpWebRequest instances.
Removed "proxy not supported" message from Download Appliance dialog, since the download does work with a proxy.
Signed-off-by: Frezzle <frederico.mazzone@citrix.com>
[CA-211369] Console switching when snapshot completes
ConsolePanel.setCurrentSource() being called in ConsolePanel.Snapshot() was causing the console view to switch to the target snapshotted VM's console, but only if the user is already on a console tab. The screenshot now happens before the snapshot begins, instead of after; this way, the screenshot always occurs when not on the console tab.
Signed-off-by: Frederico Mazzone <fredericom@citrite.net>
Removed last bits of code relating to "Bypass proxy server for local addresses" option.
New proxy settings are sent from XenCenter to health check service and used to configure the proxy using GetProxyFromSettings().
Health check service now correctly saves its proxy settings and updates the static Proxy property for the Session class; done in new ReconfigureConnectionSettings().
Signed-off-by: Frederico Mazzone <fredericom@citrite.net>
Added 2 textboxes for proxy username and password; encrypted when saved and decrypted when loaded.
Added 2 checkboxes; one for bypassing proxy for xenserver connections, one for providing proxy credentials.
Removed checkbox for bypassing proxy for local addresses.
Controls are no longer enabled/disabled when the related proxy option is selected/deselected.
Making changes to a control (e.g. username, bypass checkbox, etc) selects the 'Use this proxy server' option automatically.
Removed "Bypass proxy server for local addresses" option.
Basic and Digest authentication implemented. Tested with FreeProxy (Basic+Digest), CCProxy (Basic) and AnalogX Proxy (no authentication); each were tested with correct credentials, incorrect credentials and missing credentials; all gave expected results.
Signed-off-by: Frederico Mazzone <fredericom@citrite.net>
* CA-77990: Report required actions for all VMs at once in the hotfix wizard / RPUW
* CA-77990: Resolve precheck problems in parallel in the Patching wizard
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CA-77990: Resolve precheck problems in parallel in the Patching wizard
Changes following code review: Made the ParallelAction work across connections and removed CrossConnectionParallelAction
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CA-77990: Modified ParallelAction to create queue on RunSubActions only, with the correct queue size
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Added support for defining custom update.xml location in Registry. This
can be either a local file or an URL. This will be beneficial when testing XenCenter.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- Changed the FolderAction class so that it can be used to delete or move multiple folders across connections, instead of having multiple actions (one for each holder) which can not run in parallel.
- The api calls that update the EMPTY_FOLDERS entry in pool's other_config are preformed last for all connections, avoiding cross-thread exceptions when two threads try to add/remove the same key.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Calling disable as best effort. (We always call disable AD before enabling AD - CA-48122)
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- Try to get the analysis progress from cis (as an integer value representing percentage 0 - 100). If this function returns a valid progress less than 100, then we don't try to get the report analysis and continue to display "Analysis not yet available"
- If the progress is 100 then we get the analysis result and display it
- If the progress cannot be obtained, then we try to get the analysis result; If an empty result is obtained within 10 minutes from the upload completion, then we assume that the analysis is still in progress and continue to display "Analysis not yet available"
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Disableded non-required pages in the wizard
Added placeholder for new pages
Changed sequence of pages
Removed unnecessary code
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- Added PoolPatchCleanAction which is called for each pool after the patch has been applied on all selected hosts
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- XenCenter build system picks up the RPU hotfixes from Artifactory
- RPU001 and RPU002 replace XS62E006 and XS65ESP1006
- Removed hotfixes from the solution, moved XS60E001 to Branding folder
- also cleaned up code in the HotfixFactory class, removing MNR and Cowley hotfixes (not supported anymore)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Fixed code to treat uuids of patches case-insensitive when consuming, but not changing them (eg. to lowercase) to keep compatibility with older XAPIs.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- InvisibleMessages.resx contains the default url for check for updates, which can be overwritten in Branding.cs
- Added an extra parameter to DownloadUpdatesXmlAction for the updates url. If this is not specified (or null), then the default one (from InvisibleMessages) is used
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
If the new field is not present, we'll fall back to the old method, which is by
name_label (SR.is_tools_sr/VDI.is_tools_iso will be false in that case).
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Setting Host or Pool on the ApplyLicenseEditionAction when there is one XenObject in the list
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
This changeset implements the followings:
On creation of a new VM,
* XenCenter will use licensed state of the host to determine whether it should obey/apply the template-recommendation regarding the vendor device.
* If the host is licensed, and the selected template's recommendations suggest that has_vendor_device can be set/should be set to true, as part of VM creation, XenCenter will set the vm's has_vendor_device based on the recommendation using set_has_vendor_device API call (after it has cloned the template and before calling vm.provision).
* XenCenter will not expose details whether 1G or 2G VM is going to be created.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Dom0 memory alerts have to be configured in the other_config of the control domain (dom0) and not of the the host. This changeset implements this exception.
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
UrlEncoded all the strings that are used to create URLs. (Such as untrusted user input: string fileName)
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
Revert "Merge pull request #708 from GaborApatiNagy/master_windows_update"
This reverts commit fe03f1382f, reversing
changes made to 423065a2c8.
Conflicts:
XenAdminTests/TabsAndMenus/MainMenuGeorge.cs
- added Case Number edit box on the Destination page of the wizard
- valid case number needs to be 9 or less digits
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Feature leveling should "just work" for Dundee and higher hosts, without the need for us to level them explicitly
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Implementing Upgrading VMs to Windows Update
New screen features:
-Create skeleton of the Upgrade VM dialog
-Implement a Go To Console link (just a link that opens a vm console)
-Implement logic to show the right status for a VM (includes rules to
get the states). Includes updating the dialog whenever the status changes.
-Add status texts to Messages, proper text on the UI
-Add stub methods to VM class in XenAPI-Extensions to r/w states from
Guest Agent
-UI: Implement rules what vms to display, checkbox rules, read only vms,
and when to enable the Upgrade button
-Implement Upgrade button (writes state for GA, mounts ISO) + maximum
parallel executions/actions
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
When the pool's ssl_legacy settings are changed, we may temporarily lose connection. The action generally copes well, because PollToCompletion is aware of the ExpectDisruption flag.
But when the action's RelatedTask is assigned, we perform more api calls, which may fail with WebException. When disruption is expected, we need to ignore it and try again on a new session (CancellingAction.DoWithSessionRetry).
When creating a new VM, we no longer use vm.provision to create VM's disks, but instead we create the disks ourselves using vdi.create; this way we can specify the initial and incremental allocations for the new disks.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Not applied updates do not appear anymore in the General Tab of a pool. (Related to CA-180577)
- If we apply a patch that was already applied (happens when we take a file from disk that is not in the updates list taken from the Citrix website -> no metadata), on cancel we are now removing the uploaded patch from the host.
Changed all the health check actions to perform the necessary role checks
- HealthCheckAuthenticationAction: changed so it does not save the tokens, so no role checks required in this action (all the checks are performed in SaveHealthCheckSettingsAction)
- GetHealthCheckAnalysisActions: added role checks
On the Health Check Overview dialog, a pool is displayed as read-only if connected as a user with roles that don't permit changing the health check settings:
- the following actions are not available: enroll, edit settings, disable health check, request upload, get analysis result
- change the URLs to the production site
- for development and testing these settings should be changed to the staging site via registry keys
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Memory Tab uses GB units for values greater or equal to 1 GB, otherwise show in MB;
- Search Tab displays values in GB or MB in the same as the Memory Tab (e.g. 512 MB of 1 GB, 256 MB of 512 MB, 2.5 GB of 16 GB).
- The shiny bar present in the Memory Tab and in Memory Settings dialog shows the scaling in the following way: If smaller than 1 GB, then show as before, else show only labels with values multiples of half a GB.
- The units used in Memory Setting Dialog are set depending on the static_max. If it is greater or equal to 1 GB, then the units are GB, else MB. The user does not have the possibility of changing them.
-When detaching an SR, we detach the slaves first
-When reattaching the SR, we attach the master first
This fix was required by thin provisioning, but it does worth to use the same logic regardless of the provisioning method.
- added new fields to the Health Check Settings dialog (XenServer credentials)
- these credentials are saved as xapi secrets, and on un-enroll they are being removed
- removed the Authenticate button; the authentication is now done on pressing the OK button
- the Health Check Settings dialog is displayed on "Enroll now" and "Edit Health Check settings"
- display the "Last Successful Upload" on the Health Check Overview dialog
- use uniform format when converting time to string and string to time
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
In the CallHomeAuthenticationAction.SetUploadTokenSecret() check if the tokenKey is null (public static, may be reused later).
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- add the option on the destination page of the wizard
- for authentication purposes, MyCitrix credentials are required.
- these credentials are only used to obtain an upload token that will be used for the upload.
- the upload token expires in 24 hours and is not saved in the xapi database.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- changes following code review
- added some more logging of exceptions, also some null checks
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- added some null checks
- in the Cross pool migrate wizard, add Transfer network page for all cases except intra-pool move (which is performed via VMMoveAction)
- added comments to VMCrossPoolMigrateAction constructor to make it cleared what the copy parameter means
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- modified the VMCopyCommand to launch a cross pool copy if permitted
- added the CrossPoolCopyVMCommand which opens the Cross pool migration wizard in "copy" mode
- modified the cross pool migrate action with an extra "copy" parameter, which will add a copy option to the vm.migrate_send function call
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- With these changes, a stopped or suspended VM can be moved across pools; this is performed as a vm migrate operation.
- The intra pool move will continue to be a vdi.copy + destroy operation for stopped VMs, but for suspended VMs we need to do it a as vm migrate operation.
- We use the Cross Pool migrate wizard for both intra and cross pool move operations, but introduced a wizard mode parameter in order to adapt the wizard to the specific operation we want to perform (migrate, move or copy)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Added missing parameter to get_required_space plugin call.
-The required space is not shown in the notification when we are unable to tell how much space is required .
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- The problem was that we didn't create a vgpu if the vgpu_type was null. But for Linux HVM, this is gpu passthrough case.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Added support for CIFS (SR type, SR Wizard)
-Added some Debug.Asserts to the Create SR action to watch for clear text paswords
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
- When the install fails, log the full error description
- Added a specific exception for the supp pack installation failure
- Better action title (depending on the number of servers it applies to)
- Added a "More Info" button on the "Update" page, which displays a message with more information on the supp pack installation failure
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Added a "Integrated GPU passthrough" section to the PoolGpuEdit page.
- This section is only visible for a host that has GPU capability and the enabling/disabling of integrated GPU passthrough is not restricted.
- With this addition, the GPU page can now be displayed for a pooled host as well (previously only pool or standalone host)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Disable the Refresh button while a refresh is in progress.
- Introduced ExecuteContainerPluginAction - an action that stores the container it was called for, so that on completion we can decide whether to update the view or not (if the container displayed has changed, then we shouldn't update the view with the results from a previously selected container).
These changes apply to container Processes and Details tabs.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>