* Simplified the class name by renaming CrossPoolMigrateCanMigrateFilter to CrossPoolMigrateFilter.
* CA-383483: Rewrote (again) the migration logic because the fix to CA-294370 regressed migration from local to local storage.
Also, minor refactoring to some methods for more efficient calculations.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
* CP-40844 adds download source action that gets the latest source code in the production stage.
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 refactors download file actions
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
Adds source url to branding.sh
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP40844 refactors code and implements reviewers comments, aswell as better message handeling
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 Sorts messages
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 removes stray console logging
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 Changes to use FirstOrDefault to avoid null exceptions/errors
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 removes unessessary usings
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 code tidy up
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 Removes erroneous root tag from merge conflict resolution
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
CP-40844 sorts messages
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 fixes misnamed method and adds sourceurl parameter to brandmanager
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 Source url now uses XCUpdates url and just substitues the name of the file
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 Adds source url to xenadmin-build.ps1
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 defines log4net in each class not just inherited
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 removes unused class variable
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 removes unneeded class variable and uses parent property instead. Simplifies messages for source download and client update.
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 reduces public exposure of member variables/properties
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 merges download x file actions into single file.
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 overide ReleaseDownloadedContent in DownloadAndUpdateClientAction to handle disposal of FileStream
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 minor fixes/tidy up
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 defaults the download latest source button to be invisible.
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 if there is no client update detected then we shouldnt show a where to save dialog
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 Directs user to xenserver website to download source if automatic update checks are turned off. Renames message OUT_OF_DATE_WEBSITE to WEBSITE_DOWNLOADS
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 updates source param to sourceUrl in XCUpdates.xml
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 moves strings to Messages and applys source name string to relevant places
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 removes sourceurl from brand manager
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* CP-40844 uses string literal rather than string join
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
* Some more corrections.
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
---------
Signed-off-by: Chris Lancaster <Christopher.Lancaste1@citrix.com>
Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
Co-authored-by: Konstantina Chremmou <Konstantina.Chremmou@cloud.com>
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>
- 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>
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>
* 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>
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>
* 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>