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>
- Pool_patch.precheck can fail with the xapi error OUT_OF_SPACE when is trying to copy the patch from master to the slaves. This happens before the patch-precheck checks if enough space is available for installation. Therefore is different from the error we are currently processing, PATCH_PRECHECK_FAILED_OUT_OF_SPACE
- If the precheck fails with OUT_OF_SPACE then we try and retrieve the disk space requirements and report a HostOutOfSpaceProblem.
- Changed the PatchPrecheckCheck to try and find problem from a xapi failure, as well as from the result of the precheck call.
- Also removed ampersand from the the link labels (More Info and Clean up)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- The cloud config parameters page is only visible on a VM that already has a config drive.
- The cloud config parameters can only be changed when the VM is halted.
- In the New VM wizard, if a template is selected that already has a config drive, them the wizard will display the existing configuration, not the default one.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
-Added HostOutOfSpaceProblem to let the user to clean up disk space when getting PATCH_PRECHECK_FAILED_OUT_OF_SPACE error at precheck stage in the patch install wizard.
-A bit of refactoring of DiskSpaceRequirements class in order to be reused here
Signed-off-by: Gabor Apati-Nagy <gabor.apati-nagy@citrix.com>
New Page: Enlightenment on VM Properties Dialog, visible only for:
- VMs on Cream Or Greater hosts
- that can be enlightened, regardless of their power state
A VM can be enlightened if the key "xscontainer-monitor" exists in other_config.
A VM is enlightened if other_config:xscontainer-monitor if true.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- don't update the progress bar when checking disk space (only the description)
- the color used for "in progress" action description (above the progress bar) should be the system default font color, not black
- actions should throw ArgumentNullException, not NullReferenceException
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Before starting the upload to the master hosts, check if there is enough disk space (check only performed for Cream or greater hosts)
- If enough space available the upload starts automatically; otherwise an error is displayed
- If we can free up enough disk space then we offer the option to Clean up. Otherwise we provide the user with the information on required and available space and the user will have to manually free up required space.
- Also Disable the Upload page for oem updates
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
UploadSupplementalPackAction:
- use http-put with the default timeout
- throw current exception in RemoveVDI (instead of encapsulating it in a new one)
- add other_config key before uploading to make sure the vdi has this flag set from the beginning of its lifetime
- upload progress bar now shows the total progress per row
Also included a cosmetic rewrite of PatchingWizard_PatchingPage,GetUpdateName function
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- add an entry in the VDI's other_config to identify it as supp pack iso, so that we can easily find these vdis and remove if needed
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
- Select a supp pack in the hotfix wizard
- Recognise that it's a supp pack not a hotfix
- Check if there's enough space on a SR to contain it: (1) default SR if shared or (2) any shared SR or (3) local SR on each host in pool
- Create a VDI to contain it
- Upload the supp pack to the VDI
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
- 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>