Commit Graph

7179 Commits

Author SHA1 Message Date
Konstantina Chremmou
ad8ef2e124
Merge pull request #3227 from kc284/xsi-1500-wlb-resume
CA-383040/XSI-1500: Resume WLB when reverting resolved actions after an update
2023-10-27 15:46:08 +01:00
Danilo Del Busso
82ffd50271 CA-379971: Ensure ParallelAction is not waiting on _lock when no actions are running
There is a chance that all actions have completed before we hit the `Wait` call, we need to make sure we don't hit a deadlock.

This can happen if for instance there is only one action, and it is a "dummy" action, such as the one used in the EUA check.

Also I have removed the compound assignment for the `volatile _completedActionsCount` since Visual Studio was flagging it as a "suspicious usage of a volatile variable". I personally don't think it's a problem but better safe than sorry.

Contains minor whitespace fixes, too

Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
2023-10-26 11:17:03 +01:00
Danilo Del Busso
14a3539f28 CA-384191: Fix missing values for min VM restrictions
- Min and max should also include the defaults when looking across all templates
- Ensure exception isn't hit unnecessarily when parsing restriction value for VMs
- Allow use of `GetRestrictionValueFromMatchingTemplate` with template objects
- Parallelize `GetRestrictionValueAcrossTemplates` call

Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
2023-10-26 00:59:06 +01:00
Konstantina Chremmou
fb9383df11 CP-45226: Added friendly name for new datasource 'hostload'.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-25 11:43:01 +01:00
Konstantina Chremmou
f7c9d43a64 Fixed column resizing on the Graph dialog.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-25 11:43:01 +01:00
Konstantina Chremmou
0f4d105518
Merge pull request #3223 from kc284/master
Random corrections and enhancements
2023-10-25 11:06:53 +01:00
Konstantina Chremmou
4dbfaff5bc Show WlbUpsell page for unlicensed pools.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-25 11:02:30 +01:00
Konstantina Chremmou
fce47b8152 Fixed duplicate message on the UpsellDialog.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-25 11:02:30 +01:00
Konstantina Chremmou
7b41c3a82c Hide from designer TabPage properties that are not meaningful at design time. Minor tidy up.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-25 11:02:30 +01:00
Konstantina Chremmou
9b2204d3df Removed snapshot page from the designer. Add it to the main window like the other pages.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-25 11:02:30 +01:00
Konstantina Chremmou
56628d4b83 Converted the StatusStrip of the MainWindow to a clickthrough StatusStrip.
So the user can click it immediately without having to bring the window into focus first.

Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-25 11:02:29 +01:00
Bengang Yuan
28cdeadd94 Resolve NRPE code review comments from Tina. 2023-10-24 15:47:40 +01:00
Bengang Yuan
2ad5fd8792 Resolve NRPE code review comments from Tina. 2023-10-24 15:47:40 +01:00
Bengang Yuan
7dfe809c66 Check NRPE plugin before showing properties dialog. 2023-10-24 15:47:40 +01:00
Bengang Yuan
aac73932ce All the configurations of host in a pool are the same. Fix some review comments. 2023-10-24 15:47:40 +01:00
Bengang Yuan
5815dfa086 For pool, add a CheckBox for decide if to sync the NRPE configuration to all hosts. 2023-10-24 15:47:40 +01:00
Bengang Yuan
a720105fb9 Rename private instance class fields name, add parameters changing check, etc. 2023-10-24 15:47:40 +01:00
Konstantina Chremmou
794e1f3fbd Some corrections in wording, code style, C# usage, and null checks.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-24 15:47:40 +01:00
Konstantina Chremmou
a20ea5ab6e Moved NRPE related files to the same folder.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-24 15:47:40 +01:00
Konstantina Chremmou
d941e0f533 Some layout and wording tweaks.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-24 15:47:40 +01:00
Bengang Yuan
64c8f43961 CP-44372: Integrate NRPE UI with backend interface 2023-10-24 15:47:40 +01:00
Konstantina Chremmou
56b6a5b26a CA-383650: Removed UI-side-only datasource avg_cpu.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-20 17:42:44 +01:00
Konstantina Chremmou
a3e7f4366e CA-381047: Added friendly name for the new capability 'observer'.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-20 17:42:34 +01:00
Konstantina Chremmou
972ebf2faa Removed erroneously added backslashes. Generate the xml files without the byte order mark (BOM).
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-16 22:47:12 +01:00
Konstantina Chremmou
41c1027c28 Removed ignored test.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-06 10:10:56 +01:00
Konstantina Chremmou
efbc55c9b6 CA-383376: Fixed layout issue on the Installation media page of the New VM wizard. Also, disabled unit test for localized resources.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-10-06 00:13:32 +01:00
Danilo Del Busso
afb419af04
CP-44767, CP-44766 & CP-44765: Refactor usage of VM restrictions and add reference_label to OVFs (#3211)
* Tidy up `VM` extension: use `var`
* Tidy up `VM` extension: remove redundant initialisers
* Tidy up `VM` extension: use type keywords when possible
* Tidy up `VM` extension: merge conditional expressions
* Tidy up `VM` extension: remove redundant qualifiers
* Tidy up `VM` extension: remove redundant type arguments
* Tidy up `VM` extension: remove redundant `else`s and parentheses
* Tidy up `VM` extension: fix naming
* Tidy up `VM` extension: misc changes
* Tidy up `VM` extension: use `null` propagation
* Tidy up `VM` extension: fix whitespace
* Tidy up `VM` extension: apply ReSharper Code Cleanup utility
* Tidy up `VM` extension: Fix naming of private string array
* CP-44767: Ignore VM restriction when fetching `MaxVCPUsAllowed`
Instead, fetch the highest available value in all templates for the host.
This means that VMs imported from vhd won't automatically default to `DEFAULT_NUM_VCPUS_ALLOWED`, and that VMs that have been kept across XenServer upgrades won't be limited to the number of vCPUs in their own (possibly outdated) restrictions
* CP-44766: Use value in template with a matching `reference_label` when checking VM restrictions
* Move restriction getters to own region
* CP-44766: Use matching templates to fetch VM restrictions
- Rewrite `GetRestrictions...` methods to perform simpler operations
- Add `GetIntRestrictionValue` and `GetBoolRestrictionValue` wrappers to `GetRestrictionValueFromMatchingTemplate`
- Now all calls to a restrictions first check the template value, with a fall-back to defaults
* CP-44765: Export `reference-label` when generating OVFs
---------

Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
2023-09-29 03:45:17 +01:00
Konstantina Chremmou
1c18cbaf21 CP-45372: Bumped branding to v5.3
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-22 16:33:59 +01:00
Danilo Del Busso
8983ce95a2 CA-382850: Catch exception when listing pipe names with invalid characters
Pipes can be created with invalid characters in their names (such as `|`). This results in an exception being thrown when those files are accessed via standard API calls such as `Directory.GetFiles`. Other processes might create these pipes and inadvertently prevent XenCenter from starting altogether.

Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
2023-09-22 15:43:08 +01:00
Danilo Del Busso
86fa2f6abf
CA-375900: Prepend \\?\ to file paths when creating streams for archive generation (#3184)
* CA-375900: Prepend `//?/` to file paths when creating streams for archive generation
The string works to enable creation of files with paths larger than 260 characters.
* CA-375900: Add directory support and rename utility method
* Fix whitespace in `ArchiveWriterTest`
* CA-375900: Explicitly enumerate files and directories in `ArchiveWriter`
`Directory.GetFiles` and `Directory.GetDirectories` do not enumerate if paths are longer than 260, even when prepended with `//?/`.
* CA-375900: Add long path tests to `ArchiveWriter`
* CA-375900: Add long path tests to `ArchiveIterator`
* CA-375900: Ensure files are added to folders in archive
* Use a recursive method to add directories and files to archive in `ArchiveIterator`
Also improves progress reporting by basing it on directory count
* Fix typos
* Expand `ArchiveWriterTests` to cover all combinations of directory and path lengths
* Ensure that directories used in recursive `Directory.Delete` calls are using long path format
If files in the directory exceed the 260 character limit, the calls will fail
* Expand `ArchiveIteratorTests` to cover all combinations of directory and path lengths
* Ensure relative path name removes `rootPath`
* Fix typo
* Do not use long paths when importing OVFs
The import uses `DiscUtils` which cannot handle paths prepended with `//?/`
* Remove use of `ToLongWindowsPath` within appliance export
This partially reverts commit 819425855c56c14b937849714b359003465bd2f4.
* Refactoring and some corrections.

Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
Co-authored-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-22 15:41:54 +01:00
Konstantina Chremmou
ff0ce939f7 Separated HA and WLB prechecks so the problems can be resolved at the same time.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-19 23:56:22 +01:00
Konstantina Chremmou
884160e779 Simplified the action resolving the WLB-on problem. Also:
Fixed exception handling to avoid unnecessary exception rethrowing and possible cast crash.

Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-19 23:47:15 +01:00
Konstantina Chremmou
a8fe293c3e CA-383040/XSI-1500: Resume WLB when reverting resolved actions after an update or upgrade.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-19 23:47:14 +01:00
Konstantina Chremmou
9470e20808 Removed obsolete project CFUValidator.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-12 10:11:58 +01:00
Konstantina Chremmou
dbe71838da Updated to SDK v23.25.0.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-12 10:11:58 +01:00
Konstantina Chremmou
451afe6d93 Revert to using the assembly location instead of the assembly Guid.
This prevented running two XenCenters side by side.

Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-08 20:12:16 +01:00
Konstantina Chremmou
139186d604 Parse unit "percent" (used by pvsaccelerator_space_utilization). Minor tidy.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-08 20:10:14 +01:00
Konstantina Chremmou
3445f5ae03
Merge pull request #3220 from kc284/script
Build script corrections.
2023-09-07 15:42:38 +01:00
Konstantina Chremmou
78073c7123 Missing null check.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-07 15:24:20 +01:00
Konstantina Chremmou
560ebc5a91 Build script corrections.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-07 11:29:54 +01:00
Danilo Del Busso
bba9f43c31
CA-376887: Refactor thread management for ArchiveMaintainer (#3148)
* Tidy up `ArchiveMaintainer`: use naming conventions
* Tidy up `ArchiveMaintainer`: use `var` when possible
* Tidy up `ArchiveMaintainer`: fix typos
* Tidy up `ArchiveMaintainer`: move action methods in own region
* Tidy up `ArchiveMaintainer`: apply code formatting
* Tidy up `ArchiveMaintainer`: remove unused constant/using
* Tidy up `ArchiveMaintainer`: group methods into regions
* Tidy up `ArchiveMaintainer`: remove xmldocs
* Tidy up `ArchiveMaintainer`: miscellaneous changes
* Tidy up `ArchiveMaintainer`: move `NextArchiveDown` to correct `region`
* CA-376887: Use multiple threads to load performance tab data
This commit removes the ad-hoc use of `Thread` and instead relies on `ThreadPool` and `CancellationToken`s to handle multi-threading. To achieve this, `ArchiveMaintainer` instances are now tied to only one `XenObject`. If a user navigates to another Performance tab, a new instance of `ArchiveMaintainer` is used. This enables XenCenter to quietly cancel ongoing data fetching operations, and start a new one without affecting the UI. UI elements are simply updated to point to the new `ArchiveMaintainer` while the old one is being  closed.
Please note that follow up commits to clean up `ArchiveMaintiner` and this implementation are coming. They have been separated to make reviews easier
* CA-376887: Move initial load logic to separate method in `ArchiveMaintainer`
* CA-376887: Rename `Update` to `StartUpdateLoop` in `ArchiveMaintainer`
* CA-376887: Fix use of `Dispose` in `PerformancePage` and collapse `Stop`/`Pause` into one method
* CA-376887: Remove unused `FirstTime` variable
* Tidy up `ArchiveMaintainer`: use `switch` when possible and improve logging
* Tidy up `ArchiveMaintainer`: Move variables inline
* Tidy up `ArchiveMaintainer`: Standardize fields/properties
* Tidy up `ArchiveMaintainer`: Normalize whitespace
* CA-376887: Ensure only one thread is spawned for each `ArchiveMaintainer`
- Ensures resources are disposed of
- Fixes issues whereby quickly starting and stopping threads for the same `XenObject` `ArchiveMantainer` would cause threads from not exiting
* Improve formatting and whitespace in `ArchiveMaintainer`
* Improve logging of exceptions in `ArchiveMaintainer:Get`
* Fix `ServerNow` calls in `ArchiveMaintainer`
* Deregister `ArchiveMaintainer` events when a new one is reassigned.
Also rename methods
* Apply code review suggestions

Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
2023-09-07 10:03:43 +01:00
Konstantina Chremmou
dd98fe6732
CP-45071: Convert XenCenter build scripts to PowerShell. (#3219)
* CP-45071: Convert XenCenter build scripts to PowerShell.
* Removed obsolete variable.
* Pass the timestamp server and the certificate thumbprint as parameters to the build and sign scripts.
* Added further logging and made the verbose output of cmdlets optional.
* Updated README.
* Improved script readability.

Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-06 15:48:12 +01:00
Danilo Del Busso
53dd3d97ca Update links between CONTRIBUTING and MAINTAINERS
Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
2023-09-04 12:29:36 +01:00
Konstantina Chremmou
98c3814ce0
Merge pull request #3212 from kc284/oil
Refactored retrieval of values from Messages.resx.
2023-09-04 10:32:46 +01:00
Konstantina Chremmou
89fd16b903 CP-45097: Show product brand alongside the version on the General and Search tabPage.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-09-04 10:32:18 +01:00
Konstantina Chremmou
30e9924b33
Merge pull request #3209 from kc284/tech-debt
CP-40739 (build with VS 2022) and some tech debt
2023-09-01 13:09:05 +01:00
Konstantina Chremmou
49334fc425
Merge pull request #3210 from danilo-delbusso/dev/readme
Update README and CONTRIB files
2023-09-01 13:08:40 +01:00
Konstantina Chremmou
c5430d0bd1 CA-381212 : The error is not always Internal Server Error;
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-08-30 17:08:06 +01:00
Konstantina Chremmou
d990e37a87 Moved two WLB actions to the same folder as the rest of the WLB actions. Removed obsolete messages.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-08-29 20:57:21 +01:00
Konstantina Chremmou
9c37834bd0 Stop retrieving values from Messages.resx by passing hardcoded strings to the Messages.ResourceManager.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
2023-08-29 20:57:21 +01:00