This is an automated email from the ASF dual-hosted git repository. weizhouapache pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 846803db0766e95e618d0675186268c4d31fefb0 Merge: 4d54125bb62 265b554d608 Author: Wei Zhou <[email protected]> AuthorDate: Fri Jul 10 14:40:24 2026 +0200 Merge remote-tracking branch 'apache/4.22' .../service/NetworkOrchestrationService.java | 3 + .../engine/orchestration/NetworkOrchestrator.java | 2 +- .../com/cloud/upgrade/DatabaseUpgradeChecker.java | 8 +- .../com/cloud/upgrade/dao/Upgrade42030to42040.java | 58 +++ ...e42010to42100.java => Upgrade42040to42100.java} | 8 +- .../resourcedetail/ResourceDetailsDao.java | 2 + .../resourcedetail/ResourceDetailsDaoBase.java | 14 + ...cleanup.sql => schema-42040to42100-cleanup.sql} | 2 +- ...ma-42010to42100.sql => schema-42040to42100.sql} | 2 +- .../cloud/upgrade/DatabaseUpgradeCheckerTest.java | 32 +- ...42100Test.java => Upgrade42040to42100Test.java} | 4 +- .../framework/jobs/impl/AsyncJobManagerImpl.java | 38 +- .../framework/jobs/AsyncJobManagerTest.java | 20 + .../kvm/storage/KVMStorageProcessor.java | 2 +- .../org/apache/cloudstack/utils/qemu/QemuImg.java | 6 +- .../adapter/flasharray/FlashArrayAdapter.java | 38 +- plugins/storage/volume/linstor/CHANGELOG.md | 8 + .../LinstorBackupSnapshotCommandWrapper.java | 46 ++- .../LinstorRevertBackupSnapshotCommandWrapper.java | 28 +- .../driver/LinstorPrimaryDataStoreDriverImpl.java | 14 +- server/src/main/java/com/cloud/api/ApiServer.java | 8 +- server/src/main/java/com/cloud/api/ApiServlet.java | 22 +- .../main/java/com/cloud/configuration/Config.java | 9 - .../configuration/ConfigurationManagerImpl.java | 2 +- .../consoleproxy/ConsoleProxyManagerImpl.java | 9 +- .../network/element/VirtualRouterElement.java | 24 +- .../com/cloud/resource/ResourceManagerImpl.java | 2 +- .../cloudstack/backup/BackupManagerImpl.java | 2 +- .../cloudstack/cluster/ClusterDrsServiceImpl.java | 34 +- .../cluster/ClusterDrsServiceImplTest.java | 46 ++- test/integration/plugins/linstor/README.md | 18 + .../linstor/test_linstor_encrypted_snapshots.py | 444 +++++++++++++++++++++ ui/public/locales/en.json | 5 + ui/src/style/vars.less | 2 +- ui/src/utils/ssvmProbe.js | 30 ++ ui/src/views/image/RegisterOrUploadIso.vue | 50 ++- ui/src/views/image/RegisterOrUploadTemplate.vue | 45 ++- ui/src/views/infra/network/IpRangesTabPublic.vue | 4 + ui/src/views/storage/UploadLocalVolume.vue | 133 +++--- 39 files changed, 1031 insertions(+), 193 deletions(-) diff --cc engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java index ce5b3f6d094,55079173dc9..15f112c0a36 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java @@@ -5065,7 -4937,7 +5065,7 @@@ public class NetworkOrchestrator extend @Override public ConfigKey<?>[] getConfigKeys() { return new ConfigKey<?>[]{NetworkGcWait, NetworkGcInterval, NetworkLockTimeout, DeniedRoutes, - GuestDomainSuffix, NetworkThrottlingRate, MinVRVersion, DhcpLeaseTimeout, - GuestDomainSuffix, NetworkThrottlingRate, VmNetworkThrottlingRate, MinVRVersion, ++ GuestDomainSuffix, NetworkThrottlingRate, VmNetworkThrottlingRate, MinVRVersion, DhcpLeaseTimeout, PromiscuousMode, MacAddressChanges, ForgedTransmits, MacLearning, RollingRestartEnabled, TUNGSTEN_ENABLED, NSX_ENABLED, NETRIS_ENABLED, NETWORK_LB_HAPROXY_MAX_CONN, NETWORK_LB_HAPROXY_IDLE_TIMEOUT}; diff --cc engine/schema/src/main/java/com/cloud/upgrade/DatabaseUpgradeChecker.java index 0e784d961b3,3868ca960e0..c3a982aa70e --- a/engine/schema/src/main/java/com/cloud/upgrade/DatabaseUpgradeChecker.java +++ b/engine/schema/src/main/java/com/cloud/upgrade/DatabaseUpgradeChecker.java @@@ -240,10 -241,11 +242,12 @@@ public class DatabaseUpgradeChecker imp .next("4.19.0.0", new Upgrade41900to41910()) .next("4.19.1.0", new Upgrade41910to42000()) .next("4.20.0.0", new Upgrade42000to42010()) - .next("4.20.1.0", new Upgrade42010to42100()) + .next("4.20.2.0", new Upgrade42020to42030()) + .next("4.20.3.0", new Upgrade42030to42040()) + .next("4.20.4.0", new Upgrade42040to42100()) .next("4.21.0.0", new Upgrade42100to42200()) .next("4.22.0.0", new Upgrade42200to42210()) + .next("4.22.1.0", new Upgrade42210to42300()) .build(); } diff --cc server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java index ed3d8558cc5,d662997e392..3c9855ae87a --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@@ -1605,7 -1435,7 +1605,7 @@@ public class BackupManagerImpl extends accountManager.checkAccess(CallContext.current().getCallingAccount(), null, true, vm); if (vm.getBackupOfferingId() != null && !BackupEnableAttachDetachVolumes.value()) { - throw new CloudRuntimeException("The selected Instance has backups, cannot restore and attach Volume to the Instance."); - throw new CloudRuntimeException("The selected VM is attached to a backup offering and, thus, it is not possible to restore and attach volumes from backups to the instance."); ++ throw new CloudRuntimeException("The selected Instance is attached to a backup offering and, thus, it is not possible to restore and attach Volumes from backups to the Instance."); } if (backup.getZoneId() != vm.getDataCenterId()) {
