- Ensure we read the updates.xml location anew from the registry, otherwise the
application has to be relaunched to pick a registry change. Look in both hives
HKCU and HKLM. To avoid performance impact on the UI, move the operation into
the action's Run() body.
- Some refactoring to improve OOP design and fix XmlReader leak.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Consolidated Action.PollToCompletion overloads, among others, to reduce precision loss.
- Logging the environment's stack trace is not very useful in the case of an API failure.
- Log the task's opaque_ref so it's easier to trace errors in the server side logs.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
The fix for CA-337280 moved the parsing of the probe result in the Run body of
the action, causing it to fail when the dry-run for the RBAC checks is performed.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* Hid properties from the designer and renamed them because they give the wrong impression.
* Fixed some inefficiencies around the NetworkComboboxItem.
- Move NetworkComboBoxItem into the NetworkComboBox class.
- Moved XenAdmin.Dialogs.NetworkComboBoxItem into the VIFDialog class and made it
private to avoid ambiguousness with the public XenAdmin.Controls.NetworkComboBox.NetworkComboboxItem.
- Create a NetworkComboBoxItem only if needed and assign its name at construction time.
- Add method to select a NetworkComboBoxItem and property to return the SelectedNetwork.
* CA-339233: Do not allow selection of networks while they're locked.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Improvements to progress reporting (CA-65894).
- Added some logging.
- Use the connection cache instead of making server calls.
- Moved some methods to the string utilities and added unit tests.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Previously this was not possible due to XenModel-XenOvfTransport cyclical references.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Automatic indentation fix as a consequence.
- Use proper xml doc for the various methods and classes.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- CP-34862: Do not allow nomination of new master if a pool secret rotation or
other pool operations are in progress.
- CA-292642: Fixed button enablement after resolving VM problem.
- CA-284126: Added button to rescan running VMs on the server.
- Removed annoying, focus stealing, modal action progress dialog. When scanning
for VMs show a spinner on the control instead.
- Fixed crash when the host combobox was updated due to cache changes.
- Logging in an elevated session was happening on the UI thread.
- Show the role elevation dialog before launching the host evacuation dialog or
we end up with showing the user an unpopulated control.
- Stop deriving from animated progress dialog because it makes it difficult to
get the resizing right when adding more controls.
- Stop using the progress bar for the VM solution actions; rely simply on the
action's description and the VM's icon in the gridView.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Use a plain list to store update alerts and, where possible, fire a collection
change event only after a bulk change and not every time a single object is added
or removed.
- Fixed issue where dismissed updates were stored in the config of all connected
pools, even of those where the update did not apply.
- Corrected RBAC checks for update dismissal.
- Fixed enabled state of dismiss buttons.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Also: removed unused method; some property modernisation; removed class
LiveMigrateOptionsVmMapping which was rather complicating things.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Removed unnecessary abstractions. Replaced named delegates with anonymous ones.
Use pattern matching and avoid multiple casts. Be consistent in the properties
we check.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Also, moved code handling RBAC failure from the Failure class into the
PoolJoinAction because it is pretty specific to the latter action.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Simplified SudoElevationResult.
- Renamed SudoDialogDelegate to ElevatedSessionDelegate so that it makes more sense
for projects not referencing WinForms.
- Call directly the RoleElevationDialog within XenAdmin without using the ElevatedSessionDelegate.
- Minor modernisation in AsyncAction.
- Launch GraphDetailsDialog in a using block.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- It was not possible to apply different settings to multiple hosts
at the same time.
- Server calls were made on the UI thread.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Also, corrected the RBAC permission check after stopping using the conversion plugin.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Poll for the appliance version because the service may take a while to
start after an IP address is obtained.
- More flexible IP address look up.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- if a hotfix eligibility date field is invalid, then the hotfix eligibility warning does not include any reference to this date.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CP-30958: Initial implementation of the Conversion Manager in XenCenter.
* Corrections following review and improvements.
* Further corrections and improvements.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
CP-31527: Add notifications in XenCenter for versions that are no longer eligible for hotfixes
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Also, fixed issue where uploading a supp-pack resulted in a perpetually
pending action if the file had disappeared from the disk.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
If the tar contains huge files, this causes memory spikes, even OutOfMemoryException.
Instead, copy the file from the input to the output stream in chunks.
For this purpose the sanitisation code was moved to XenCenterLib to avoid
exposing the tar internals to the UI project.
Also, made some minor improvements in error handling, clean up, and logging.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
1. Update AddVGPUDialog title;
2. Add label above the combobox;
3. In the combobox, add text to the entry saying if multiple vGPU is supported;
4. When the dialog is open, focus on the combobox;
5. Preselect the vGPU type if there is only one option available;
6. Setup the Help ID for dialog;
7. Optimize vGPU adding and deleting in GpuAssignAction.
Signed-off-by: Michael Z <michael.zhao@citrix.com>
* CP-31063: Add support for multiple vGPU
(incomplete)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CP-31063: Add support for multiple vGPU
(part 2)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* AddVGPUDialog
Signed-off-by: Michael Z <michael.zhao@citrix.com>
* Update bindings.
Signed-off-by: Michael Z <michael.zhao@citrix.com>
* REQ-720: Initial implementation of AddVgpuDialog.
Signed-off-by: Michael Z <michael.zhao@citrix.com>
* Improve the handling of buttons and combobox. Fix comments.
Signed-off-by: Michael Z <michael.zhao@citrix.com>
* Fix comments.
Signed-off-by: Michael Z <michael.zhao@citrix.com>
* Refactored the VIFDialog to fix various problems:
- Launch the dialog in using blocks.
- Event GotFocus is not meant to be handled directly in the code.
- Populate the dialog in the OnLoad override instead of the constructor
as this causes problems at design time.
- Popping up an error message for duplicate MAC on combobox item
selection or textbox text change is not optimal UX. Perform this
check once when closing the form. Additionally the parent form of the
pop up should be the dialog, not the main window.
- The validation messages are not obvious to the user because they are
hidden in the tooltip of a disabled button. Show them inline instead.
- There is no need to create commands for VIF creation/change; use
the relevant actions instead.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* Corrections as per code review plus some more code tidy and refactoring.
- Added option to suppress Create/DeleteVIFActions
- Use property RebootRequired to indicate hot-plugging is unavailable
(assigning various objects of different types to the Result of the action
during its run may cause confusion).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- On the dialog show the next run time in both the client's and the server's local time zone.
- On the VMSS frequency page allow the user to pick the schedule in the client's
local time zone and show then next run time in both the client's and the server's local time zone.
- Refactoring to fix workflow and class design, reduce amount of code and simplify logic.
- Various layout improvements.
Signed-off-by: Aaron Robson aaron.robson@citrix.com
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- Refactored MeddlingAction and Task classes: moved the logic for building a MeddlingAction outside the Task class and switched to using the vm_operations enum to identify which tasks are suitable for MeddlingAction
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
of the hosts to be upgraded and not only on the first one in the list.
For this purpose, the test has been moved to the prechecks, and the
failures are now shown as a non-fixable problem.
Further, specification of the network location of the installer files
has moved closer to the upgrade mode selection.
Also, moved the hotfix and upgrade related checks immediately after the
host liveness check.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Moved these errors to the FriendlyNames, which is reserved for resources with
keys coming verbatim from the server.
Some code efficiency corrections to the page's workflow.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
because it only manages friendly names; moved it closer to the relevant resource files.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
- removal of the SystemStatusAction launching the individual SingleHostStatusActions,
because the connection was set incorrectly to the last one of the selected
connections and, if an error occurred to that connection, the data collection
for all of them failed.
- proper handling of HTTP.CancelledExceptions.
- replacement of the FlickerFreeListBox by the more versatile DataGridViewEx.
- corrections to reporting progress for individual hosts as well as page totals.
- made collection of client side data more obvious.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* Simplification: use auto-properties.
* Removed unnecessary null check. Converted private methods to linq method chain.
* Removed unused file. Added null check.
* Corrected property names as it was difficult to distinguish between the alert,
the patch and the filepath.
* Removed duplicate lock.
* CA-296490: Rewrote the logic uploading single updates so as to facilitate uploading to multiple pools in parallel.
* Corrections as per code review.
* Account for the case of uploading from disk legacy updates that do not correspond to an update alert.
Removed unfriendly error messages (the failure is written out in the logs anyway).
* Wizard test corrections and some modernising:
- Only call cancel on the last page if the test allows us to.
- Do finish the UpdatesWizard test.
- Finish the RunWizardKeyboardTests using key strokes instead of button clicks.
- Ensure the Cancel/Previous buttons do not have focus when sending an Enter stroke.
- Use optional parameters in the WizardTest constructor and string interpolation.
* Renamed badly named property.
* Improved code cloning VMs by assigning new opaque_refs to cloned VBDs.
Compacted test object provider: use optional parameters instead of method overloads.
* Modifications to prevent multiple update of enabled state and ensure the wizard
buttons are updated last.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
CA-303516: Cannot change dom0 memory via XenCenter.
Allowing the user to proceed (not set the value and min/max to 0.0GB) even if the memory static min and max is in the wrong order.
Adding further detail to the error message in case an out of bounds value is sent to the API which could potentially happen due to the range widening that occurs if the min/max would invalidate the existing value.
Signed-off-by: Aaron Robson <aaron.robson@citrix.com>
- Corrected folder selection; reduced clicks required to select folders;
improved text; added delete button.
- Moved FolderChangeDialogTreeView to the same folder as the other TreeViews;
- Added missing null checks to the MutliSelectTreeView and hid properties
HScrollPos and VScrollPos from VS's designer (the former was initialised
to zero every time the designer was updated, causing the treeview images
to disappear).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Stepping up the PercentageComplete manually is not required as PollToCompletion is doing this for us already.
Signed-off-by: Aaron Robson <aaron.robson@citrix.com>
This fixes the bug in the Patching wizard, where the wizard does not show any error and does not notice the disconnection, so it is stuck in the Installing update phase.
The Patching wizard only uses the ApplyUpdateAction class, but I had also changed the ApplyPatchAction class to avoid similar problems in the RPU wizard, where this action is used to install the RPU hotfix during the prechecks.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
Also, simplified the logic selecting the single update when we leave the
SelectPatchPage so as to avoid ambiguities in which properties are to be set
and refactored the error handling methods to avoid duplicate checks and
provide the right error message (for example, the error message was misleading
for a non-existent path; or, the level of detail provided in the case of
invalid zip content was of lesser relevance to the user).
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
Also, call the XenServerHealthCheckUpload in a using block; use the FileInfo.Open
method to open the zip file for upload.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
The changes included are:
- use a HttpClient object instead of HttpWebRequest
- use the same FileStream for all the chunk uploads
- retry the chunk upload if it fails (max three tries)
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
* CP-14807: Delete OEM in ServerVersion
* CP-14807: Removing unused IgnorePatchAction and IgnoreServerAction classes (moving their constants to the Updates class).
Signed-off-by: Aaron Robson <aaron.robson@citrix.com>
* Correct out of range percentage and throw an assertion instead of silently
logging it so we can fix the causes of it. Compacted method logic.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
* Exception handling: prevent InvalidOperationException if the health check service
is not found on the computer (installation is optional).
Do not throw exception and handle if the task handle is invalid, but rather
throw it only for other cases of task.status being failure.
Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>