This is an automated email from the ASF dual-hosted git repository. sureshanaparti pushed a change to branch fix-os-type in repository https://gitbox.apache.org/repos/asf/cloudstack.git
from 5490b44262f remove unnecessary method for os name change add 16c60c7528a Support Direct Download on Ceph (#11069) add be22bfe2c9d Management Server - Prepare for Maintenance and Cancel Maintenance improvements (#10995) add 8f2735ab462 Accept case insensitive values in boolean settings (#10663) add 5790091b25d [Vmware to KVM Migration] Improve the Force MS option text (#11035) add 75147b78116 [Vmware to KVM Migration] Display virt-v2v and ovftool versions for supported hosts for migration (#11019) add ba0204f8edd Block volume shrink on Xen (#11004) add 544028ca8e6 Do not rely on Memory engine even transiently in DB setup scripts (#11106) add 3b54194aef1 Correct quota type indexes (#11085) add c24e4eea855 server: fix orphan db transaction issue (#11095) add cbd2b5a0224 Add check for ldap truststore password (#11055) add 7cad65d310d Merge release branch 4.19 to 4.20 add 1a251c8b789 merge forward fix add 3e3a0c06781 Merge branch '4.20' add d5fd3ec36ea Add API command remove management server (#10325) add 749ddb975f1 Support ApiServer to enforce POST requests for state changing APIs and requests with timestamps (#10899) add 8e4fe1c370e Allow configuring Announcement banner by admin (#10951) add 51126a7c105 iteration optimized (#10576) add f9588960d43 Refactor: Replace sleep() with wait() (#10504) add 4d46bece4a7 fix priority for volume copy operation (#11109) add ed7bd5e5804 ui: fix handler for deploy button menu (#11116) add 80f46ad55d6 [VMware to KVM Migration] Fix for converted instance npe issue when source vmware instance ovf is exported from management server (#11003) add 1cbf1cd2cd8 fix volumes search filter (#11168) add 49c6fbdfaf3 schema: fix missing columns index (#11171) add 39c8c4dbae9 Normalize naming of Kubernetes clusters (#10778) add e47b78b2bbb directdownload: fix keytool importcert (#11113) add c782835f012 [Vmware to KVM Migration] Fix issue with vCenter Standalone hosts for VM listing (#11091) add 67a1ea35f4e .github: restrict codecov in UI build to apache/cloudstack repo (#11158) add 7715b3dc298 Improve the error throws when a template to owned by a non root-admin is registered for all zones. (#11170) add 61e74e086b5 Merge branch '4.19' into 4.20 add 0dbd761fbbd Merge branch '4.20' add 54b44cc316e KVM: Option to deploy a VM with existing volume/snapshot (#10503) add 60597241897 Hide CloudStack version from XML response when unauthenticated (#10575) add fb6adacc512 GUI whitelabel runtime system (#8942) add e8ab0ae70a7 CPU to Memory weight based algorithm to order cluster (#10997) add f52e05863e6 UI fix api in project view (#11191) add 84b807eeee1 [CKS] Simplify logic for scaling CKS cluster service offerings (#11063) add 3220eb442a5 PowerFlex/ScaleIO - MDM and host SDC connection enhancements (#11047) add bb75abcffa2 Usage parsers refactoring (#11097) add 53eb2c5b9b7 File-based disk-only VM snapshot with KVM as hypervisor (#10632) add 65d359228dc Allow populating generic templates during Zone Deployment (#10947) add 9688cbb0953 systemvm: build 4.20.2 template with 'depmod -a' (#11128) add c94f75c7ea7 PowerFlex/ScaleIO - Wait after SDC service start/restart/stop, and retry to fetch SDC id/guid (#11099) add 06c80cdbe91 Remove unfinished usage job entries of the host (#10848) add 0d65c8c4543 Merge branch '4.19' into 4.20 add b57994eeb0d Merge branch '4.20' add 15c09af5cc7 UI: Fix traffic Label on Zone creation wizard for VMware (#11101) add a849b822c21 Update .asf.yaml: remove new committer Bernardo (#11231) add 3687032ed68 Update .asf.yaml re-add rosi add 1003c8034c1 Update .asf.yaml remove sudo87 add c5da9e6188c Update .asf.yaml re-add sudo87 add 6ad92964120 Fix KVM incremental snapshot removal when using multiple secondary storages (#11180) add e7172161dd2 Guard OS type update for iso/template with existing vms (#11215) add 9d049707d5e Fix deletion of backup schedules (#11222) add a710ff8c6db UI: Fix ISO Hypervisor selection (#11261) add 666784f4e57 ovm deprecation (#11196) add d63899fc8a4 Set Content-Type from the file type (#11093) add 6d5cefdfe94 add since parameter to BackupScheduleResponse (#11265) add fb3bb3fd568 pre-commit: upgrade markdownlint to the latest version (#11066) add 165ab0aabe2 Fix HTML license; standardize HTML code (#11067) add 1fbe1d76827 pre-commit: add gitleaks to detect hardcoded secrets (#11064) add dcbc9d3e538 Merge branch 'main' into fix-os-type No new revisions were added by this update. Summary of changes: .asf.yaml | 3 +- .github/linters/.markdown-lint.yml | 3 + .github/workflows/ui.yml | 1 + .pre-commit-config.yaml | 8 +- agent/src/main/java/com/cloud/agent/Agent.java | 32 +- .../cloud/agent/properties/AgentProperties.java | 10 +- api/src/main/java/com/cloud/event/EventTypes.java | 16 + .../exception/OperationTimedoutException.java | 2 +- api/src/main/java/com/cloud/host/Host.java | 9 +- .../java/com/cloud/resource/ResourceState.java | 7 +- .../java/com/cloud/server/ManagementService.java | 3 + .../java/com/cloud/storage/VolumeApiService.java | 9 +- api/src/main/java/com/cloud/vm/UserVmService.java | 8 +- .../java/com/cloud/vm/snapshot/VMSnapshot.java | 7 +- .../org/apache/cloudstack/api/ApiConstants.java | 23 + .../org/apache/cloudstack/api/ApiErrorCode.java | 1 + .../apache/cloudstack/api/ApiServerService.java | 2 + .../cloudstack/api/BaseUpdateTemplateOrIsoCmd.java | 8 + .../apache/cloudstack/api/ResponseGenerator.java | 4 + .../RemoveManagementServerCmd.java} | 53 +- .../command/admin/systemvm/PatchSystemVMCmd.java | 4 +- .../user/backup/DeleteBackupScheduleCmd.java | 16 +- .../command/user/gui/theme/CreateGuiThemeCmd.java | 129 ++ .../command/user/gui/theme/ListGuiThemesCmd.java | 110 ++ .../gui/theme/RemoveGuiThemeCmd.java} | 32 +- .../command/user/gui/theme/UpdateGuiThemeCmd.java | 136 ++ .../snapshot/CreateSnapshotFromVMSnapshotCmd.java | 2 +- .../api/command/user/vm/DeployVMCmd.java | 29 +- .../api/response/BackupScheduleResponse.java | 13 +- .../cloudstack/api/response/GuiThemeResponse.java | 179 +++ .../apache/cloudstack/backup/BackupSchedule.java | 1 + .../apache/cloudstack/gui/theme/GuiTheme.java} | 48 +- .../cloudstack/gui/theme/GuiThemeDetails.java} | 21 +- .../Heuristic.java => gui/theme/GuiThemeJoin.java} | 19 +- .../cloudstack/gui/theme/GuiThemeService.java | 20 +- client/pom.xml | 10 - .../com/cloud/agent/api/ConvertInstanceAnswer.java | 16 - .../cloud/agent/api/ConvertInstanceCommand.java | 11 +- .../storage/CreateDiskOnlyVmSnapshotAnswer.java | 29 +- .../storage/CreateDiskOnlyVmSnapshotCommand.java | 21 +- .../storage/DeleteDiskOnlyVmSnapshotCommand.java | 24 +- .../storage/MergeDiskOnlyVmSnapshotCommand.java} | 51 +- .../storage/RevertDiskOnlyVmSnapshotAnswer.java | 18 +- .../RevertDiskOnlyVmSnapshotCommand.java} | 28 +- .../agent/api/storage/SnapshotMergeTreeTO.java | 39 +- .../cloudstack/agent/lb/SetupMSListCommand.java | 9 +- .../download/HttpsDirectTemplateDownloader.java | 15 +- .../direct/download/HttpsMultiTrustManager.java | 102 -- .../java/com/cloud/vm/VirtualMachineManager.java | 8 +- .../service/VolumeOrchestrationService.java | 2 +- .../engine/service/api/OrchestrationService.java | 16 +- .../main/java/com/cloud/agent/AgentManager.java | 2 +- .../cloud/configuration/ConfigurationManager.java | 6 + .../com/cloud/agent/manager/AgentManagerImpl.java | 22 +- .../agent/manager/ClusteredAgentManagerImpl.java | 30 +- .../cloud/agent/manager/DirectAgentAttache.java | 3 +- .../com/cloud/vm/VirtualMachineManagerImpl.java | 17 +- .../engine/orchestration/CloudOrchestrator.java | 21 +- .../engine/orchestration/VolumeOrchestrator.java | 59 +- .../java/com/cloud/capacity/dao/CapacityDao.java | 10 +- .../com/cloud/capacity/dao/CapacityDaoImpl.java | 62 +- .../src/main/java/com/cloud/host/dao/HostDao.java | 18 +- .../main/java/com/cloud/host/dao/HostDaoImpl.java | 42 +- .../java/com/cloud/storage/dao/SnapshotDao.java | 2 + .../com/cloud/storage/dao/SnapshotDaoImpl.java | 23 + .../com/cloud/upgrade/dao/Upgrade42000to42010.java | 2 - .../main/java/com/cloud/usage/dao/UsageJobDao.java | 2 + .../java/com/cloud/usage/dao/UsageJobDaoImpl.java | 37 +- .../com/cloud/vm/snapshot/dao/VMSnapshotDao.java | 4 + .../cloud/vm/snapshot/dao/VMSnapshotDaoImpl.java | 27 + .../apache/cloudstack/backup/BackupScheduleVO.java | 9 + .../backup/dao/BackupScheduleDaoImpl.java | 3 +- .../cloudstack/gui/theme/GuiThemeDetailsVO.java} | 61 +- .../theme/GuiThemeJoinVO.java} | 100 +- .../apache/cloudstack/gui/theme/GuiThemeVO.java | 189 +++ .../cloudstack/gui/theme/dao/GuiThemeDao.java | 9 +- .../cloudstack/gui/theme/dao/GuiThemeDaoImpl.java} | 12 +- .../gui/theme/dao/GuiThemeDetailsDao.java} | 16 +- .../gui/theme/dao/GuiThemeDetailsDaoImpl.java | 126 ++ .../cloudstack/gui/theme/dao/GuiThemeJoinDao.java | 18 +- .../gui/theme/dao/GuiThemeJoinDaoImpl.java | 139 ++ .../storage/datastore/db/SnapshotDataStoreDao.java | 2 + .../datastore/db/SnapshotDataStoreDaoImpl.java | 6 + .../spring-engine-schema-core-daos-context.xml | 3 + .../resources/META-INF/db/schema-42010to42100.sql | 33 + .../META-INF/db/views/cloud.gui_themes_view.sql | 38 + .../cloud/capacity/dao/CapacityDaoImplTest.java | 226 ++- .../storage/snapshot/DefaultSnapshotStrategy.java | 44 + .../storage/snapshot/SnapshotObject.java | 4 +- .../vmsnapshot/DefaultVMSnapshotStrategy.java | 35 +- .../KvmFileBasedStorageVmSnapshotStrategy.java | 689 +++++++++ .../vmsnapshot/StorageVMSnapshotStrategy.java | 23 +- ...ing-engine-storage-snapshot-storage-context.xml | 3 + .../storage/vmsnapshot/VMSnapshotStrategyTest.java | 6 + .../cloudstack/agent/lb/IndirectAgentLB.java | 8 +- .../main/java/com/cloud/utils/db/SearchBase.java | 8 + .../java/com/cloud/utils/db/SearchCriteria.java | 6 +- .../cloudstack/backup/NASBackupProvider.java | 21 + .../implicitplanner/ImplicitPlannerTest.java | 2 +- .../kvm/resource/BlockCommitListener.java | 77 + .../kvm/resource/LibvirtComputingResource.java | 271 +++- .../LibvirtConvertInstanceCommandWrapper.java | 205 +-- ...virtCreateDiskOnlyVMSnapshotCommandWrapper.java | 198 +++ ...virtDeleteDiskOnlyVMSnapshotCommandWrapper.java | 58 + ...bvirtMergeDiskOnlyVMSnapshotCommandWrapper.java | 150 ++ .../LibvirtModifyStoragePoolCommandWrapper.java | 16 +- .../wrapper/LibvirtReadyCommandWrapper.java | 8 + ...virtRevertDiskOnlyVMSnapshotCommandWrapper.java | 111 ++ ...tupDirectDownloadCertificateCommandWrapper.java | 2 +- .../resource/wrapper/LibvirtUtilitiesHelper.java | 10 + .../kvm/storage/KVMStorageProcessor.java | 79 +- .../kvm/storage/LibvirtStorageAdaptor.java | 25 + .../kvm/storage/ScaleIOStorageAdaptor.java | 186 ++- .../org/apache/cloudstack/utils/qemu/QemuImg.java | 40 + .../apache/cloudstack/utils/qemu/QemuImgFile.java | 6 + .../kvm/resource/LibvirtComputingResourceTest.java | 159 ++ .../LibvirtConvertInstanceCommandWrapperTest.java | 70 - .../kvm/storage/KVMStorageProcessorTest.java | 57 +- .../kvm/storage/ScaleIOStorageAdaptorTest.java | 32 + .../xenbase/CitrixResizeVolumeCommandWrapper.java | 7 +- ...ernetesClusterResourceModifierActionWorker.java | 42 +- .../KubernetesClusterScaleWorker.java | 85 +- .../KubernetesClusterStartWorker.java | 12 +- ...tesClusterResourceModifierActionWorkerTest.java | 138 ++ .../api/command/CancelMaintenanceCmd.java | 10 + .../api/command/PrepareForMaintenanceCmd.java | 8 + .../ManagementServerMaintenanceManager.java | 13 +- .../ManagementServerMaintenanceManagerImpl.java | 159 +- ...eForMaintenanceManagementServerHostCommand.java | 8 +- ...ManagementServerMaintenanceManagerImplTest.java | 36 +- .../cloud/network/lb/LoadBalanceRuleHandler.java | 2 +- .../lb/InternalLoadBalancerVMManagerImpl.java | 2 +- .../lb/InternalLoadBalancerVMManagerImplTest.java | 10 +- .../contrail/management/ServiceManagerImpl.java | 2 +- .../cloud/network/vm/NetScalerVMManagerImpl.java | 2 +- plugins/pom.xml | 2 - .../lifecycle/StorageVmSharedFSLifeCycle.java | 52 +- .../lifecycle/StorageVmSharedFSLifeCycleTest.java | 67 +- .../datastore/adapter/primera/PrimeraAdapter.java | 1 + .../datastore/client/ScaleIOGatewayClient.java | 3 + .../ScaleIOPrimaryDataStoreLifeCycle.java | 39 +- .../datastore/manager/ScaleIOSDCManager.java | 37 + .../datastore/manager/ScaleIOSDCManagerImpl.java | 58 +- .../datastore/provider/ScaleIOHostListener.java | 12 +- .../storage/datastore/util/ScaleIOUtil.java | 351 ++++- .../driver/StorPoolPrimaryDataStoreDriver.java | 77 +- .../apache/cloudstack/ldap/LdapContextFactory.java | 40 +- .../apache/cloudstack/ldap/LdapManagerImpl.java | 5 + pom.xml | 2 +- .../manager/allocator/impl/FirstFitAllocator.java | 45 +- .../java/com/cloud/alert/AlertManagerImpl.java | 32 +- .../main/java/com/cloud/api/ApiResponseHelper.java | 29 +- server/src/main/java/com/cloud/api/ApiServer.java | 30 +- server/src/main/java/com/cloud/api/ApiServlet.java | 132 +- .../cloud/api/query/vo/ManagementServerJoinVO.java | 4 + .../cloud/api/response/ApiResponseSerializer.java | 14 +- .../main/java/com/cloud/configuration/Config.java | 5 +- .../configuration/ConfigurationManagerImpl.java | 315 ++-- .../consoleproxy/ConsoleProxyManagerImpl.java | 2 +- .../java/com/cloud/deploy/FirstFitPlanner.java | 125 +- .../com/cloud/network/as/AutoScaleManagerImpl.java | 6 +- .../cloud/network/router/NetworkHelperImpl.java | 2 +- .../cloud/network/router/VpcNetworkHelperImpl.java | 2 +- .../com/cloud/server/ManagementServerImpl.java | 44 +- .../java/com/cloud/storage/StorageManagerImpl.java | 36 +- .../com/cloud/storage/VolumeApiServiceImpl.java | 53 +- .../storage/snapshot/SnapshotManagerImpl.java | 2 + .../com/cloud/template/TemplateAdapterBase.java | 3 +- .../com/cloud/template/TemplateManagerImpl.java | 6 + .../main/java/com/cloud/vm/UserVmManagerImpl.java | 150 +- .../cloud/vm/snapshot/VMSnapshotManagerImpl.java | 11 +- .../agent/lb/IndirectAgentLBServiceImpl.java | 107 +- .../cloudstack/backup/BackupManagerImpl.java | 45 +- .../cloudstack/gui/theme/GuiThemeServiceImpl.java | 445 ++++++ .../cloudstack/vm/UnmanagedVMsManagerImpl.java | 59 +- .../core/spring-server-core-managers-context.xml | 1 + .../allocator/impl/FirstFitAllocatorTest.java | 62 + .../ConfigurationManagerImplTest.java | 111 ++ .../cloud/network/as/AutoScaleManagerImplTest.java | 12 +- .../cloud/storage/VolumeApiServiceImplTest.java | 97 +- .../java/com/cloud/vm/FirstFitPlannerTest.java | 142 +- .../java/com/cloud/vm/UserVmManagerImplTest.java | 106 +- .../agent/lb/IndirectAgentLBServiceImplTest.java | 4 +- .../cloudstack/backup/BackupManagerTest.java | 111 +- .../gui/theme/GuiThemeServiceImplTest.java | 215 +++ .../cloudstack/vm/UnmanagedVMsManagerImplTest.java | 2 - .../SecondaryStorageManagerImpl.java | 2 +- setup/db/create-schema.sql | 4 +- systemvm/agent/ui/viewer.ftl | 10 +- .../plugins/storpool/test_storpool_tiers.py | 99 +- .../test_vm_lifecycle_with_snapshot_or_volume.py | 318 ++++ tools/apidoc/gen_toc.py | 6 +- tools/apidoc/generatecommands.xsl | 2 +- .../appliance/systemvmtemplate/scripts/finalize.sh | 1 + tools/marvin/marvin/lib/base.py | 29 +- tools/ngui/templates/index.html | 106 +- ui/package-lock.json | 14 + ui/package.json | 1 + ui/public/assets/asf-logo.svg | 116 ++ ui/public/assets/feather.svg | 89 ++ ui/public/cloud-image-templates.json | 110 ++ ui/public/config.json | 13 +- ui/public/css/apache-theme.css | 1169 ++++++++++++++ ui/public/css/dark-theme.css | 1592 ++++++++++++++++++++ ui/public/example.html | 2 +- ui/public/index.html | 10 +- ui/public/locales/en.json | 10 +- ui/src/api/index.js | 53 +- ui/src/components/header/AnnouncementBanner.vue | 145 ++ ui/src/components/header/SamlDomainSwitcher.vue | 6 +- ui/src/components/header/UserMenu.vue | 10 +- ui/src/components/page/GlobalLayout.vue | 13 +- ui/src/components/view/ActionButton.vue | 4 +- ui/src/components/view/AnnotationsTab.vue | 10 +- ui/src/components/view/DedicateData.vue | 18 +- ui/src/components/view/DedicateDomain.vue | 6 +- ui/src/components/view/DedicateModal.vue | 10 +- ui/src/components/view/DetailSettings.vue | 8 +- ui/src/components/view/EventsTab.vue | 4 +- .../components/view/ImageDeployInstanceButton.vue | 6 +- ui/src/components/view/ImageStoreSelectView.vue | 4 +- ui/src/components/view/InfoCard.vue | 16 +- .../InstanceVolumesStoragePoolSelectListView.vue | 4 +- ui/src/components/view/ListResourceTable.vue | 4 +- ui/src/components/view/ListView.vue | 12 +- ui/src/components/view/NicNetworkSelectForm.vue | 4 +- ui/src/components/view/ObjectStoreBrowser.vue | 7 +- ui/src/components/view/ResourceLimitTab.vue | 6 +- ui/src/components/view/ResourceView.vue | 4 +- ui/src/components/view/SearchView.vue | 38 +- ui/src/components/view/SettingsTab.vue | 4 +- ui/src/components/view/StatsTab.vue | 4 +- ui/src/components/view/StoragePoolSelectView.vue | 6 +- ui/src/components/view/TestWebhookDeliveryView.vue | 4 +- ui/src/components/view/TreeView.vue | 8 +- ui/src/components/view/UploadResourceIcon.vue | 6 +- ui/src/components/view/VmwareData.vue | 4 +- ui/src/components/view/VolumesTab.vue | 4 +- ui/src/components/view/WebhookDeliveriesTab.vue | 12 +- ui/src/components/widgets/Console.vue | 4 +- ui/src/components/widgets/InfiniteScrollSelect.vue | 4 +- ui/src/components/widgets/OsLogo.vue | 4 +- ui/src/config/section/compute.js | 4 +- ui/src/config/section/infra/managementServers.js | 2 +- ui/src/main.js | 73 +- ui/src/store/modules/user.js | 36 +- ui/src/utils/guiTheme.js | 103 ++ ui/src/utils/plugins.js | 4 +- ui/src/utils/quota.js | 4 +- ui/src/utils/request.js | 34 +- ui/src/views/AutogenView.vue | 29 +- ui/src/views/auth/ForgotPassword.vue | 4 +- ui/src/views/auth/Login.vue | 8 +- ui/src/views/auth/ResetPassword.vue | 4 +- ui/src/views/compute/AssignInstance.vue | 6 +- ui/src/views/compute/AttachIso.vue | 6 +- ui/src/views/compute/AutoScaleDownPolicyTab.vue | 26 +- ui/src/views/compute/AutoScaleLoadBalancing.vue | 26 +- ui/src/views/compute/AutoScaleUpPolicyTab.vue | 26 +- ui/src/views/compute/AutoScaleVmProfile.vue | 14 +- ui/src/views/compute/BackupScheduleWizard.vue | 4 +- ui/src/views/compute/ChangeAffinity.vue | 6 +- ui/src/views/compute/CreateAutoScaleVmGroup.vue | 34 +- ui/src/views/compute/CreateKubernetesCluster.vue | 28 +- ui/src/views/compute/CreateSSHKeyPair.vue | 8 +- ui/src/views/compute/CreateSnapshotWizard.vue | 6 +- ui/src/views/compute/DeployVM.vue | 30 +- ui/src/views/compute/DeployVnfAppliance.vue | 26 +- ui/src/views/compute/DestroyVM.vue | 6 +- ui/src/views/compute/EditVM.vue | 22 +- ui/src/views/compute/InstanceSchedules.vue | 8 +- ui/src/views/compute/InstanceTab.vue | 8 +- ui/src/views/compute/KubernetesAddNodes.vue | 6 +- ui/src/views/compute/KubernetesRemoveNodes.vue | 4 +- ui/src/views/compute/KubernetesServiceTab.vue | 16 +- ui/src/views/compute/MigrateVMStorage.vue | 4 +- ui/src/views/compute/MigrateWizard.vue | 8 +- ui/src/views/compute/RegisterUserData.vue | 6 +- ui/src/views/compute/ReinstallVm.vue | 10 +- ui/src/views/compute/ResetSshKeyPair.vue | 6 +- ui/src/views/compute/ResetUserData.vue | 15 +- ui/src/views/compute/ScaleKubernetesCluster.vue | 10 +- ui/src/views/compute/ScaleVM.vue | 10 +- ui/src/views/compute/StartVirtualMachine.vue | 10 +- ui/src/views/compute/UpgradeKubernetesCluster.vue | 6 +- ui/src/views/compute/backup/BackupSchedule.vue | 6 +- ui/src/views/compute/backup/FormSchedule.vue | 4 +- ui/src/views/compute/wizard/DeployButtons.vue | 47 +- ui/src/views/compute/wizard/MultiDiskSelection.vue | 4 +- .../views/compute/wizard/MultiNetworkSelection.vue | 4 +- ui/src/views/compute/wizard/NetworkSelection.vue | 10 +- .../views/compute/wizard/OsBasedImageSelection.vue | 6 +- ui/src/views/compute/wizard/OwnershipSelection.vue | 8 +- .../compute/wizard/SecurityGroupSelection.vue | 4 +- ui/src/views/dashboard/CapacityDashboard.vue | 26 +- ui/src/views/dashboard/Dashboard.vue | 4 +- ui/src/views/dashboard/SetupTwoFaAtLogin.vue | 12 +- ui/src/views/dashboard/UsageDashboard.vue | 30 +- ui/src/views/dashboard/VerifyOauth.vue | 4 +- ui/src/views/dashboard/VerifyTwoFa.vue | 4 +- ui/src/views/iam/AddAccount.vue | 12 +- ui/src/views/iam/AddLdapAccount.vue | 16 +- ui/src/views/iam/AddUser.vue | 12 +- ui/src/views/iam/ChangeUserPassword.vue | 4 +- ui/src/views/iam/ConfigureSamlSsoAuth.vue | 8 +- ui/src/views/iam/CreateRole.vue | 6 +- ui/src/views/iam/DeleteAccount.vue | 6 +- ui/src/views/iam/DomainActionForm.vue | 4 +- ui/src/views/iam/DomainView.vue | 31 +- ui/src/views/iam/EditAccount.vue | 6 +- ui/src/views/iam/EditUser.vue | 4 +- ui/src/views/iam/ImportRole.vue | 4 +- ui/src/views/iam/RolePermissionTab.vue | 12 +- ui/src/views/iam/SSLCertificateTab.vue | 6 +- ui/src/views/iam/SetupTwoFaAtUserProfile.vue | 12 +- .../views/image/AddKubernetesSupportedVersion.vue | 6 +- ui/src/views/image/IsoZones.vue | 12 +- ui/src/views/image/RegisterOrUploadIso.vue | 18 +- ui/src/views/image/RegisterOrUploadTemplate.vue | 24 +- ui/src/views/image/TemplateVnfSettings.vue | 6 +- ui/src/views/image/TemplateZones.vue | 12 +- ui/src/views/image/UpdateISO.vue | 30 +- .../image/UpdateKubernetesSupportedVersion.vue | 4 +- ui/src/views/image/UpdateTemplate.vue | 29 +- .../views/image/UpdateTemplateIsoPermissions.vue | 12 +- ui/src/views/infra/AddObjectStorage.vue | 4 +- ui/src/views/infra/AddPrimaryStorage.vue | 16 +- ui/src/views/infra/AddSecondaryStorage.vue | 8 +- ui/src/views/infra/AsyncJobsTab.vue | 4 +- ui/src/views/infra/ChangeHostPassword.vue | 4 +- ui/src/views/infra/ChangeStoragePoolScope.vue | 6 +- ui/src/views/infra/ClusterAdd.vue | 14 +- ui/src/views/infra/ClusterDRSTab.vue | 12 +- ui/src/views/infra/ClusterUpdate.vue | 8 +- ui/src/views/infra/ConfigureHostOOBM.vue | 4 +- ui/src/views/infra/Confirmation.vue | 11 +- ui/src/views/infra/ConnectedAgentsTab.vue | 4 +- ui/src/views/infra/CpuSockets.vue | 4 +- ui/src/views/infra/HostAdd.vue | 14 +- ui/src/views/infra/HostEnableDisable.vue | 6 +- ui/src/views/infra/HostInfo.vue | 20 +- ui/src/views/infra/HostUpdate.vue | 10 +- ui/src/views/infra/InfraSummary.vue | 12 +- ui/src/views/infra/ManagementServerPeerTab.vue | 4 +- ui/src/views/infra/Metrics.vue | 6 +- ui/src/views/infra/MigrateData.vue | 6 +- ui/src/views/infra/PodAdd.vue | 8 +- ui/src/views/infra/PodUpdate.vue | 8 +- ui/src/views/infra/Resources.vue | 4 +- ui/src/views/infra/StorageBrowser.vue | 8 +- ui/src/views/infra/UpdatePrimaryStorage.vue | 8 +- ui/src/views/infra/UsageRecords.vue | 22 +- ui/src/views/infra/ZoneUpdate.vue | 8 +- ui/src/views/infra/network/DedicatedVLANTab.vue | 14 +- ui/src/views/infra/network/EditTrafficLabel.vue | 6 +- ui/src/views/infra/network/IpRangesTabGuest.vue | 10 +- .../views/infra/network/IpRangesTabManagement.vue | 8 +- ui/src/views/infra/network/IpRangesTabPublic.vue | 18 +- ui/src/views/infra/network/IpRangesTabStorage.vue | 10 +- ui/src/views/infra/network/ServiceProvidersTab.vue | 12 +- ui/src/views/infra/network/TrafficTypesTab.vue | 12 +- .../infra/network/providers/AddF5LoadBalancer.vue | 6 +- .../network/providers/AddNetscalerLoadBalancer.vue | 6 +- .../infra/network/providers/AddNiciraNvpDevice.vue | 6 +- .../network/providers/AddPaloAltoFirewall.vue | 6 +- .../views/infra/network/providers/ProviderItem.vue | 4 +- .../infra/network/providers/ProviderListView.vue | 6 +- ui/src/views/infra/routers/RouterHealthCheck.vue | 6 +- ui/src/views/infra/zone/AsNumbersTab.vue | 8 +- ui/src/views/infra/zone/BgpPeersTab.vue | 16 +- ui/src/views/infra/zone/Ipv4GuestSubnetsTab.vue | 16 +- ui/src/views/infra/zone/PhysicalNetworksTab.vue | 8 +- ui/src/views/infra/zone/SystemVmsTab.vue | 4 +- ui/src/views/infra/zone/ZoneWizard.vue | 40 +- ui/src/views/infra/zone/ZoneWizardAddResources.vue | 10 +- ui/src/views/infra/zone/ZoneWizardLaunchZone.vue | 77 +- .../infra/zone/ZoneWizardNetworkSetupStep.vue | 4 +- .../zone/ZoneWizardPhysicalNetworkSetupStep.vue | 6 +- .../infra/zone/ZoneWizardRegisterTemplate.vue | 298 ++++ .../views/infra/zone/ZoneWizardZoneDetailsStep.vue | 8 +- ui/src/views/network/AclListRulesTab.vue | 22 +- ui/src/views/network/ChangeBgpPeerForNetwork.vue | 6 +- ui/src/views/network/ChangeBgpPeerForVpc.vue | 6 +- .../views/network/CreateIpv4SubnetForNetwork.vue | 8 +- ui/src/views/network/CreateIsolatedNetworkForm.vue | 14 +- ui/src/views/network/CreateL2NetworkForm.vue | 10 +- ui/src/views/network/CreateNetwork.vue | 4 +- ui/src/views/network/CreateNetworkPermission.vue | 4 +- ui/src/views/network/CreateSharedNetworkForm.vue | 22 +- ui/src/views/network/CreateVlanIpRange.vue | 8 +- ui/src/views/network/CreateVpc.vue | 12 +- ui/src/views/network/CreateVpnCustomerGateway.vue | 4 +- ui/src/views/network/EgressRulesTab.vue | 12 +- ui/src/views/network/EnableStaticNat.vue | 12 +- ui/src/views/network/FirewallRules.vue | 18 +- ui/src/views/network/GuestIpRanges.vue | 8 +- ui/src/views/network/GuestVlanNetworksTab.vue | 4 +- .../views/network/IngressEgressRuleConfigure.vue | 16 +- ui/src/views/network/InternalLBAssignVmForm.vue | 10 +- ui/src/views/network/InternalLBAssignedVmTab.vue | 6 +- ui/src/views/network/IpAddressesTab.vue | 14 +- ui/src/views/network/Ipv6FirewallRulesTab.vue | 8 +- ui/src/views/network/LoadBalancing.vue | 42 +- ui/src/views/network/NetworkPermissions.vue | 8 +- ui/src/views/network/NicsTab.vue | 22 +- ui/src/views/network/NicsTable.vue | 4 +- ui/src/views/network/PortForwarding.vue | 20 +- ui/src/views/network/PublicIpResource.vue | 8 +- ui/src/views/network/ReservePublicIP.vue | 10 +- ui/src/views/network/RoutersTab.vue | 4 +- ui/src/views/network/RoutingFirewallRulesTab.vue | 8 +- ui/src/views/network/StaticRoutesTab.vue | 14 +- ui/src/views/network/UpdateNetwork.vue | 8 +- ui/src/views/network/VnfAppliancesTab.vue | 4 +- ui/src/views/network/VpcTab.vue | 26 +- ui/src/views/network/VpcTiersTab.vue | 26 +- ui/src/views/network/VpnDetails.vue | 8 +- .../views/network/tungsten/FirewallPolicyTab.vue | 8 +- ui/src/views/network/tungsten/FirewallRuleTab.vue | 18 +- ui/src/views/network/tungsten/FirewallTagTab.vue | 10 +- ui/src/views/network/tungsten/LogicalRouterTab.vue | 8 +- ui/src/views/network/tungsten/NetworkPolicyTab.vue | 10 +- .../network/tungsten/TungstenFabricPolicyRule.vue | 8 +- .../network/tungsten/TungstenFabricPolicyTag.vue | 10 +- .../network/tungsten/TungstenFabricTableView.vue | 10 +- ui/src/views/offering/AddComputeOffering.vue | 18 +- ui/src/views/offering/AddDiskOffering.vue | 14 +- ui/src/views/offering/AddNetworkOffering.vue | 18 +- ui/src/views/offering/AddVpcOffering.vue | 14 +- ui/src/views/offering/ImportBackupOffering.vue | 8 +- ui/src/views/offering/UpdateOfferingAccess.vue | 10 +- ui/src/views/plugins/ApiDocsPlugin.vue | 4 +- ui/src/views/plugins/CloudianPlugin.vue | 4 +- ui/src/views/plugins/quota/CreateQuotaTariff.vue | 6 +- ui/src/views/plugins/quota/EditQuotaTariff.vue | 6 +- .../views/plugins/quota/EditTariffValueWizard.vue | 4 +- .../views/plugins/quota/EmailTemplateDetails.vue | 6 +- ui/src/views/plugins/quota/QuotaBalance.vue | 6 +- .../views/plugins/quota/QuotaSummaryResource.vue | 4 +- ui/src/views/plugins/quota/QuotaUsage.vue | 6 +- ui/src/views/project/AccountsTab.vue | 12 +- ui/src/views/project/AddAccountOrUserToProject.vue | 12 +- ui/src/views/project/InvitationTokenTemplate.vue | 4 +- ui/src/views/project/InvitationsTemplate.vue | 6 +- .../views/project/iam/ProjectRolePermissionTab.vue | 12 +- ui/src/views/project/iam/ProjectRoleTab.vue | 10 +- ui/src/views/setting/ConfigurationTab.vue | 6 +- ui/src/views/setting/ConfigurationValue.vue | 6 +- ui/src/views/storage/AttachVolume.vue | 6 +- ui/src/views/storage/ChangeOfferingForVolume.vue | 8 +- .../views/storage/ChangeSharedFSDiskOffering.vue | 6 +- .../storage/ChangeSharedFSServiceOffering.vue | 8 +- ui/src/views/storage/CreateBucket.vue | 6 +- ui/src/views/storage/CreateSharedFS.vue | 12 +- .../views/storage/CreateSnapshotFromVMSnapshot.vue | 6 +- ui/src/views/storage/CreateTemplate.vue | 14 +- ui/src/views/storage/CreateVolume.vue | 14 +- ui/src/views/storage/FormSchedule.vue | 6 +- ui/src/views/storage/MigrateImageStoreResource.vue | 6 +- ui/src/views/storage/MigrateVolume.vue | 10 +- ui/src/views/storage/RecurringSnapshotVolume.vue | 4 +- ui/src/views/storage/ResizeVolume.vue | 6 +- ui/src/views/storage/RestoreAttachBackupVolume.vue | 6 +- ui/src/views/storage/ScheduledSnapshots.vue | 4 +- ui/src/views/storage/SharedFSTab.vue | 6 +- ui/src/views/storage/SnapshotZones.vue | 10 +- ui/src/views/storage/TakeSnapshot.vue | 6 +- ui/src/views/storage/UpdateBucket.vue | 4 +- ui/src/views/storage/UpdateSharedFS.vue | 4 +- ui/src/views/storage/UploadLocalVolume.vue | 12 +- ui/src/views/storage/UploadVolume.vue | 12 +- ui/src/views/tools/CreateWebhook.vue | 8 +- ui/src/views/tools/ImportUnmanagedInstance.vue | 22 +- ui/src/views/tools/ManageInstances.vue | 14 +- ui/src/views/tools/ManageVolumes.vue | 20 +- ui/src/views/tools/SelectVmwareVcenter.vue | 8 +- ui/tests/common/index.js | 10 + ui/tests/unit/components/view/ActionButton.spec.js | 30 +- ui/tests/unit/views/AutogenView.spec.js | 286 ++-- ui/tests/unit/views/compute/MigrateWizard.spec.js | 38 +- .../java/com/cloud/usage/UsageManagerImpl.java | 157 +- .../com/cloud/usage/parser/BackupUsageParser.java | 32 +- .../com/cloud/usage/parser/BucketUsageParser.java | 33 +- .../cloud/usage/parser/IPAddressUsageParser.java | 45 +- .../usage/parser/LoadBalancerUsageParser.java | 46 +- .../usage/parser/NetworkOfferingUsageParser.java | 46 +- .../com/cloud/usage/parser/NetworkUsageParser.java | 41 +- .../cloud/usage/parser/NetworksUsageParser.java | 34 +- .../usage/parser/PortForwardingUsageParser.java | 44 +- .../usage/parser/SecurityGroupUsageParser.java | 44 +- .../com/cloud/usage/parser/StorageUsageParser.java | 44 +- .../java/com/cloud/usage/parser/UsageParser.java | 31 +- .../cloud/usage/parser/VMInstanceUsageParser.java | 42 +- .../usage/parser/VMSnapshotOnPrimaryParser.java | 48 +- .../cloud/usage/parser/VMSnapshotUsageParser.java | 48 +- .../com/cloud/usage/parser/VPNUserUsageParser.java | 44 +- .../com/cloud/usage/parser/VmDiskUsageParser.java | 41 +- .../com/cloud/usage/parser/VolumeUsageParser.java | 44 +- .../com/cloud/usage/parser/VpcUsageParser.java | 33 +- .../{AutoCloseableUtil.java => ThreadUtil.java} | 25 +- .../main/java/com/cloud/utils/net/NetUtils.java | 22 +- .../java/com/cloud/utils/nio/NioConnection.java | 2 +- .../main/java/com/cloud/utils/script/Script.java | 20 + .../com/cloud/hypervisor/vmware/mo/BaseMO.java | 21 +- 504 files changed, 13754 insertions(+), 3969 deletions(-) copy api/src/main/java/org/apache/cloudstack/api/command/admin/{zone/DeleteZoneCmd.java => management/RemoveManagementServerCmd.java} (60%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/gui/theme/CreateGuiThemeCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/gui/theme/ListGuiThemesCmd.java copy api/src/main/java/org/apache/cloudstack/api/command/{admin/storage/heuristics/RemoveSecondaryStorageSelectorCmd.java => user/gui/theme/RemoveGuiThemeCmd.java} (58%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/gui/theme/UpdateGuiThemeCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/GuiThemeResponse.java copy api/src/main/java/{com/cloud/domain/Domain.java => org/apache/cloudstack/gui/theme/GuiTheme.java} (63%) copy api/src/main/java/{com/cloud/event/UsageEvent.java => org/apache/cloudstack/gui/theme/GuiThemeDetails.java} (75%) copy api/src/main/java/org/apache/cloudstack/{secstorage/heuristics/Heuristic.java => gui/theme/GuiThemeJoin.java} (76%) copy plugins/storage/volume/cloudbyte/src/main/java/org/apache/cloudstack/storage/datastore/util/ElastistorVolumeApiService.java => api/src/main/java/org/apache/cloudstack/gui/theme/GuiThemeService.java (56%) copy engine/storage/integration-test/src/test/java/org/apache/cloudstack/storage/test/MockLocalHostEndPoint.java => core/src/main/java/com/cloud/agent/api/storage/CreateDiskOnlyVmSnapshotAnswer.java (56%) copy plugins/storage/volume/storpool/src/main/java/com/cloud/agent/api/storage/StorPoolCopyVolumeToSecondaryCommand.java => core/src/main/java/com/cloud/agent/api/storage/CreateDiskOnlyVmSnapshotCommand.java (60%) copy plugins/storage/volume/storpool/src/main/java/com/cloud/agent/api/storage/StorPoolBackupSnapshotCommand.java => core/src/main/java/com/cloud/agent/api/storage/DeleteDiskOnlyVmSnapshotCommand.java (68%) copy core/src/main/java/{org/apache/cloudstack/storage/command/browser/ListDataStoreObjectsCommand.java => com/cloud/agent/api/storage/MergeDiskOnlyVmSnapshotCommand.java} (52%) copy plugins/storage/volume/storpool/src/main/java/com/cloud/agent/api/storage/StorPoolCopyVolumeToSecondaryCommand.java => core/src/main/java/com/cloud/agent/api/storage/RevertDiskOnlyVmSnapshotAnswer.java (66%) copy core/src/main/java/com/cloud/agent/api/{ConvertSnapshotCommand.java => storage/RevertDiskOnlyVmSnapshotCommand.java} (60%) copy plugins/storage/volume/storpool/src/main/java/com/cloud/agent/api/storage/StorPoolDownloadVolumeCommand.java => core/src/main/java/com/cloud/agent/api/storage/SnapshotMergeTreeTO.java (52%) delete mode 100644 core/src/main/java/org/apache/cloudstack/direct/download/HttpsMultiTrustManager.java copy engine/schema/src/main/java/{com/cloud/vm/UserVmDetailVO.java => org/apache/cloudstack/gui/theme/GuiThemeDetailsVO.java} (59%) mode change 100755 => 100644 copy engine/schema/src/main/java/org/apache/cloudstack/{secstorage/HeuristicVO.java => gui/theme/GuiThemeJoinVO.java} (55%) create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/gui/theme/GuiThemeVO.java copy api/src/main/java/org/apache/cloudstack/quota/QuotaTariff.java => engine/schema/src/main/java/org/apache/cloudstack/gui/theme/dao/GuiThemeDao.java (79%) copy engine/schema/src/main/java/{com/cloud/user/dao/UserStatsLogDaoImpl.java => org/apache/cloudstack/gui/theme/dao/GuiThemeDaoImpl.java} (80%) copy engine/schema/src/main/java/{com/cloud/dc/dao/PodVlanMapDao.java => org/apache/cloudstack/gui/theme/dao/GuiThemeDetailsDao.java} (70%) create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/gui/theme/dao/GuiThemeDetailsDaoImpl.java copy plugins/event-bus/webhook/src/main/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryJoinDao.java => engine/schema/src/main/java/org/apache/cloudstack/gui/theme/dao/GuiThemeJoinDao.java (63%) create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/gui/theme/dao/GuiThemeJoinDaoImpl.java create mode 100644 engine/schema/src/main/resources/META-INF/db/views/cloud.gui_themes_view.sql create mode 100644 engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/KvmFileBasedStorageVmSnapshotStrategy.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BlockCommitListener.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCreateDiskOnlyVMSnapshotCommandWrapper.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtDeleteDiskOnlyVMSnapshotCommandWrapper.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMergeDiskOnlyVMSnapshotCommandWrapper.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRevertDiskOnlyVMSnapshotCommandWrapper.java create mode 100644 plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterResourceModifierActionWorkerTest.java create mode 100644 server/src/main/java/org/apache/cloudstack/gui/theme/GuiThemeServiceImpl.java create mode 100644 server/src/test/java/org/apache/cloudstack/gui/theme/GuiThemeServiceImplTest.java create mode 100644 test/integration/smoke/test_vm_lifecycle_with_snapshot_or_volume.py create mode 100644 ui/public/assets/asf-logo.svg create mode 100644 ui/public/assets/feather.svg create mode 100644 ui/public/cloud-image-templates.json create mode 100644 ui/public/css/apache-theme.css create mode 100644 ui/public/css/dark-theme.css create mode 100644 ui/src/components/header/AnnouncementBanner.vue create mode 100644 ui/src/utils/guiTheme.js create mode 100644 ui/src/views/infra/zone/ZoneWizardRegisterTemplate.vue copy utils/src/main/java/com/cloud/utils/{AutoCloseableUtil.java => ThreadUtil.java} (67%)