You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2026/04/13 09:55:58 UTC
(cloudstack) branch 4.22 updated (7c7b2ae75d1 -> 2b84ddb9b1d)
This is an automated email from the ASF dual-hosted git repository.
dahn pushed a change to branch 4.22
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
from 7c7b2ae75d1 Fix KVM incremental volume snapshot creation (#12666)
add 37e36577707 [22.0] resource allocation
add 003c8408179 [22.0] resource instance limits
add 8d269cf5bef [22.0] Implement/fix limit validation for projects
add 831ef82ff9b [22.0] resource allocation vpc
add 1f849caa0be [22.0] resource reservation on volume creation
add 46a6bbad270 Fix: KVM Direct Download URL injection (#60)
add 7703fdacab4 [minio] Handle user's canned policy when a bucket is deleted
add 3d678e726ad [22.0] resource reservation on volume snapshot creation
add d11d182c715 [22.0] Fix resource limit reservation and check during StartVirtualMachine
add 95816b44e93 extensions: allow reserved resource details
add 4855d40e6e3 [22.0] secondary storage resource limit for download
add 5d5ee7b6893 volume download fix
add d7224151053 [22.0] secondary storage resource limit for upload
add 07c3dc86b2d [22.0] Consider infinite resources when calculating secondary storage limit for upload operations
add f7f0e751225 Fixed a merge issue in ImageStoreUploadMonitorImpl
add 9c0c8da706e [22.0] Address limit checks for VM, CPU, memory, volume, and primary storage
add 88a12a801f8 Cleanup imported VM from disk on failure due to volume allocation + prevent duplicate volume and primary storage increment on import
add c6b20b8cc7f Fix failing tests
add 9db630932e0 Address public IP limit validations
add 8ce1c9876ee fix restore volume from backup and attach
add 24fd440ee72 Fix create VM from backup
add 86c9f7bd941 Fix backup list
add e8d57d1b0dc Implement/fix limit validation for secondary storage
add f3331344566 Address merge issues
add 8608b4edd02 Fix snapshot copy resource limit concurrency
add 19b4ef10693 server: reserve backup, bucket resource limits during operations
new d6f4fc3ac40 Updating pom.xml version numbers for release 22.0.1
new 2b84ddb9b1d Merge branch '22.0.1' into 4.22
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../main/java/com/cloud/agent/api/to/BucketTO.java | 7 +
.../java/com/cloud/projects/ProjectService.java | 4 +-
.../storage/VMTemplateStorageResourceAssoc.java | 3 +-
.../java/com/cloud/user/ResourceLimitService.java | 20 +-
.../org/apache/cloudstack/api/ApiConstants.java | 1 +
.../user/account/AddAccountToProjectCmd.java | 3 +-
.../command/user/account/AddUserToProjectCmd.java | 3 +-
.../RestoreVolumeFromBackupAndAttachToVMCmd.java | 4 +
.../api/command/user/vm/CreateVMFromBackupCmd.java | 1 +
.../cloudstack/api/response/ExtensionResponse.java | 10 +
.../cloudstack/extension/ExtensionHelper.java | 3 +
.../apache/cloudstack/resourcelimit/Reserver.java} | 16 +-
.../command/test/AddAccountToProjectCmdTest.java | 3 +
.../cloud/agent/api/storage/DownloadAnswer.java | 2 +-
.../download/DirectTemplateDownloaderImpl.java | 11 +-
.../download/MetalinkDirectTemplateDownloader.java | 2 +-
.../download/NfsDirectTemplateDownloader.java | 2 +-
.../command/TemplateOrVolumePostUploadCommand.java | 8 +
.../storage/command/UploadStatusCommand.java | 10 +
.../service/NetworkOrchestrationService.java | 2 +-
.../service/VolumeOrchestrationService.java | 2 +-
.../com/cloud/vm/VirtualMachineManagerImpl.java | 26 +-
.../engine/orchestration/NetworkOrchestrator.java | 46 +-
.../engine/orchestration/VolumeOrchestrator.java | 24 +-
.../java/com/cloud/dc/dao/AccountVlanMapDao.java | 2 +-
.../com/cloud/dc/dao/AccountVlanMapDaoImpl.java | 4 +-
.../java/com/cloud/dc/dao/DomainVlanMapDao.java | 2 +-
.../com/cloud/dc/dao/DomainVlanMapDaoImpl.java | 4 +-
.../META-INF/db/views/cloud.user_vm_view.sql | 1 +
.../storage/image/BaseImageStoreDriverImpl.java | 26 +-
.../extensions/api/CreateExtensionCmd.java | 10 +
.../extensions/api/UpdateExtensionCmd.java | 10 +
.../extensions/manager/ExtensionsManagerImpl.java | 98 +++-
.../extensions/api/CreateExtensionCmdTest.java | 14 +
.../extensions/api/UpdateExtensionCmdTest.java | 15 +
.../manager/ExtensionsManagerImplTest.java | 167 +++++-
.../manager/BareMetalTemplateAdapter.java | 1 -
.../driver/MinIOObjectStoreDriverImpl.java | 81 ++-
.../driver/MinIOObjectStoreDriverImplTest.java | 7 +-
server/src/main/java/com/cloud/api/ApiDBUtils.java | 4 +
.../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 23 +-
.../java/com/cloud/api/query/vo/UserVmJoinVO.java | 7 +
.../configuration/ConfigurationManagerImpl.java | 128 +++--
.../java/com/cloud/network/NetworkServiceImpl.java | 26 +-
.../java/com/cloud/network/vpc/VpcManagerImpl.java | 51 +-
.../com/cloud/projects/ProjectManagerImpl.java | 52 +-
.../cloud/resourcelimit/CheckedReservation.java | 117 +++-
.../com/cloud/resourcelimit/ReservationHelper.java | 16 +-
.../resourcelimit/ResourceLimitManagerImpl.java | 212 +++----
.../cloud/storage/ImageStoreUploadMonitorImpl.java | 180 +++++-
.../com/cloud/storage/VolumeApiServiceImpl.java | 636 +++++++++++----------
.../storage/download/DownloadActiveState.java | 5 +
.../cloud/storage/download/DownloadErrorState.java | 5 +
.../storage/download/DownloadInactiveState.java | 6 +
...edState.java => DownloadLimitReachedState.java} | 21 +-
.../cloud/storage/download/DownloadListener.java | 89 ++-
.../com/cloud/storage/download/DownloadState.java | 6 +-
.../storage/snapshot/SnapshotManagerImpl.java | 214 +++----
.../cloud/template/HypervisorTemplateAdapter.java | 39 +-
.../com/cloud/template/TemplateAdapterBase.java | 4 +-
.../com/cloud/template/TemplateManagerImpl.java | 256 +++++----
.../main/java/com/cloud/vm/UserVmManagerImpl.java | 322 ++++++++---
.../cloud/vm/snapshot/VMSnapshotManagerImpl.java | 21 +-
.../cloudstack/backup/BackupManagerImpl.java | 129 +++--
.../storage/object/BucketApiServiceImpl.java | 114 ++--
.../volume/VolumeImportUnmanageManagerImpl.java | 20 +-
.../cloudstack/vm/UnmanagedVMsManagerImpl.java | 425 ++++++++------
.../cloud/api/query/dao/UserVmJoinDaoImplTest.java | 1 +
.../com/cloud/network/vpc/VpcManagerImplTest.java | 14 +-
.../resourcelimit/CheckedReservationTest.java | 17 +-
.../ResourceLimitManagerImplTest.java | 108 +---
.../cloud/storage/VolumeApiServiceImplTest.java | 52 +-
.../storage/snapshot/SnapshotManagerImplTest.java | 4 +-
.../storage/snapshot/SnapshotManagerTest.java | 55 +-
.../cloud/template/TemplateManagerImplTest.java | 132 ++---
.../java/com/cloud/vm/UserVmManagerImplTest.java | 43 +-
.../cloud/vm/snapshot/VMSnapshotManagerTest.java | 2 +-
.../java/com/cloud/vpc/MockNetworkManagerImpl.java | 2 +-
.../cloud/vpc/MockResourceLimitManagerImpl.java | 41 +-
.../cloudstack/backup/BackupManagerTest.java | 127 +++-
.../storage/object/BucketApiServiceImplTest.java | 137 ++++-
.../VolumeImportUnmanageManagerImplTest.java | 3 -
.../cloudstack/vm/UnmanagedVMsManagerImplTest.java | 57 +-
.../storage/resource/HttpUploadServerHandler.java | 2 +
.../resource/NfsSecondaryStorageResource.java | 33 +-
.../storage/template/DownloadManagerImpl.java | 2 +-
ui/public/locales/en.json | 1 +
ui/src/config/section/extension.js | 2 +-
ui/src/views/extension/CreateExtension.vue | 11 +
ui/src/views/extension/UpdateExtension.vue | 17 +-
90 files changed, 2969 insertions(+), 1677 deletions(-)
copy api/src/main/java/{com/cloud/network/rules/LoadBalancer.java => org/apache/cloudstack/resourcelimit/Reserver.java} (68%)
copy api/src/main/java/com/cloud/exception/InvalidParameterValueException.java => server/src/main/java/com/cloud/resourcelimit/ReservationHelper.java (72%)
copy server/src/main/java/com/cloud/storage/download/{DownloadAbandonedState.java => DownloadLimitReachedState.java} (67%)
(cloudstack) 01/02: Updating pom.xml version numbers for release 22.0.1
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch 4.22
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit d6f4fc3ac4026e46483d678ea30ba31bf6c98539
Author: Daan Hoogland <da...@apache.org>
AuthorDate: Mon Apr 13 11:53:00 2026 +0200
Updating pom.xml version numbers for release 22.0.1
---
agent/pom.xml | 2 +-
api/pom.xml | 2 +-
client/pom.xml | 2 +-
core/pom.xml | 2 +-
developer/pom.xml | 2 +-
engine/api/pom.xml | 2 +-
engine/components-api/pom.xml | 2 +-
engine/orchestration/pom.xml | 2 +-
engine/pom.xml | 2 +-
engine/schema/pom.xml | 2 +-
engine/service/pom.xml | 2 +-
engine/storage/cache/pom.xml | 2 +-
engine/storage/configdrive/pom.xml | 2 +-
engine/storage/datamotion/pom.xml | 2 +-
engine/storage/image/pom.xml | 2 +-
engine/storage/integration-test/pom.xml | 2 +-
engine/storage/object/pom.xml | 2 +-
engine/storage/pom.xml | 2 +-
engine/storage/snapshot/pom.xml | 2 +-
engine/storage/volume/pom.xml | 2 +-
engine/userdata/cloud-init/pom.xml | 2 +-
engine/userdata/pom.xml | 2 +-
framework/agent-lb/pom.xml | 2 +-
framework/ca/pom.xml | 2 +-
framework/cluster/pom.xml | 2 +-
framework/config/pom.xml | 2 +-
framework/db/pom.xml | 2 +-
framework/direct-download/pom.xml | 2 +-
framework/events/pom.xml | 2 +-
framework/extensions/pom.xml | 6 +++---
framework/ipc/pom.xml | 2 +-
framework/jobs/pom.xml | 2 +-
framework/managed-context/pom.xml | 2 +-
framework/pom.xml | 2 +-
framework/quota/pom.xml | 2 +-
framework/rest/pom.xml | 2 +-
framework/security/pom.xml | 2 +-
framework/spring/lifecycle/pom.xml | 2 +-
framework/spring/module/pom.xml | 2 +-
plugins/acl/dynamic-role-based/pom.xml | 2 +-
plugins/acl/project-role-based/pom.xml | 2 +-
plugins/acl/static-role-based/pom.xml | 2 +-
plugins/affinity-group-processors/explicit-dedication/pom.xml | 2 +-
plugins/affinity-group-processors/host-affinity/pom.xml | 2 +-
plugins/affinity-group-processors/host-anti-affinity/pom.xml | 2 +-
plugins/affinity-group-processors/non-strict-host-affinity/pom.xml | 2 +-
.../affinity-group-processors/non-strict-host-anti-affinity/pom.xml | 2 +-
plugins/alert-handlers/snmp-alerts/pom.xml | 2 +-
plugins/alert-handlers/syslog-alerts/pom.xml | 2 +-
plugins/api/discovery/pom.xml | 2 +-
plugins/api/rate-limit/pom.xml | 2 +-
plugins/api/solidfire-intg-test/pom.xml | 2 +-
plugins/api/vmware-sioc/pom.xml | 2 +-
plugins/backup/dummy/pom.xml | 2 +-
plugins/backup/nas/pom.xml | 2 +-
plugins/backup/networker/pom.xml | 2 +-
plugins/backup/veeam/pom.xml | 2 +-
plugins/ca/root-ca/pom.xml | 2 +-
plugins/database/mysql-ha/pom.xml | 2 +-
plugins/database/quota/pom.xml | 2 +-
plugins/dedicated-resources/pom.xml | 2 +-
plugins/deployment-planners/implicit-dedication/pom.xml | 2 +-
plugins/deployment-planners/user-concentrated-pod/pom.xml | 2 +-
plugins/deployment-planners/user-dispersing/pom.xml | 2 +-
plugins/drs/cluster/balanced/pom.xml | 2 +-
plugins/drs/cluster/condensed/pom.xml | 2 +-
plugins/event-bus/inmemory/pom.xml | 2 +-
plugins/event-bus/kafka/pom.xml | 2 +-
plugins/event-bus/rabbitmq/pom.xml | 2 +-
plugins/event-bus/webhook/pom.xml | 2 +-
plugins/ha-planners/skip-heurestics/pom.xml | 2 +-
plugins/host-allocators/random/pom.xml | 2 +-
plugins/hypervisors/baremetal/pom.xml | 2 +-
plugins/hypervisors/external/pom.xml | 2 +-
plugins/hypervisors/hyperv/pom.xml | 2 +-
plugins/hypervisors/kvm/pom.xml | 2 +-
plugins/hypervisors/ovm/pom.xml | 2 +-
plugins/hypervisors/ovm3/pom.xml | 2 +-
plugins/hypervisors/simulator/pom.xml | 2 +-
plugins/hypervisors/ucs/pom.xml | 2 +-
plugins/hypervisors/vmware/pom.xml | 2 +-
plugins/hypervisors/xenserver/pom.xml | 2 +-
plugins/integrations/cloudian/pom.xml | 2 +-
plugins/integrations/kubernetes-service/pom.xml | 2 +-
plugins/integrations/prometheus/pom.xml | 2 +-
plugins/maintenance/pom.xml | 2 +-
plugins/metrics/pom.xml | 2 +-
plugins/network-elements/bigswitch/pom.xml | 2 +-
plugins/network-elements/brocade-vcs/pom.xml | 2 +-
plugins/network-elements/cisco-vnmc/pom.xml | 2 +-
plugins/network-elements/dns-notifier/pom.xml | 2 +-
plugins/network-elements/elastic-loadbalancer/pom.xml | 2 +-
plugins/network-elements/globodns/pom.xml | 2 +-
plugins/network-elements/internal-loadbalancer/pom.xml | 2 +-
plugins/network-elements/juniper-contrail/pom.xml | 2 +-
plugins/network-elements/netris/pom.xml | 2 +-
plugins/network-elements/netscaler/pom.xml | 2 +-
plugins/network-elements/nicira-nvp/pom.xml | 2 +-
plugins/network-elements/nsx/pom.xml | 2 +-
plugins/network-elements/opendaylight/pom.xml | 2 +-
plugins/network-elements/ovs/pom.xml | 2 +-
plugins/network-elements/palo-alto/pom.xml | 2 +-
plugins/network-elements/stratosphere-ssp/pom.xml | 2 +-
plugins/network-elements/tungsten/pom.xml | 2 +-
plugins/network-elements/vxlan/pom.xml | 2 +-
plugins/outofbandmanagement-drivers/ipmitool/pom.xml | 2 +-
plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml | 2 +-
plugins/outofbandmanagement-drivers/redfish/pom.xml | 2 +-
plugins/pom.xml | 2 +-
plugins/storage-allocators/random/pom.xml | 2 +-
plugins/storage/image/default/pom.xml | 2 +-
plugins/storage/image/s3/pom.xml | 2 +-
plugins/storage/image/sample/pom.xml | 2 +-
plugins/storage/image/swift/pom.xml | 2 +-
plugins/storage/object/ceph/pom.xml | 2 +-
plugins/storage/object/cloudian/pom.xml | 2 +-
plugins/storage/object/minio/pom.xml | 2 +-
plugins/storage/object/simulator/pom.xml | 2 +-
plugins/storage/sharedfs/storagevm/pom.xml | 2 +-
plugins/storage/volume/adaptive/pom.xml | 2 +-
plugins/storage/volume/cloudbyte/pom.xml | 2 +-
plugins/storage/volume/datera/pom.xml | 2 +-
plugins/storage/volume/default/pom.xml | 2 +-
plugins/storage/volume/flasharray/pom.xml | 2 +-
plugins/storage/volume/linstor/pom.xml | 2 +-
plugins/storage/volume/nexenta/pom.xml | 2 +-
plugins/storage/volume/primera/pom.xml | 2 +-
plugins/storage/volume/sample/pom.xml | 2 +-
plugins/storage/volume/scaleio/pom.xml | 2 +-
plugins/storage/volume/solidfire/pom.xml | 2 +-
plugins/storage/volume/storpool/pom.xml | 2 +-
plugins/user-authenticators/ldap/pom.xml | 2 +-
plugins/user-authenticators/md5/pom.xml | 2 +-
plugins/user-authenticators/oauth2/pom.xml | 2 +-
plugins/user-authenticators/pbkdf2/pom.xml | 2 +-
plugins/user-authenticators/plain-text/pom.xml | 2 +-
plugins/user-authenticators/saml2/pom.xml | 2 +-
plugins/user-authenticators/sha256salted/pom.xml | 2 +-
plugins/user-two-factor-authenticators/static-pin/pom.xml | 2 +-
plugins/user-two-factor-authenticators/totp/pom.xml | 2 +-
pom.xml | 2 +-
quickcloud/pom.xml | 2 +-
server/pom.xml | 4 ++--
services/console-proxy/pom.xml | 2 +-
services/console-proxy/rdpconsole/pom.xml | 2 +-
services/console-proxy/server/pom.xml | 2 +-
services/pom.xml | 2 +-
services/secondary-storage/controller/pom.xml | 2 +-
services/secondary-storage/pom.xml | 2 +-
services/secondary-storage/server/pom.xml | 2 +-
systemvm/pom.xml | 2 +-
test/pom.xml | 2 +-
tools/apidoc/pom.xml | 2 +-
tools/checkstyle/pom.xml | 2 +-
tools/devcloud-kvm/pom.xml | 2 +-
tools/devcloud4/pom.xml | 2 +-
tools/docker/Dockerfile | 2 +-
tools/docker/Dockerfile.marvin | 2 +-
tools/marvin/pom.xml | 2 +-
tools/marvin/setup.py | 2 +-
tools/pom.xml | 2 +-
usage/pom.xml | 2 +-
utils/pom.xml | 2 +-
vmware-base/pom.xml | 2 +-
164 files changed, 167 insertions(+), 167 deletions(-)
diff --git a/agent/pom.xml b/agent/pom.xml
index cbdabf819de..3efdd5ebe4f 100644
--- a/agent/pom.xml
+++ b/agent/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
diff --git a/api/pom.xml b/api/pom.xml
index 3fe02ea90ab..8e25b2bab97 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
diff --git a/client/pom.xml b/client/pom.xml
index 855a5b48667..951e3e214da 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
diff --git a/core/pom.xml b/core/pom.xml
index 43c8a25e9cf..2df49a97de8 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
diff --git a/developer/pom.xml b/developer/pom.xml
index e8374cee016..f57ce66f30d 100644
--- a/developer/pom.xml
+++ b/developer/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
diff --git a/engine/api/pom.xml b/engine/api/pom.xml
index 59385483dc3..011272de8c0 100644
--- a/engine/api/pom.xml
+++ b/engine/api/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/components-api/pom.xml b/engine/components-api/pom.xml
index 5a408a0a73e..17979275af9 100644
--- a/engine/components-api/pom.xml
+++ b/engine/components-api/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/orchestration/pom.xml b/engine/orchestration/pom.xml
index 5c5d7d8937a..48cb7b4a82e 100755
--- a/engine/orchestration/pom.xml
+++ b/engine/orchestration/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/pom.xml b/engine/pom.xml
index 6dc58beba85..10e77fedd68 100644
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<build>
diff --git a/engine/schema/pom.xml b/engine/schema/pom.xml
index ed0db8b6b38..7fb0d60b6e4 100644
--- a/engine/schema/pom.xml
+++ b/engine/schema/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/service/pom.xml b/engine/service/pom.xml
index adad0efe145..469630830ac 100644
--- a/engine/service/pom.xml
+++ b/engine/service/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<artifactId>cloud-engine-service</artifactId>
<packaging>war</packaging>
diff --git a/engine/storage/cache/pom.xml b/engine/storage/cache/pom.xml
index 82ef9e62f10..fabaad6c3bf 100644
--- a/engine/storage/cache/pom.xml
+++ b/engine/storage/cache/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/configdrive/pom.xml b/engine/storage/configdrive/pom.xml
index 3ea89c51f3c..fe13e0a5fdf 100644
--- a/engine/storage/configdrive/pom.xml
+++ b/engine/storage/configdrive/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/datamotion/pom.xml b/engine/storage/datamotion/pom.xml
index dd00f22a810..aa6f97f9698 100644
--- a/engine/storage/datamotion/pom.xml
+++ b/engine/storage/datamotion/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/image/pom.xml b/engine/storage/image/pom.xml
index 2494acd8b1b..a1aad65f79c 100644
--- a/engine/storage/image/pom.xml
+++ b/engine/storage/image/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/integration-test/pom.xml b/engine/storage/integration-test/pom.xml
index dc51da9cb18..8a7d34f2b4a 100644
--- a/engine/storage/integration-test/pom.xml
+++ b/engine/storage/integration-test/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/object/pom.xml b/engine/storage/object/pom.xml
index eda89387b5e..24a24fd43fa 100644
--- a/engine/storage/object/pom.xml
+++ b/engine/storage/object/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/pom.xml b/engine/storage/pom.xml
index 454c115bb44..faf9c78c168 100644
--- a/engine/storage/pom.xml
+++ b/engine/storage/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/snapshot/pom.xml b/engine/storage/snapshot/pom.xml
index 8c5edee5170..99e49ba4297 100644
--- a/engine/storage/snapshot/pom.xml
+++ b/engine/storage/snapshot/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/storage/volume/pom.xml b/engine/storage/volume/pom.xml
index dd7904a66ee..26d58615023 100644
--- a/engine/storage/volume/pom.xml
+++ b/engine/storage/volume/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/userdata/cloud-init/pom.xml b/engine/userdata/cloud-init/pom.xml
index c4393297544..f65d80d47b9 100644
--- a/engine/userdata/cloud-init/pom.xml
+++ b/engine/userdata/cloud-init/pom.xml
@@ -23,7 +23,7 @@
<parent>
<artifactId>cloud-engine</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/engine/userdata/pom.xml b/engine/userdata/pom.xml
index a3de3a01a08..d3161dbf2ed 100644
--- a/engine/userdata/pom.xml
+++ b/engine/userdata/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/agent-lb/pom.xml b/framework/agent-lb/pom.xml
index 129a1a92b38..5c3e7c8f9d4 100644
--- a/framework/agent-lb/pom.xml
+++ b/framework/agent-lb/pom.xml
@@ -24,7 +24,7 @@
<parent>
<artifactId>cloudstack-framework</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
</project>
diff --git a/framework/ca/pom.xml b/framework/ca/pom.xml
index 09e883c5b4f..88634b377bc 100644
--- a/framework/ca/pom.xml
+++ b/framework/ca/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
</project>
diff --git a/framework/cluster/pom.xml b/framework/cluster/pom.xml
index fcff8fc9488..3617d8284e9 100644
--- a/framework/cluster/pom.xml
+++ b/framework/cluster/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/config/pom.xml b/framework/config/pom.xml
index ac9180fde74..3d16962fb61 100644
--- a/framework/config/pom.xml
+++ b/framework/config/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/db/pom.xml b/framework/db/pom.xml
index f72e3562086..9d0ca0d67e3 100644
--- a/framework/db/pom.xml
+++ b/framework/db/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/direct-download/pom.xml b/framework/direct-download/pom.xml
index fd51c5030a1..6ead9825cd9 100644
--- a/framework/direct-download/pom.xml
+++ b/framework/direct-download/pom.xml
@@ -32,7 +32,7 @@
<parent>
<artifactId>cloudstack-framework</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
</project>
diff --git a/framework/events/pom.xml b/framework/events/pom.xml
index f7cf9f48c7f..168bd00cbc8 100644
--- a/framework/events/pom.xml
+++ b/framework/events/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/extensions/pom.xml b/framework/extensions/pom.xml
index 00303a75277..2cb9fda1b13 100644
--- a/framework/extensions/pom.xml
+++ b/framework/extensions/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
@@ -41,13 +41,13 @@
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine-schema</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine-components-api</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
diff --git a/framework/ipc/pom.xml b/framework/ipc/pom.xml
index 1db54543916..f723acde968 100644
--- a/framework/ipc/pom.xml
+++ b/framework/ipc/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/jobs/pom.xml b/framework/jobs/pom.xml
index 50639aa6f6c..8cdbabbe989 100644
--- a/framework/jobs/pom.xml
+++ b/framework/jobs/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/managed-context/pom.xml b/framework/managed-context/pom.xml
index 42d2dae198f..3e7e90b8f4f 100644
--- a/framework/managed-context/pom.xml
+++ b/framework/managed-context/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/pom.xml b/framework/pom.xml
index 1411fd7190f..22d94753a78 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<build>
<plugins>
diff --git a/framework/quota/pom.xml b/framework/quota/pom.xml
index c6350380055..7cbe441fa5c 100644
--- a/framework/quota/pom.xml
+++ b/framework/quota/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/rest/pom.xml b/framework/rest/pom.xml
index 4fbb38518d6..353efdd784c 100644
--- a/framework/rest/pom.xml
+++ b/framework/rest/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>cloud-framework-rest</artifactId>
diff --git a/framework/security/pom.xml b/framework/security/pom.xml
index e278e460a86..8807ba8f096 100644
--- a/framework/security/pom.xml
+++ b/framework/security/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-framework</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/spring/lifecycle/pom.xml b/framework/spring/lifecycle/pom.xml
index 9402401dcea..893e6d35b0a 100644
--- a/framework/spring/lifecycle/pom.xml
+++ b/framework/spring/lifecycle/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/framework/spring/module/pom.xml b/framework/spring/module/pom.xml
index ef9ec7d8e8b..cd4c5b7e936 100644
--- a/framework/spring/module/pom.xml
+++ b/framework/spring/module/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/acl/dynamic-role-based/pom.xml b/plugins/acl/dynamic-role-based/pom.xml
index d5235d0becd..806287bb011 100644
--- a/plugins/acl/dynamic-role-based/pom.xml
+++ b/plugins/acl/dynamic-role-based/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/acl/project-role-based/pom.xml b/plugins/acl/project-role-based/pom.xml
index eaa7ada35a9..951c1663c38 100644
--- a/plugins/acl/project-role-based/pom.xml
+++ b/plugins/acl/project-role-based/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/acl/static-role-based/pom.xml b/plugins/acl/static-role-based/pom.xml
index 3d6e184c72d..aaecf819614 100644
--- a/plugins/acl/static-role-based/pom.xml
+++ b/plugins/acl/static-role-based/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/affinity-group-processors/explicit-dedication/pom.xml b/plugins/affinity-group-processors/explicit-dedication/pom.xml
index c5aec791569..3a2e70848e7 100644
--- a/plugins/affinity-group-processors/explicit-dedication/pom.xml
+++ b/plugins/affinity-group-processors/explicit-dedication/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/affinity-group-processors/host-affinity/pom.xml b/plugins/affinity-group-processors/host-affinity/pom.xml
index 700f8858d42..19b6bc78399 100644
--- a/plugins/affinity-group-processors/host-affinity/pom.xml
+++ b/plugins/affinity-group-processors/host-affinity/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/affinity-group-processors/host-anti-affinity/pom.xml b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
index ed2066f8e02..070c99b8297 100644
--- a/plugins/affinity-group-processors/host-anti-affinity/pom.xml
+++ b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/affinity-group-processors/non-strict-host-affinity/pom.xml b/plugins/affinity-group-processors/non-strict-host-affinity/pom.xml
index 073bbc02a73..8a8fc98b388 100644
--- a/plugins/affinity-group-processors/non-strict-host-affinity/pom.xml
+++ b/plugins/affinity-group-processors/non-strict-host-affinity/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/affinity-group-processors/non-strict-host-anti-affinity/pom.xml b/plugins/affinity-group-processors/non-strict-host-anti-affinity/pom.xml
index 72cc7e4c099..9fee5be2241 100644
--- a/plugins/affinity-group-processors/non-strict-host-anti-affinity/pom.xml
+++ b/plugins/affinity-group-processors/non-strict-host-anti-affinity/pom.xml
@@ -32,7 +32,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/alert-handlers/snmp-alerts/pom.xml b/plugins/alert-handlers/snmp-alerts/pom.xml
index 07079213fb5..3e55a32f80b 100644
--- a/plugins/alert-handlers/snmp-alerts/pom.xml
+++ b/plugins/alert-handlers/snmp-alerts/pom.xml
@@ -24,7 +24,7 @@
<parent>
<artifactId>cloudstack-plugins</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/alert-handlers/syslog-alerts/pom.xml b/plugins/alert-handlers/syslog-alerts/pom.xml
index c74c77099eb..a744259aac9 100644
--- a/plugins/alert-handlers/syslog-alerts/pom.xml
+++ b/plugins/alert-handlers/syslog-alerts/pom.xml
@@ -24,7 +24,7 @@
<parent>
<artifactId>cloudstack-plugins</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/api/discovery/pom.xml b/plugins/api/discovery/pom.xml
index 171757d37d5..f091292f954 100644
--- a/plugins/api/discovery/pom.xml
+++ b/plugins/api/discovery/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/api/rate-limit/pom.xml b/plugins/api/rate-limit/pom.xml
index 737a4e3077e..e3a167695fa 100644
--- a/plugins/api/rate-limit/pom.xml
+++ b/plugins/api/rate-limit/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<build>
diff --git a/plugins/api/solidfire-intg-test/pom.xml b/plugins/api/solidfire-intg-test/pom.xml
index 846c3cc7351..83e0c63de6f 100644
--- a/plugins/api/solidfire-intg-test/pom.xml
+++ b/plugins/api/solidfire-intg-test/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/api/vmware-sioc/pom.xml b/plugins/api/vmware-sioc/pom.xml
index fa8686870ea..7743c52798a 100644
--- a/plugins/api/vmware-sioc/pom.xml
+++ b/plugins/api/vmware-sioc/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/backup/dummy/pom.xml b/plugins/backup/dummy/pom.xml
index 1c92df07752..fd0ef6e1c3d 100644
--- a/plugins/backup/dummy/pom.xml
+++ b/plugins/backup/dummy/pom.xml
@@ -23,7 +23,7 @@
<parent>
<artifactId>cloudstack-plugins</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/backup/nas/pom.xml b/plugins/backup/nas/pom.xml
index 2a0b223d456..4748be5d4d0 100644
--- a/plugins/backup/nas/pom.xml
+++ b/plugins/backup/nas/pom.xml
@@ -25,7 +25,7 @@
<parent>
<artifactId>cloudstack-plugins</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/backup/networker/pom.xml b/plugins/backup/networker/pom.xml
index 520d15d71d4..1141d023f00 100644
--- a/plugins/backup/networker/pom.xml
+++ b/plugins/backup/networker/pom.xml
@@ -25,7 +25,7 @@
<parent>
<artifactId>cloudstack-plugins</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/backup/veeam/pom.xml b/plugins/backup/veeam/pom.xml
index 96cf2684853..d43f855ec77 100644
--- a/plugins/backup/veeam/pom.xml
+++ b/plugins/backup/veeam/pom.xml
@@ -23,7 +23,7 @@
<parent>
<artifactId>cloudstack-plugins</artifactId>
<groupId>org.apache.cloudstack</groupId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/plugins/ca/root-ca/pom.xml b/plugins/ca/root-ca/pom.xml
index 026de60faec..2c4be0a9969 100644
--- a/plugins/ca/root-ca/pom.xml
+++ b/plugins/ca/root-ca/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/database/mysql-ha/pom.xml b/plugins/database/mysql-ha/pom.xml
index 372c9c21251..1cec3f801fd 100644
--- a/plugins/database/mysql-ha/pom.xml
+++ b/plugins/database/mysql-ha/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/database/quota/pom.xml b/plugins/database/quota/pom.xml
index 97d81fbf7e7..ba00a456350 100644
--- a/plugins/database/quota/pom.xml
+++ b/plugins/database/quota/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/dedicated-resources/pom.xml b/plugins/dedicated-resources/pom.xml
index b8316aa4cbf..315b9e45ae6 100644
--- a/plugins/dedicated-resources/pom.xml
+++ b/plugins/dedicated-resources/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/deployment-planners/implicit-dedication/pom.xml b/plugins/deployment-planners/implicit-dedication/pom.xml
index 872cb45c65e..9aa3b1297bd 100644
--- a/plugins/deployment-planners/implicit-dedication/pom.xml
+++ b/plugins/deployment-planners/implicit-dedication/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/deployment-planners/user-concentrated-pod/pom.xml b/plugins/deployment-planners/user-concentrated-pod/pom.xml
index 61555586917..41115efc093 100644
--- a/plugins/deployment-planners/user-concentrated-pod/pom.xml
+++ b/plugins/deployment-planners/user-concentrated-pod/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/deployment-planners/user-dispersing/pom.xml b/plugins/deployment-planners/user-dispersing/pom.xml
index 29b1d57145d..b108c5b86ac 100644
--- a/plugins/deployment-planners/user-dispersing/pom.xml
+++ b/plugins/deployment-planners/user-dispersing/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/drs/cluster/balanced/pom.xml b/plugins/drs/cluster/balanced/pom.xml
index 9b0cf4bd231..6246ec7f749 100644
--- a/plugins/drs/cluster/balanced/pom.xml
+++ b/plugins/drs/cluster/balanced/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/drs/cluster/condensed/pom.xml b/plugins/drs/cluster/condensed/pom.xml
index 73526eb6310..c0f62df878a 100644
--- a/plugins/drs/cluster/condensed/pom.xml
+++ b/plugins/drs/cluster/condensed/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/event-bus/inmemory/pom.xml b/plugins/event-bus/inmemory/pom.xml
index c7cdbe0ada9..0650874096b 100644
--- a/plugins/event-bus/inmemory/pom.xml
+++ b/plugins/event-bus/inmemory/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/event-bus/kafka/pom.xml b/plugins/event-bus/kafka/pom.xml
index ccb14d8b23a..d9be0ff5bc6 100644
--- a/plugins/event-bus/kafka/pom.xml
+++ b/plugins/event-bus/kafka/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/event-bus/rabbitmq/pom.xml b/plugins/event-bus/rabbitmq/pom.xml
index a62b455a7b9..ac033177411 100644
--- a/plugins/event-bus/rabbitmq/pom.xml
+++ b/plugins/event-bus/rabbitmq/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/event-bus/webhook/pom.xml b/plugins/event-bus/webhook/pom.xml
index 2d63da02735..6fa9ec94aaa 100644
--- a/plugins/event-bus/webhook/pom.xml
+++ b/plugins/event-bus/webhook/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/ha-planners/skip-heurestics/pom.xml b/plugins/ha-planners/skip-heurestics/pom.xml
index cd5fb2c3ea8..c5c19881600 100644
--- a/plugins/ha-planners/skip-heurestics/pom.xml
+++ b/plugins/ha-planners/skip-heurestics/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/host-allocators/random/pom.xml b/plugins/host-allocators/random/pom.xml
index 5ca05cd61eb..aa1641cd6f9 100644
--- a/plugins/host-allocators/random/pom.xml
+++ b/plugins/host-allocators/random/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/hypervisors/baremetal/pom.xml b/plugins/hypervisors/baremetal/pom.xml
index 747d969a2b9..a3a2e551be1 100755
--- a/plugins/hypervisors/baremetal/pom.xml
+++ b/plugins/hypervisors/baremetal/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>cloud-plugin-hypervisor-baremetal</artifactId>
diff --git a/plugins/hypervisors/external/pom.xml b/plugins/hypervisors/external/pom.xml
index d7b0d87c0b7..4944b672456 100644
--- a/plugins/hypervisors/external/pom.xml
+++ b/plugins/hypervisors/external/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>cloud-plugin-hypervisor-external</artifactId>
diff --git a/plugins/hypervisors/hyperv/pom.xml b/plugins/hypervisors/hyperv/pom.xml
index ae93e251258..df3648780ef 100644
--- a/plugins/hypervisors/hyperv/pom.xml
+++ b/plugins/hypervisors/hyperv/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<properties>
diff --git a/plugins/hypervisors/kvm/pom.xml b/plugins/hypervisors/kvm/pom.xml
index 0bff52fc641..a368802198c 100644
--- a/plugins/hypervisors/kvm/pom.xml
+++ b/plugins/hypervisors/kvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/hypervisors/ovm/pom.xml b/plugins/hypervisors/ovm/pom.xml
index 46dd6ef498d..9729772b2c2 100644
--- a/plugins/hypervisors/ovm/pom.xml
+++ b/plugins/hypervisors/ovm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0-SNAPSHOT</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index ea591c89126..36c742831bc 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0-SNAPSHOT</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/hypervisors/simulator/pom.xml b/plugins/hypervisors/simulator/pom.xml
index 9230eb5cc18..11bdb623b7c 100644
--- a/plugins/hypervisors/simulator/pom.xml
+++ b/plugins/hypervisors/simulator/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>cloud-plugin-hypervisor-simulator</artifactId>
diff --git a/plugins/hypervisors/ucs/pom.xml b/plugins/hypervisors/ucs/pom.xml
index 923536b96c6..7fb17440840 100644
--- a/plugins/hypervisors/ucs/pom.xml
+++ b/plugins/hypervisors/ucs/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>cloud-plugin-hypervisor-ucs</artifactId>
diff --git a/plugins/hypervisors/vmware/pom.xml b/plugins/hypervisors/vmware/pom.xml
index ff6eaca7b85..3ff095ad685 100644
--- a/plugins/hypervisors/vmware/pom.xml
+++ b/plugins/hypervisors/vmware/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/hypervisors/xenserver/pom.xml b/plugins/hypervisors/xenserver/pom.xml
index 95e62bcccff..83b4bf5a25e 100644
--- a/plugins/hypervisors/xenserver/pom.xml
+++ b/plugins/hypervisors/xenserver/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/integrations/cloudian/pom.xml b/plugins/integrations/cloudian/pom.xml
index e5bd7fee038..670dd013ef5 100644
--- a/plugins/integrations/cloudian/pom.xml
+++ b/plugins/integrations/cloudian/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/integrations/kubernetes-service/pom.xml b/plugins/integrations/kubernetes-service/pom.xml
index c9e31508e3c..33e6404358d 100644
--- a/plugins/integrations/kubernetes-service/pom.xml
+++ b/plugins/integrations/kubernetes-service/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/integrations/prometheus/pom.xml b/plugins/integrations/prometheus/pom.xml
index 0e176125a95..56e6af30d09 100644
--- a/plugins/integrations/prometheus/pom.xml
+++ b/plugins/integrations/prometheus/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/maintenance/pom.xml b/plugins/maintenance/pom.xml
index 6a54feb58a6..224d7b4a5a3 100644
--- a/plugins/maintenance/pom.xml
+++ b/plugins/maintenance/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/metrics/pom.xml b/plugins/metrics/pom.xml
index c86b66db7ea..45d7f21886b 100644
--- a/plugins/metrics/pom.xml
+++ b/plugins/metrics/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/bigswitch/pom.xml b/plugins/network-elements/bigswitch/pom.xml
index 892ddd458db..f593ed22114 100644
--- a/plugins/network-elements/bigswitch/pom.xml
+++ b/plugins/network-elements/bigswitch/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/network-elements/brocade-vcs/pom.xml b/plugins/network-elements/brocade-vcs/pom.xml
index e3d3941f964..f0daad66288 100644
--- a/plugins/network-elements/brocade-vcs/pom.xml
+++ b/plugins/network-elements/brocade-vcs/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<build>
diff --git a/plugins/network-elements/cisco-vnmc/pom.xml b/plugins/network-elements/cisco-vnmc/pom.xml
index f31164419b5..91888863505 100644
--- a/plugins/network-elements/cisco-vnmc/pom.xml
+++ b/plugins/network-elements/cisco-vnmc/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/dns-notifier/pom.xml b/plugins/network-elements/dns-notifier/pom.xml
index ee3966f289d..d1b65f327f4 100644
--- a/plugins/network-elements/dns-notifier/pom.xml
+++ b/plugins/network-elements/dns-notifier/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>cloud-plugin-example-dns-notifier</artifactId>
diff --git a/plugins/network-elements/elastic-loadbalancer/pom.xml b/plugins/network-elements/elastic-loadbalancer/pom.xml
index 7897f159f1f..72d465b9da1 100644
--- a/plugins/network-elements/elastic-loadbalancer/pom.xml
+++ b/plugins/network-elements/elastic-loadbalancer/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/network-elements/globodns/pom.xml b/plugins/network-elements/globodns/pom.xml
index 93d86f1c87e..0f0938d69d9 100644
--- a/plugins/network-elements/globodns/pom.xml
+++ b/plugins/network-elements/globodns/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/internal-loadbalancer/pom.xml b/plugins/network-elements/internal-loadbalancer/pom.xml
index afb94ccd20d..dce418311c7 100644
--- a/plugins/network-elements/internal-loadbalancer/pom.xml
+++ b/plugins/network-elements/internal-loadbalancer/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/network-elements/juniper-contrail/pom.xml b/plugins/network-elements/juniper-contrail/pom.xml
index e20cce83a21..bf8023ed2c6 100644
--- a/plugins/network-elements/juniper-contrail/pom.xml
+++ b/plugins/network-elements/juniper-contrail/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/netris/pom.xml b/plugins/network-elements/netris/pom.xml
index 0f5f75d5aaf..2c4d545777e 100644
--- a/plugins/network-elements/netris/pom.xml
+++ b/plugins/network-elements/netris/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/netscaler/pom.xml b/plugins/network-elements/netscaler/pom.xml
index 22523cb5511..f21692ca14f 100644
--- a/plugins/network-elements/netscaler/pom.xml
+++ b/plugins/network-elements/netscaler/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/nicira-nvp/pom.xml b/plugins/network-elements/nicira-nvp/pom.xml
index 77ac0daba73..cdd74cd4353 100644
--- a/plugins/network-elements/nicira-nvp/pom.xml
+++ b/plugins/network-elements/nicira-nvp/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/nsx/pom.xml b/plugins/network-elements/nsx/pom.xml
index c57fd6d6212..7c8e183222e 100644
--- a/plugins/network-elements/nsx/pom.xml
+++ b/plugins/network-elements/nsx/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/network-elements/opendaylight/pom.xml b/plugins/network-elements/opendaylight/pom.xml
index 1c2986efa32..500b390c008 100644
--- a/plugins/network-elements/opendaylight/pom.xml
+++ b/plugins/network-elements/opendaylight/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<profiles>
diff --git a/plugins/network-elements/ovs/pom.xml b/plugins/network-elements/ovs/pom.xml
index 26269637d96..15cb7fd1ef6 100644
--- a/plugins/network-elements/ovs/pom.xml
+++ b/plugins/network-elements/ovs/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/network-elements/palo-alto/pom.xml b/plugins/network-elements/palo-alto/pom.xml
index 394c17b01ad..d87d16223be 100644
--- a/plugins/network-elements/palo-alto/pom.xml
+++ b/plugins/network-elements/palo-alto/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/network-elements/stratosphere-ssp/pom.xml b/plugins/network-elements/stratosphere-ssp/pom.xml
index 7afe501d455..1867ee98bef 100644
--- a/plugins/network-elements/stratosphere-ssp/pom.xml
+++ b/plugins/network-elements/stratosphere-ssp/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/network-elements/tungsten/pom.xml b/plugins/network-elements/tungsten/pom.xml
index 4a506cba5db..c69c4e89a9a 100644
--- a/plugins/network-elements/tungsten/pom.xml
+++ b/plugins/network-elements/tungsten/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/plugins/network-elements/vxlan/pom.xml b/plugins/network-elements/vxlan/pom.xml
index 19bc8ae9674..e9cdf1475b4 100644
--- a/plugins/network-elements/vxlan/pom.xml
+++ b/plugins/network-elements/vxlan/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
index 7858188ff65..e4fb2204280 100644
--- a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
+++ b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml b/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml
index 214a8fc974b..380bf770653 100644
--- a/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml
+++ b/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/outofbandmanagement-drivers/redfish/pom.xml b/plugins/outofbandmanagement-drivers/redfish/pom.xml
index 187048b2cc0..1d743af9b88 100644
--- a/plugins/outofbandmanagement-drivers/redfish/pom.xml
+++ b/plugins/outofbandmanagement-drivers/redfish/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/pom.xml b/plugins/pom.xml
index e64db912408..4731ee9f3aa 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<build>
<plugins>
diff --git a/plugins/storage-allocators/random/pom.xml b/plugins/storage-allocators/random/pom.xml
index 4abbf5264cd..3d650a70d9f 100644
--- a/plugins/storage-allocators/random/pom.xml
+++ b/plugins/storage-allocators/random/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/image/default/pom.xml b/plugins/storage/image/default/pom.xml
index 2a4c3b55ef1..269907fff05 100644
--- a/plugins/storage/image/default/pom.xml
+++ b/plugins/storage/image/default/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/image/s3/pom.xml b/plugins/storage/image/s3/pom.xml
index afefb398ab4..d020447f9f0 100644
--- a/plugins/storage/image/s3/pom.xml
+++ b/plugins/storage/image/s3/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/image/sample/pom.xml b/plugins/storage/image/sample/pom.xml
index fddf5da341f..fbb40241dd1 100644
--- a/plugins/storage/image/sample/pom.xml
+++ b/plugins/storage/image/sample/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/image/swift/pom.xml b/plugins/storage/image/swift/pom.xml
index 3e7c441f850..1dafba3b967 100644
--- a/plugins/storage/image/swift/pom.xml
+++ b/plugins/storage/image/swift/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/object/ceph/pom.xml b/plugins/storage/object/ceph/pom.xml
index be30c80c792..36dafd16e75 100644
--- a/plugins/storage/object/ceph/pom.xml
+++ b/plugins/storage/object/ceph/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/object/cloudian/pom.xml b/plugins/storage/object/cloudian/pom.xml
index a1be79bf494..ff7c9be0dbf 100644
--- a/plugins/storage/object/cloudian/pom.xml
+++ b/plugins/storage/object/cloudian/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/object/minio/pom.xml b/plugins/storage/object/minio/pom.xml
index 35edb2b6678..de81b35fbaa 100644
--- a/plugins/storage/object/minio/pom.xml
+++ b/plugins/storage/object/minio/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/object/simulator/pom.xml b/plugins/storage/object/simulator/pom.xml
index bccc5f6c439..4680d7ed0bb 100644
--- a/plugins/storage/object/simulator/pom.xml
+++ b/plugins/storage/object/simulator/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/sharedfs/storagevm/pom.xml b/plugins/storage/sharedfs/storagevm/pom.xml
index 70f74936e44..8092fe08b2d 100644
--- a/plugins/storage/sharedfs/storagevm/pom.xml
+++ b/plugins/storage/sharedfs/storagevm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/storage/volume/adaptive/pom.xml b/plugins/storage/volume/adaptive/pom.xml
index f90286635b6..9fec5a4e861 100644
--- a/plugins/storage/volume/adaptive/pom.xml
+++ b/plugins/storage/volume/adaptive/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/cloudbyte/pom.xml b/plugins/storage/volume/cloudbyte/pom.xml
index cf2d0de15b7..6c9e8273cf1 100644
--- a/plugins/storage/volume/cloudbyte/pom.xml
+++ b/plugins/storage/volume/cloudbyte/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/datera/pom.xml b/plugins/storage/volume/datera/pom.xml
index 856aa8d3bc8..4b1e3e5faff 100644
--- a/plugins/storage/volume/datera/pom.xml
+++ b/plugins/storage/volume/datera/pom.xml
@@ -16,7 +16,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/default/pom.xml b/plugins/storage/volume/default/pom.xml
index 7cb86f4339d..5a45eee4eaa 100644
--- a/plugins/storage/volume/default/pom.xml
+++ b/plugins/storage/volume/default/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/flasharray/pom.xml b/plugins/storage/volume/flasharray/pom.xml
index 5cbc756c2ce..eca0e59d45b 100644
--- a/plugins/storage/volume/flasharray/pom.xml
+++ b/plugins/storage/volume/flasharray/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/linstor/pom.xml b/plugins/storage/volume/linstor/pom.xml
index c29497ddcce..645afe6ff29 100644
--- a/plugins/storage/volume/linstor/pom.xml
+++ b/plugins/storage/volume/linstor/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/nexenta/pom.xml b/plugins/storage/volume/nexenta/pom.xml
index ce8c173e461..c0dbebc20b4 100644
--- a/plugins/storage/volume/nexenta/pom.xml
+++ b/plugins/storage/volume/nexenta/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/primera/pom.xml b/plugins/storage/volume/primera/pom.xml
index 444d37cb92d..16bdc1506be 100644
--- a/plugins/storage/volume/primera/pom.xml
+++ b/plugins/storage/volume/primera/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/sample/pom.xml b/plugins/storage/volume/sample/pom.xml
index 66d833c72d8..53cb795b4a0 100644
--- a/plugins/storage/volume/sample/pom.xml
+++ b/plugins/storage/volume/sample/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/scaleio/pom.xml b/plugins/storage/volume/scaleio/pom.xml
index 0983b826239..3b3fd73ce5e 100644
--- a/plugins/storage/volume/scaleio/pom.xml
+++ b/plugins/storage/volume/scaleio/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/solidfire/pom.xml b/plugins/storage/volume/solidfire/pom.xml
index 5558ef11a63..7e7d47ccbf6 100644
--- a/plugins/storage/volume/solidfire/pom.xml
+++ b/plugins/storage/volume/solidfire/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/storage/volume/storpool/pom.xml b/plugins/storage/volume/storpool/pom.xml
index daec92e1adc..5aafee7fe77 100644
--- a/plugins/storage/volume/storpool/pom.xml
+++ b/plugins/storage/volume/storpool/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/user-authenticators/ldap/pom.xml b/plugins/user-authenticators/ldap/pom.xml
index 939f912359c..a131e203837 100644
--- a/plugins/user-authenticators/ldap/pom.xml
+++ b/plugins/user-authenticators/ldap/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/plugins/user-authenticators/md5/pom.xml b/plugins/user-authenticators/md5/pom.xml
index e9dc803284e..a4ee6a606d4 100644
--- a/plugins/user-authenticators/md5/pom.xml
+++ b/plugins/user-authenticators/md5/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/user-authenticators/oauth2/pom.xml b/plugins/user-authenticators/oauth2/pom.xml
index 29d0ac21c7d..e5a3892bab0 100644
--- a/plugins/user-authenticators/oauth2/pom.xml
+++ b/plugins/user-authenticators/oauth2/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/user-authenticators/pbkdf2/pom.xml b/plugins/user-authenticators/pbkdf2/pom.xml
index 651c3d05d35..4237e722228 100644
--- a/plugins/user-authenticators/pbkdf2/pom.xml
+++ b/plugins/user-authenticators/pbkdf2/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/user-authenticators/plain-text/pom.xml b/plugins/user-authenticators/plain-text/pom.xml
index 8b3c6b5e461..1aedd2ce0de 100644
--- a/plugins/user-authenticators/plain-text/pom.xml
+++ b/plugins/user-authenticators/plain-text/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/user-authenticators/saml2/pom.xml b/plugins/user-authenticators/saml2/pom.xml
index 2b92bbd61e1..47f4616c0ae 100644
--- a/plugins/user-authenticators/saml2/pom.xml
+++ b/plugins/user-authenticators/saml2/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/plugins/user-authenticators/sha256salted/pom.xml b/plugins/user-authenticators/sha256salted/pom.xml
index 4d392f772f6..cbb68d54d26 100644
--- a/plugins/user-authenticators/sha256salted/pom.xml
+++ b/plugins/user-authenticators/sha256salted/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/user-two-factor-authenticators/static-pin/pom.xml b/plugins/user-two-factor-authenticators/static-pin/pom.xml
index cb61522cef2..8bdf8a4fa32 100644
--- a/plugins/user-two-factor-authenticators/static-pin/pom.xml
+++ b/plugins/user-two-factor-authenticators/static-pin/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/plugins/user-two-factor-authenticators/totp/pom.xml b/plugins/user-two-factor-authenticators/totp/pom.xml
index 8d7b233a2fc..702ca3a0275 100644
--- a/plugins/user-two-factor-authenticators/totp/pom.xml
+++ b/plugins/user-two-factor-authenticators/totp/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
</project>
diff --git a/pom.xml b/pom.xml
index 287f93f8c6f..2082c0bc221 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<packaging>pom</packaging>
<name>Apache CloudStack</name>
<description>Apache CloudStack is an IaaS ("Infrastructure as a Service") cloud orchestration platform.</description>
diff --git a/quickcloud/pom.xml b/quickcloud/pom.xml
index bdbf82f5891..3c5e77f7159 100644
--- a/quickcloud/pom.xml
+++ b/quickcloud/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
</project>
diff --git a/server/pom.xml b/server/pom.xml
index 69adb3b20bc..f9267d015db 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
@@ -194,7 +194,7 @@
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-framework-extensions</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
diff --git a/services/console-proxy/pom.xml b/services/console-proxy/pom.xml
index 1837803e40f..ac1eaed6f53 100644
--- a/services/console-proxy/pom.xml
+++ b/services/console-proxy/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-services</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<build>
diff --git a/services/console-proxy/rdpconsole/pom.xml b/services/console-proxy/rdpconsole/pom.xml
index 29e07f1b39a..28e15c79a2f 100644
--- a/services/console-proxy/rdpconsole/pom.xml
+++ b/services/console-proxy/rdpconsole/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-service-console-proxy</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/services/console-proxy/server/pom.xml b/services/console-proxy/server/pom.xml
index b35b677f88f..ae5816898ea 100644
--- a/services/console-proxy/server/pom.xml
+++ b/services/console-proxy/server/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-service-console-proxy</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/services/pom.xml b/services/pom.xml
index 36f70c366f4..bf0fb1910be 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<build>
diff --git a/services/secondary-storage/controller/pom.xml b/services/secondary-storage/controller/pom.xml
index a4154077961..67503ba1c0d 100644
--- a/services/secondary-storage/controller/pom.xml
+++ b/services/secondary-storage/controller/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-service-secondary-storage</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/services/secondary-storage/pom.xml b/services/secondary-storage/pom.xml
index dfc87776118..1a9d924e634 100644
--- a/services/secondary-storage/pom.xml
+++ b/services/secondary-storage/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-services</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<build>
diff --git a/services/secondary-storage/server/pom.xml b/services/secondary-storage/server/pom.xml
index 4e6f581ccee..4c23d3cbf69 100644
--- a/services/secondary-storage/server/pom.xml
+++ b/services/secondary-storage/server/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-service-secondary-storage</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/systemvm/pom.xml b/systemvm/pom.xml
index 54293ed340c..15567796181 100644
--- a/systemvm/pom.xml
+++ b/systemvm/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<properties>
diff --git a/test/pom.xml b/test/pom.xml
index 020544dd689..2db4b57881e 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
diff --git a/tools/apidoc/pom.xml b/tools/apidoc/pom.xml
index 2a158a97582..78e28123dfd 100644
--- a/tools/apidoc/pom.xml
+++ b/tools/apidoc/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-tools</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<properties>
diff --git a/tools/checkstyle/pom.xml b/tools/checkstyle/pom.xml
index b73c99fa223..ab7afbb657f 100644
--- a/tools/checkstyle/pom.xml
+++ b/tools/checkstyle/pom.xml
@@ -22,7 +22,7 @@
<name>Apache CloudStack Developer Tools - Checkstyle Configuration</name>
<groupId>org.apache.cloudstack</groupId>
<artifactId>checkstyle</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/tools/devcloud-kvm/pom.xml b/tools/devcloud-kvm/pom.xml
index f7eed8f126b..911ea71a984 100644
--- a/tools/devcloud-kvm/pom.xml
+++ b/tools/devcloud-kvm/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-tools</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/tools/devcloud4/pom.xml b/tools/devcloud4/pom.xml
index 81ab4d3c648..fdeb044f7c7 100644
--- a/tools/devcloud4/pom.xml
+++ b/tools/devcloud4/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-tools</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
index 6c68bf3e613..5973cdbbe99 100644
--- a/tools/docker/Dockerfile
+++ b/tools/docker/Dockerfile
@@ -19,7 +19,7 @@
FROM ubuntu:22.04
-LABEL Vendor="Apache.org" License="ApacheV2" Version="4.22.0.0" Author="Apache CloudStack <de...@cloudstack.apache.org>"
+LABEL Vendor="Apache.org" License="ApacheV2" Version="4.22.0.1" Author="Apache CloudStack <de...@cloudstack.apache.org>"
ARG DEBIAN_FRONTEND=noninteractive
diff --git a/tools/docker/Dockerfile.marvin b/tools/docker/Dockerfile.marvin
index bc6ea6a68bc..ac79b7865f9 100644
--- a/tools/docker/Dockerfile.marvin
+++ b/tools/docker/Dockerfile.marvin
@@ -19,7 +19,7 @@
# build for cloudstack_home_dir not this folder
FROM python:2
-LABEL Vendor="Apache.org" License="ApacheV2" Version="4.22.0.0" Author="Apache CloudStack <de...@cloudstack.apache.org>"
+LABEL Vendor="Apache.org" License="ApacheV2" Version="4.22.0.1" Author="Apache CloudStack <de...@cloudstack.apache.org>"
ENV WORK_DIR=/marvin
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index 50cffc79866..fea9536e181 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-tools</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py
index f7691589a7f..439033f0943 100644
--- a/tools/marvin/setup.py
+++ b/tools/marvin/setup.py
@@ -27,7 +27,7 @@ except ImportError:
raise RuntimeError("python setuptools is required to build Marvin")
-VERSION = "4.22.0.0"
+VERSION = "4.22.0.1"
setup(name="Marvin",
version=VERSION,
diff --git a/tools/pom.xml b/tools/pom.xml
index cf997d4d947..a347db1245c 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<build>
diff --git a/usage/pom.xml b/usage/pom.xml
index 014816d3b1c..3f60f5a0fd1 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
diff --git a/utils/pom.xml b/utils/pom.xml
index 02b06bb477b..4b59b4de51f 100755
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
diff --git a/vmware-base/pom.xml b/vmware-base/pom.xml
index 85d42a49b74..13c0af1599c 100644
--- a/vmware-base/pom.xml
+++ b/vmware-base/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
- <version>4.22.0.0</version>
+ <version>4.22.0.1</version>
</parent>
<dependencies>
<dependency>
(cloudstack) 02/02: Merge branch '22.0.1' into 4.22
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch 4.22
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 2b84ddb9b1d0d735b3eb882d82e238041dc681c6
Merge: 7c7b2ae75d1 d6f4fc3ac40
Author: Daan Hoogland <da...@apache.org>
AuthorDate: Mon Apr 13 11:55:17 2026 +0200
Merge branch '22.0.1' into 4.22
.../main/java/com/cloud/agent/api/to/BucketTO.java | 7 +
.../java/com/cloud/projects/ProjectService.java | 4 +-
.../storage/VMTemplateStorageResourceAssoc.java | 3 +-
.../java/com/cloud/user/ResourceLimitService.java | 20 +-
.../org/apache/cloudstack/api/ApiConstants.java | 1 +
.../user/account/AddAccountToProjectCmd.java | 3 +-
.../command/user/account/AddUserToProjectCmd.java | 3 +-
.../RestoreVolumeFromBackupAndAttachToVMCmd.java | 4 +
.../api/command/user/vm/CreateVMFromBackupCmd.java | 1 +
.../cloudstack/api/response/ExtensionResponse.java | 10 +
.../cloudstack/extension/ExtensionHelper.java | 3 +
.../Reserver.java} | 16 +-
.../command/test/AddAccountToProjectCmdTest.java | 3 +
.../cloud/agent/api/storage/DownloadAnswer.java | 2 +-
.../download/DirectTemplateDownloaderImpl.java | 11 +-
.../download/MetalinkDirectTemplateDownloader.java | 2 +-
.../download/NfsDirectTemplateDownloader.java | 2 +-
.../command/TemplateOrVolumePostUploadCommand.java | 8 +
.../storage/command/UploadStatusCommand.java | 10 +
.../service/NetworkOrchestrationService.java | 2 +-
.../service/VolumeOrchestrationService.java | 2 +-
.../com/cloud/vm/VirtualMachineManagerImpl.java | 26 +-
.../engine/orchestration/NetworkOrchestrator.java | 46 +-
.../engine/orchestration/VolumeOrchestrator.java | 24 +-
.../java/com/cloud/dc/dao/AccountVlanMapDao.java | 2 +-
.../com/cloud/dc/dao/AccountVlanMapDaoImpl.java | 4 +-
.../java/com/cloud/dc/dao/DomainVlanMapDao.java | 2 +-
.../com/cloud/dc/dao/DomainVlanMapDaoImpl.java | 4 +-
.../META-INF/db/views/cloud.user_vm_view.sql | 1 +
.../storage/image/BaseImageStoreDriverImpl.java | 26 +-
.../extensions/api/CreateExtensionCmd.java | 10 +
.../extensions/api/UpdateExtensionCmd.java | 10 +
.../extensions/manager/ExtensionsManagerImpl.java | 98 +++-
.../extensions/api/CreateExtensionCmdTest.java | 14 +
.../extensions/api/UpdateExtensionCmdTest.java | 15 +
.../manager/ExtensionsManagerImplTest.java | 167 +++++-
.../manager/BareMetalTemplateAdapter.java | 1 -
.../driver/MinIOObjectStoreDriverImpl.java | 81 ++-
.../driver/MinIOObjectStoreDriverImplTest.java | 7 +-
server/src/main/java/com/cloud/api/ApiDBUtils.java | 4 +
.../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 23 +-
.../java/com/cloud/api/query/vo/UserVmJoinVO.java | 7 +
.../configuration/ConfigurationManagerImpl.java | 128 +++--
.../java/com/cloud/network/NetworkServiceImpl.java | 26 +-
.../java/com/cloud/network/vpc/VpcManagerImpl.java | 51 +-
.../com/cloud/projects/ProjectManagerImpl.java | 52 +-
.../cloud/resourcelimit/CheckedReservation.java | 117 +++-
.../com/cloud/resourcelimit/ReservationHelper.java | 21 +-
.../resourcelimit/ResourceLimitManagerImpl.java | 212 +++----
.../cloud/storage/ImageStoreUploadMonitorImpl.java | 180 +++++-
.../com/cloud/storage/VolumeApiServiceImpl.java | 636 +++++++++++----------
.../storage/download/DownloadActiveState.java | 5 +
.../cloud/storage/download/DownloadErrorState.java | 5 +
.../storage/download/DownloadInactiveState.java | 6 +
.../download/DownloadLimitReachedState.java | 54 ++
.../cloud/storage/download/DownloadListener.java | 89 ++-
.../com/cloud/storage/download/DownloadState.java | 6 +-
.../storage/snapshot/SnapshotManagerImpl.java | 214 +++----
.../cloud/template/HypervisorTemplateAdapter.java | 39 +-
.../com/cloud/template/TemplateAdapterBase.java | 4 +-
.../com/cloud/template/TemplateManagerImpl.java | 256 +++++----
.../main/java/com/cloud/vm/UserVmManagerImpl.java | 322 ++++++++---
.../cloud/vm/snapshot/VMSnapshotManagerImpl.java | 21 +-
.../cloudstack/backup/BackupManagerImpl.java | 129 +++--
.../storage/object/BucketApiServiceImpl.java | 114 ++--
.../volume/VolumeImportUnmanageManagerImpl.java | 20 +-
.../cloudstack/vm/UnmanagedVMsManagerImpl.java | 425 ++++++++------
.../cloud/api/query/dao/UserVmJoinDaoImplTest.java | 1 +
.../com/cloud/network/vpc/VpcManagerImplTest.java | 14 +-
.../resourcelimit/CheckedReservationTest.java | 17 +-
.../ResourceLimitManagerImplTest.java | 108 +---
.../cloud/storage/VolumeApiServiceImplTest.java | 52 +-
.../storage/snapshot/SnapshotManagerImplTest.java | 4 +-
.../storage/snapshot/SnapshotManagerTest.java | 55 +-
.../cloud/template/TemplateManagerImplTest.java | 132 ++---
.../java/com/cloud/vm/UserVmManagerImplTest.java | 43 +-
.../cloud/vm/snapshot/VMSnapshotManagerTest.java | 2 +-
.../java/com/cloud/vpc/MockNetworkManagerImpl.java | 2 +-
.../cloud/vpc/MockResourceLimitManagerImpl.java | 41 +-
.../cloudstack/backup/BackupManagerTest.java | 127 +++-
.../storage/object/BucketApiServiceImplTest.java | 137 ++++-
.../VolumeImportUnmanageManagerImplTest.java | 3 -
.../cloudstack/vm/UnmanagedVMsManagerImplTest.java | 57 +-
.../storage/resource/HttpUploadServerHandler.java | 2 +
.../resource/NfsSecondaryStorageResource.java | 33 +-
.../storage/template/DownloadManagerImpl.java | 2 +-
ui/public/locales/en.json | 1 +
ui/src/config/section/extension.js | 2 +-
ui/src/views/extension/CreateExtension.vue | 11 +
ui/src/views/extension/UpdateExtension.vue | 17 +-
90 files changed, 3015 insertions(+), 1669 deletions(-)
diff --cc api/src/main/java/org/apache/cloudstack/api/command/user/backup/RestoreVolumeFromBackupAndAttachToVMCmd.java
index cee367a149c,e0398d4f49b..90ebbd5a595
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/backup/RestoreVolumeFromBackupAndAttachToVMCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/backup/RestoreVolumeFromBackupAndAttachToVMCmd.java
@@@ -57,9 -59,10 +59,10 @@@ public class RestoreVolumeFromBackupAnd
type = CommandType.UUID,
entityType = BackupResponse.class,
required = true,
- description = "ID of the VM backup")
+ description = "ID of the Instance backup")
private Long backupId;
+ @ACL
@Parameter(name = ApiConstants.VOLUME_ID,
type = CommandType.STRING,
required = true,
diff --cc engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
index af8ff83396d,2cf919c39e3..933accbda52
--- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
+++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
@@@ -901,9 -903,9 +903,9 @@@ public class VolumeOrchestrator extend
saveVolumeDetails(offering.getId(), vol.getId());
// Save usage event and update resource count for user vm volumes
- if (vm.getType() == VirtualMachine.Type.User) {
+ if (vm.getType() == VirtualMachine.Type.User && incrementResourceCount) {
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(), vol.getDataCenterId(), vol.getId(), vol.getName(), offering.getId(), null, size,
- Volume.class.getName(), vol.getUuid(), vol.isDisplayVolume());
+ Volume.class.getName(), vol.getUuid(), vol.getInstanceId(), vol.isDisplayVolume());
_resourceLimitMgr.incrementVolumeResourceCount(vm.getAccountId(), vol.isDisplayVolume(), vol.getSize(), offering);
}
DiskProfile diskProfile = toDiskProfile(vol, offering);
diff --cc server/src/main/java/com/cloud/network/NetworkServiceImpl.java
index dea8a7ec83e,d872317fa28..b610867275e
--- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
@@@ -1150,17 -1154,12 +1154,12 @@@ public class NetworkServiceImpl extend
}
Long ipDedicatedAccountId = getIpDedicatedAccountId(ipVO.getVlanId());
if (ipDedicatedAccountId != null && !ipDedicatedAccountId.equals(account.getAccountId())) {
- throw new InvalidParameterValueException("Unable to reserve a IP because it is dedicated to another account.");
+ throw new InvalidParameterValueException("Unable to reserve a IP because it is dedicated to another Account.");
}
- if (ipDedicatedAccountId == null) {
- // Check that the maximum number of public IPs for the given accountId will not be exceeded
- try {
- _resourceLimitMgr.checkResourceLimit(account, Resource.ResourceType.public_ip);
- } catch (ResourceAllocationException ex) {
- logger.warn("Failed to allocate resource of type " + ex.getResourceType() + " for account " + account);
- throw new AccountLimitException("Maximum number of public IP addresses for account: " + account.getAccountName() + " has been exceeded.");
- }
- }
+
+ long reservedIpAddressesAmount = ipDedicatedAccountId == null ? 1L : 0L;
+ try (CheckedReservation publicIpAddressReservation = new CheckedReservation(account, Resource.ResourceType.public_ip, reservedIpAddressesAmount, reservationDao, _resourceLimitMgr)) {
+
List<AccountVlanMapVO> maps = _accountVlanMapDao.listAccountVlanMapsByVlan(ipVO.getVlanId());
ipVO.setAllocatedTime(new Date());
ipVO.setAllocatedToAccountId(account.getAccountId());
diff --cc server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
index f4548ed5e8f,37976523a34..9e7c644cf65
--- a/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
+++ b/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
@@@ -1236,12 -1246,10 +1247,11 @@@ public class ResourceLimitManagerImpl e
List<ResourceCountVO> resourceCounts = _resourceCountDao.lockRows(rowIdsToLock);
long oldResourceCount = 0L;
+ long newResourceCount = 0L;
ResourceCountVO domainRC = null;
- // calculate project count here
- if (type == ResourceType.project) {
- newResourceCount += _projectDao.countProjectsForDomain(domainId);
+ if (type == ResourceType.network) {
+ newResourceCount += networkDomainDao.listDomainNetworkMapByDomain(domainId).size();
}
// TODO make sure that the resource counts are not null
diff --cc server/src/main/java/com/cloud/template/TemplateManagerImpl.java
index a2cb82a0a6b,38fd9ab205b..527f8037c35
--- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
@@@ -318,10 -317,8 +317,9 @@@ public class TemplateManagerImpl extend
VnfTemplateManager vnfTemplateManager;
@Inject
TemplateDeployAsIsDetailsDao templateDeployAsIsDetailsDao;
+
@Inject
private SecondaryStorageHeuristicDao secondaryStorageHeuristicDao;
-
@Inject
private HeuristicRuleHelper heuristicRuleHelper;
@@@ -380,17 -397,32 +398,35 @@@
}
TemplateAdapter adapter = getAdapter(HypervisorType.getType(cmd.getHypervisor()));
- TemplateProfile profile = adapter.prepare(cmd);
- VMTemplateVO template = adapter.create(profile);
+ Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId());
- if (template != null) {
- CallContext.current().putContextParameter(VirtualMachineTemplate.class, template.getUuid());
- if (cmd instanceof RegisterVnfTemplateCmd) {
- vnfTemplateManager.persistVnfTemplate(template.getId(), (RegisterVnfTemplateCmd) cmd);
+ long secondaryStorageUsage = adapter instanceof HypervisorTemplateAdapter && !cmd.isDirectDownload() ?
+ UriUtils.getRemoteSize(cmd.getUrl(), StorageManager.DataStoreDownloadFollowRedirects.value()) : 0L;
+
+ try (CheckedReservation templateReservation = new CheckedReservation(owner, ResourceType.template, null, null, 1L, reservationDao, _resourceLimitMgr);
+ CheckedReservation secondaryStorageReservation = new CheckedReservation(owner, ResourceType.secondary_storage, null, null, secondaryStorageUsage, reservationDao, _resourceLimitMgr)) {
+ TemplateProfile profile = adapter.prepare(cmd);
+ VMTemplateVO template = adapter.create(profile);
+
+ // Secondary storage resource usage will be recalculated in com.cloud.template.HypervisorTemplateAdapter.createTemplateAsyncCallBack
+ // for HypervisorTemplateAdapter
+ _resourceLimitMgr.incrementResourceCount(profile.getAccountId(), ResourceType.template);
+ if (secondaryStorageUsage > 0) {
+ _resourceLimitMgr.incrementResourceCount(profile.getAccountId(), ResourceType.secondary_storage, secondaryStorageUsage);
+ }
+
+ if (template != null) {
+ CallContext.current().putContextParameter(VirtualMachineTemplate.class, template.getUuid());
+ if (cmd instanceof RegisterVnfTemplateCmd) {
+ vnfTemplateManager.persistVnfTemplate(template.getId(), (RegisterVnfTemplateCmd) cmd);
+ }
+ return template;
+ } else {
+ throw new CloudRuntimeException("Failed to create a Template");
}
+ return template;
+ } else {
+ throw new CloudRuntimeException("Failed to create a Template");
}
}
@@@ -1990,107 -2019,106 +2038,106 @@@
}
}
- _resourceLimitMgr.checkResourceLimit(templateOwner, ResourceType.template);
- _resourceLimitMgr.checkResourceLimit(templateOwner, ResourceType.secondary_storage, new Long(volume != null ? volume.getSize() : snapshot.getSize()).longValue());
+ long templateSize = volume != null ? volume.getSize() : snapshot.getSize();
+ try (CheckedReservation templateReservation = new CheckedReservation(templateOwner, ResourceType.template, null, null, 1L, reservationDao, _resourceLimitMgr);
+ CheckedReservation secondaryStorageReservation = new CheckedReservation(templateOwner, ResourceType.secondary_storage, null, null, templateSize, reservationDao, _resourceLimitMgr)) {
- if (!isAdmin || featured == null) {
- featured = Boolean.FALSE;
- }
- Long guestOSId = cmd.getOsTypeId();
- GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
- if (guestOS == null) {
- throw new InvalidParameterValueException("GuestOS with ID: " + guestOSId + " does not exist.");
- }
-
- Long nextTemplateId = _tmpltDao.getNextInSequence(Long.class, "id");
- String description = cmd.getDisplayText();
- boolean isExtractable = false;
- Long sourceTemplateId = null;
- if (volume != null) {
- VMTemplateVO template = ApiDBUtils.findTemplateById(volume.getTemplateId());
- isExtractable = template != null && template.isExtractable() && template.getTemplateType() != Storage.TemplateType.SYSTEM;
- if (template != null) {
- arch = template.getArch();
+ if (!isAdmin || featured == null) {
+ featured = Boolean.FALSE;
}
- if (volume.getIsoId() != null && volume.getIsoId() != 0) {
- sourceTemplateId = volume.getIsoId();
- } else if (volume.getTemplateId() != null) {
- sourceTemplateId = volume.getTemplateId();
+ Long guestOSId = cmd.getOsTypeId();
+ GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
+ if (guestOS == null) {
+ throw new InvalidParameterValueException("GuestOS with ID: " + guestOSId + " does not exist.");
}
-
- Long nextTemplateId = _tmpltDao.getNextInSequence(Long.class, "id");
- String description = cmd.getDisplayText();
- boolean isExtractable = false;
- Long sourceTemplateId = null;
- if (volume != null) {
- VMTemplateVO template = ApiDBUtils.findTemplateById(volume.getTemplateId());
- isExtractable = template != null && template.isExtractable() && template.getTemplateType() != Storage.TemplateType.SYSTEM;
- if (template != null) {
- arch = template.getArch();
- }
- if (volume.getIsoId() != null && volume.getIsoId() != 0) {
- sourceTemplateId = volume.getIsoId();
- } else if (volume.getTemplateId() != null) {
- sourceTemplateId = volume.getTemplateId();
- }
+ }
+ String templateTag = cmd.getTemplateTag();
+ if (templateTag != null) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Adding Template tag: " + templateTag);
}
- String templateTag = cmd.getTemplateTag();
- if (templateTag != null) {
- if (logger.isDebugEnabled()) {
- logger.debug("Adding Template tag: " + templateTag);
- }
+ }
+ privateTemplate = new VMTemplateVO(nextTemplateId, name, ImageFormat.RAW, isPublic, featured, isExtractable,
+ TemplateType.USER, null, requiresHvmValue, bitsValue, templateOwner.getId(), null, description,
+ passwordEnabledValue, guestOS.getId(), true, hyperType, templateTag, cmd.getDetails(), sshKeyEnabledValue, isDynamicScalingEnabled, false, false, arch, null);
+
+ if (sourceTemplateId != null) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("This Template is getting created from other Template, setting source Template ID to: " + sourceTemplateId);
}
- }
+ privateTemplate = new VMTemplateVO(nextTemplateId, name, ImageFormat.RAW, isPublic, featured, isExtractable,
+ TemplateType.USER, null, requiresHvmValue, bitsValue, templateOwner.getId(), null, description,
+ passwordEnabledValue, guestOS.getId(), true, hyperType, templateTag, cmd.getDetails(), sshKeyEnabledValue, isDynamicScalingEnabled, false, false, arch, null);
+ if (sourceTemplateId != null) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("This Template is getting created from other Template, setting source Template ID to: " + sourceTemplateId);
+ }
+ }
- // for region wide storage, set cross zones flag
- List<ImageStoreVO> stores = _imgStoreDao.findRegionImageStores();
- if (!CollectionUtils.isEmpty(stores)) {
- privateTemplate.setCrossZones(true);
- }
+ // for region wide storage, set cross zones flag
+ List<ImageStoreVO> stores = _imgStoreDao.findRegionImageStores();
+ if (!CollectionUtils.isEmpty(stores)) {
+ privateTemplate.setCrossZones(true);
+ }
- privateTemplate.setSourceTemplateId(sourceTemplateId);
+ privateTemplate.setSourceTemplateId(sourceTemplateId);
- VMTemplateVO template = _tmpltDao.persist(privateTemplate);
- // Increment the number of templates
- if (template != null) {
- Map<String, String> details = new HashMap<String, String>();
+ VMTemplateVO template = _tmpltDao.persist(privateTemplate);
+ // Increment the number of templates
+ if (template != null) {
+ Map<String, String> details = new HashMap<String, String>();
- if (sourceTemplateId != null) {
- VMTemplateVO sourceTemplate = _tmpltDao.findById(sourceTemplateId);
- if (sourceTemplate != null && sourceTemplate.getDetails() != null) {
- details.putAll(sourceTemplate.getDetails());
+ if (sourceTemplateId != null) {
+ VMTemplateVO sourceTemplate = _tmpltDao.findById(sourceTemplateId);
+ if (sourceTemplate != null && sourceTemplate.getDetails() != null) {
+ details.putAll(sourceTemplate.getDetails());
+ }
}
- }
- if (volume != null) {
- Long vmId = volume.getInstanceId();
- if (vmId != null) {
- UserVmVO userVm = _userVmDao.findById(vmId);
- if (userVm != null) {
- _userVmDao.loadDetails(userVm);
- Map<String, String> vmDetails = userVm.getDetails();
- vmDetails = vmDetails.entrySet()
- .stream()
- .filter(map -> map.getValue() != null)
- .collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue()));
- details.putAll(vmDetails);
+ if (volume != null) {
+ Long vmId = volume.getInstanceId();
+ if (vmId != null) {
+ UserVmVO userVm = _userVmDao.findById(vmId);
+ if (userVm != null) {
+ _userVmDao.loadDetails(userVm);
+ Map<String, String> vmDetails = userVm.getDetails();
+ vmDetails = vmDetails.entrySet()
+ .stream()
+ .filter(map -> map.getValue() != null)
+ .collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue()));
+ details.putAll(vmDetails);
+ }
}
}
- }
- if (cmd.getDetails() != null) {
- details.remove(VmDetailConstants.ENCRYPTED_PASSWORD); // new password will be generated during vm deployment from password enabled template
- details.putAll(cmd.getDetails());
- }
- if (!details.isEmpty()) {
- privateTemplate.setDetails(details);
- _tmpltDao.saveDetails(privateTemplate);
+ if (cmd.getDetails() != null) {
+ details.remove(VmDetailConstants.ENCRYPTED_PASSWORD); // new password will be generated during vm deployment from password enabled template
+ details.putAll(cmd.getDetails());
+ }
+ if (!details.isEmpty()) {
+ privateTemplate.setDetails(details);
+ _tmpltDao.saveDetails(privateTemplate);
+ }
+
+ _resourceLimitMgr.incrementResourceCount(templateOwner.getId(), ResourceType.template);
+ _resourceLimitMgr.incrementResourceCount(templateOwner.getId(), ResourceType.secondary_storage, templateSize);
}
- _resourceLimitMgr.incrementResourceCount(templateOwner.getId(), ResourceType.template);
- _resourceLimitMgr.incrementResourceCount(templateOwner.getId(), ResourceType.secondary_storage,
- new Long(volume != null ? volume.getSize() : snapshot.getSize()));
+ if (template != null) {
+ CallContext.current().putContextParameter(VirtualMachineTemplate.class, template.getUuid());
+ return template;
+ } else {
+ throw new CloudRuntimeException("Failed to create a Template");
+ }
}
+
+ if (template != null) {
+ CallContext.current().putContextParameter(VirtualMachineTemplate.class, template.getUuid());
+ return template;
+ } else {
+ throw new CloudRuntimeException("Failed to create a Template");
+ }
+
}
@Override
diff --cc server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
index 9cec033d07c,7050da266c7..1653c44fb2e
--- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
@@@ -1192,9 -1192,9 +1192,9 @@@ public class UserVmManagerImpl extends
if (dc.getNetworkType() == DataCenter.NetworkType.Advanced) {
//List all networks of vm
List<Long> vmNetworks = _vmNetworkMapDao.getNetworks(vmId);
- List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>();
+ List<DomainRouterVO> routers = new ArrayList<>();
//List the stopped routers
- for(long vmNetworkId : vmNetworks) {
+ for (long vmNetworkId : vmNetworks) {
List<DomainRouterVO> router = _routerDao.listStopped(vmNetworkId);
routers.addAll(router);
}
@@@ -5769,133 -5824,21 +5923,142 @@@
if (owner.getState() == Account.State.DISABLED) {
throw new PermissionDeniedException(String.format("The owner of %s is disabled: %s", vm, owner));
}
+ boolean isRootAdmin = _accountService.isRootAdmin(callerAccount.getId());
+
VMTemplateVO template = _templateDao.findByIdIncludingRemoved(vm.getTemplateId());
if (VirtualMachineManager.ResourceCountRunningVMsonly.value()) {
- // check if account/domain is with in resource limits to start a new vm
ServiceOfferingVO offering = serviceOfferingDao.findById(vm.getId(), vm.getServiceOfferingId());
- resourceLimitService.checkVmResourceLimit(owner, vm.isDisplayVm(), offering, template);
+ List<String> resourceLimitHostTags = resourceLimitService.getResourceLimitHostTags(offering, template);
+ try (CheckedReservation vmReservation = new CheckedReservation(owner, ResourceType.user_vm, resourceLimitHostTags, 1l, reservationDao, resourceLimitService);
+ CheckedReservation cpuReservation = new CheckedReservation(owner, ResourceType.cpu, resourceLimitHostTags, Long.valueOf(offering.getCpu()), reservationDao, resourceLimitService);
+ CheckedReservation memReservation = new CheckedReservation(owner, ResourceType.memory, resourceLimitHostTags, Long.valueOf(offering.getRamSize()), reservationDao, resourceLimitService);
+ ) {
+ return startVirtualMachineUnchecked(vm, template, podId, clusterId, hostId, additionalParams, deploymentPlannerToUse, isExplicitHost, isRootAdmin);
+ }
+ } else {
+ return startVirtualMachineUnchecked(vm, template, podId, clusterId, hostId, additionalParams, deploymentPlannerToUse, isExplicitHost, isRootAdmin);
}
+ // check if vm is security group enabled
+ if (_securityGroupMgr.isVmSecurityGroupEnabled(vmId) && _securityGroupMgr.getSecurityGroupsForVm(vmId).isEmpty()
+ && !_securityGroupMgr.isVmMappedToDefaultSecurityGroup(vmId) && _networkModel.canAddDefaultSecurityGroup()) {
+ // if vm is not mapped to security group, create a mapping
+ if (logger.isDebugEnabled()) {
+ logger.debug("Vm " + vm + " is security group enabled, but not mapped to default security group; creating the mapping automatically");
+ }
+
+ SecurityGroup defaultSecurityGroup = _securityGroupMgr.getDefaultSecurityGroup(vm.getAccountId());
+ if (defaultSecurityGroup != null) {
+ List<Long> groupList = new ArrayList<Long>();
+ groupList.add(defaultSecurityGroup.getId());
+ _securityGroupMgr.addInstanceToGroups(vm, groupList);
+ }
+ }
+ // Choose deployment planner
+ // Host takes 1st preference, Cluster takes 2nd preference and Pod takes 3rd
+ // Default behaviour is invoked when host, cluster or pod are not specified
+ boolean isRootAdmin = _accountService.isRootAdmin(callerAccount.getId());
+ Pod destinationPod = getDestinationPod(podId, isRootAdmin);
+ Cluster destinationCluster = getDestinationCluster(clusterId, isRootAdmin);
+ HostVO destinationHost = getDestinationHost(hostId, isRootAdmin, isExplicitHost);
+ DataCenterDeployment plan = null;
+ boolean deployOnGivenHost = false;
+ if (destinationHost != null) {
+ logger.debug("Destination Host to deploy the VM is specified, specifying a deployment plan to deploy the VM");
+ _hostDao.loadHostTags(destinationHost);
+ validateStrictHostTagCheck(vm, destinationHost);
+
+ final ServiceOfferingVO offering = serviceOfferingDao.findById(vm.getId(), vm.getServiceOfferingId());
+ Pair<Boolean, Boolean> cpuCapabilityAndCapacity = _capacityMgr.checkIfHostHasCpuCapabilityAndCapacity(destinationHost, offering, false);
+ if (!cpuCapabilityAndCapacity.first() || !cpuCapabilityAndCapacity.second()) {
+ String errorMsg;
+ if (!cpuCapabilityAndCapacity.first()) {
+ errorMsg = String.format("Cannot deploy the VM to specified host %s, requested CPU and speed is more than the host capability", destinationHost);
+ } else {
+ errorMsg = String.format("Cannot deploy the VM to specified host %s, host does not have enough free CPU or RAM, please check the logs", destinationHost);
+ }
+ logger.info(errorMsg);
+ if (!AllowDeployVmIfGivenHostFails.value()) {
+ throw new InvalidParameterValueException(errorMsg);
+ };
+ } else {
+ plan = new DataCenterDeployment(vm.getDataCenterId(), destinationHost.getPodId(), destinationHost.getClusterId(), destinationHost.getId(), null, null);
+ if (!AllowDeployVmIfGivenHostFails.value()) {
+ deployOnGivenHost = true;
+ }
+ }
+ } else if (destinationCluster != null) {
+ logger.debug("Destination Cluster to deploy the VM is specified, specifying a deployment plan to deploy the VM");
+ plan = new DataCenterDeployment(vm.getDataCenterId(), destinationCluster.getPodId(), destinationCluster.getId(), null, null, null);
+ if (!AllowDeployVmIfGivenHostFails.value()) {
+ deployOnGivenHost = true;
+ }
+ } else if (destinationPod != null) {
+ logger.debug("Destination Pod to deploy the VM is specified, specifying a deployment plan to deploy the VM");
+ plan = new DataCenterDeployment(vm.getDataCenterId(), destinationPod.getId(), null, null, null, null);
+ if (!AllowDeployVmIfGivenHostFails.value()) {
+ deployOnGivenHost = true;
+ }
+ }
+
+ // Set parameters
+ Map<VirtualMachineProfile.Param, Object> params = null;
+ if (vm.isUpdateParameters()) {
+ _vmDao.loadDetails(vm);
+
+ String password = getCurrentVmPasswordOrDefineNewPassword(String.valueOf(additionalParams.getOrDefault(VirtualMachineProfile.Param.VmPassword, "")), vm, template);
+
+ if (!validPassword(password)) {
+ throw new InvalidParameterValueException("A valid password for this virtual machine was not provided.");
+ }
+
+ // Check if an SSH key pair was selected for the instance and if so
+ // use it to encrypt & save the vm password
+ encryptAndStorePassword(vm, password);
+
+ params = createParameterInParameterMap(params, additionalParams, VirtualMachineProfile.Param.VmPassword, password);
+ }
+
+ if (additionalParams.containsKey(VirtualMachineProfile.Param.BootIntoSetup)) {
+ if (! HypervisorType.VMware.equals(vm.getHypervisorType())) {
+ throw new InvalidParameterValueException(ApiConstants.BOOT_INTO_SETUP + " makes no sense for " + vm.getHypervisorType());
+ }
+ Object paramValue = additionalParams.get(VirtualMachineProfile.Param.BootIntoSetup);
+ if (logger.isTraceEnabled()) {
+ logger.trace("It was specified whether to enter setup mode: " + paramValue.toString());
+ }
+ params = createParameterInParameterMap(params, additionalParams, VirtualMachineProfile.Param.BootIntoSetup, paramValue);
+ }
+
+ VirtualMachineEntity vmEntity = _orchSrvc.getVirtualMachine(vm.getUuid());
+
+ DeploymentPlanner planner = null;
+ if (deploymentPlannerToUse != null) {
+ // if set to null, the deployment planner would be later figured out either from global config var, or from
+ // the service offering
+ planner = _planningMgr.getDeploymentPlannerByName(deploymentPlannerToUse);
+ if (planner == null) {
+ throw new InvalidParameterValueException("Can't find a planner by name " + deploymentPlannerToUse);
+ }
+ }
+ vmEntity.setParamsToEntity(additionalParams);
+
+ String reservationId = vmEntity.reserve(planner, plan, new ExcludeList(), Long.toString(callerUser.getId()));
+ vmEntity.deploy(reservationId, Long.toString(callerUser.getId()), params, deployOnGivenHost);
+
+ Pair<UserVmVO, Map<VirtualMachineProfile.Param, Object>> vmParamPair = new Pair(vm, params);
+ if (vm != null && vm.isUpdateParameters()) {
+ // this value is not being sent to the backend; need only for api
+ // display purposes
+ if (template.isEnablePassword()) {
+ if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
+ vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
+ }
+ vm.setUpdateParameters(false);
+ _vmDao.update(vm.getId(), vm);
+ }
+ }
+
+ return vmParamPair;
}
/**
diff --cc server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
index 6f7b96453ac,b2e820bce94..f61d1930c1b
--- a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
@@@ -845,12 -844,12 +851,12 @@@ public class VMSnapshotManagerImpl exte
* @param vmSnapshotVo vm snapshot
*/
protected void changeUserVmServiceOffering(UserVm userVm, VMSnapshotVO vmSnapshotVo) {
- Map<String, String> vmDetails = getVmMapDetails(userVm);
+ Map<String, String> vmDetails = getVmMapDetails(vmSnapshotVo);
boolean result = upgradeUserVmServiceOffering(userVm, vmSnapshotVo.getServiceOfferingId(), vmDetails);
if (! result){
- throw new CloudRuntimeException("VM Snapshot reverting failed due to vm service offering couldn't be changed to the one used when snapshot was taken");
+ throw new CloudRuntimeException("Instance Snapshot reverting failed because the Instance service offering couldn't be changed to the one used when Snapshot was taken");
}
- logger.debug("Successfully changed service offering to {} for vm {}", _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId()), userVm);
+ logger.debug("Successfully changed service offering to {} for Instance {}", _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId()), userVm);
}
/**
@@@ -942,8 -941,8 +948,9 @@@
Transaction.execute(new TransactionCallbackWithExceptionNoReturn<CloudRuntimeException>() {
@Override
public void doInTransactionWithoutResult(TransactionStatus status) throws CloudRuntimeException {
+ revertCustomServiceOfferingDetailsFromVmSnapshot(userVm, vmSnapshotVo);
updateUserVmServiceOffering(userVm, vmSnapshotVo);
+ revertUserVmDetailsFromVmSnapshot(userVm, vmSnapshotVo);
}
});
return userVm;
diff --cc server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
index e9ed8e42eaa,088517e705b..152d6286969
--- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
@@@ -1538,33 -1549,37 +1549,49 @@@ public class BackupManagerImpl extends
throw new CloudRuntimeException(String.format("Backup offering with ID [%s] does not exist.", backup.getBackupOfferingId()));
}
final BackupProvider backupProvider = getBackupProvider(backup.getZoneId());
- boolean result = backupProvider.deleteBackup(backup, forced);
- if (result) {
- resourceLimitMgr.decrementResourceCount(backup.getAccountId(), Resource.ResourceType.backup);
- Long backupSize = backup.getSize() != null ? backup.getSize() : 0L;
- resourceLimitMgr.decrementResourceCount(backup.getAccountId(), Resource.ResourceType.backup_storage, backupSize);
- if (backupDao.remove(backup.getId())) {
- checkAndGenerateUsageForLastBackupDeletedAfterOfferingRemove(vm, backup);
- return true;
- } else {
- return false;
+ return deleteCheckedBackup(forced, backupProvider, backup, vm);
+ }
+
+ private boolean deleteCheckedBackup(Boolean forced, BackupProvider backupProvider, BackupVO backup, VMInstanceVO vm) {
+ Account owner = accountManager.getAccount(backup.getAccountId());
+ long backupSize = backup.getSize() != null ? backup.getSize() : 0L;
+ try (CheckedReservation backupReservation = new CheckedReservation(owner, Resource.ResourceType.backup,
+ backup.getId(), null, -1L, reservationDao, resourceLimitMgr);
+ CheckedReservation backupStorageReservation = new CheckedReservation(owner,
+ Resource.ResourceType.backup_storage, backup.getId(), null, -1 * backupSize,
+ reservationDao, resourceLimitMgr)) {
+ boolean result = backupProvider.deleteBackup(backup, forced);
+ if (result) {
+ resourceLimitMgr.decrementResourceCount(backup.getAccountId(), Resource.ResourceType.backup);
+ resourceLimitMgr.decrementResourceCount(backup.getAccountId(), Resource.ResourceType.backup_storage, backupSize);
+ if (backupDao.remove(backup.getId())) {
+ checkAndGenerateUsageForLastBackupDeletedAfterOfferingRemove(vm, backup);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ throw new CloudRuntimeException("Failed to delete the backup");
+ } catch (Exception e) {
+ if (e instanceof CloudRuntimeException) {
+ throw (CloudRuntimeException) e;
}
+ throw new CloudRuntimeException("Failed to delete the backup due to: " + e.getMessage(), e);
}
- throw new CloudRuntimeException("Failed to delete the backup");
}
+ private void checkForPendingBackupJobs(final BackupVO backup) {
+ String backupUuid = backup.getUuid();
+ long pendingJobs = asyncJobManager.countPendingJobs(backupUuid,
+ CreateVMFromBackupCmd.class.getName(),
+ CreateVMFromBackupCmdByAdmin.class.getName(),
+ RestoreBackupCmd.class.getName(),
+ RestoreVolumeFromBackupAndAttachToVMCmd.class.getName());
+ if (pendingJobs > 0) {
+ throw new CloudRuntimeException("Cannot delete Backup while a create Instance from Backup or restore Backup operation is in progress, please try again later.");
+ }
+ }
+
/**
* Get the pair: hostIp, datastoreUuid in which to restore the volume, based on the VM to be attached information
*/
diff --cc server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
index e043791c6bf,75f87931591..d48b9e17d83
--- a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
@@@ -1135,99 -1171,103 +1107,185 @@@ public class UnmanagedVMsManagerImpl im
allDetails.put(VmDetailConstants.ROOT_DISK_SIZE, String.valueOf(size));
}
+ List<Reserver> reservations = new ArrayList<>();
try {
- checkUnmanagedDiskAndOfferingForImport(unmanagedInstance.getName(), rootDisk, null, validatedServiceOffering, owner, zone, cluster, migrateAllowed);
+ checkUnmanagedDiskAndOfferingForImport(unmanagedInstance.getName(), rootDisk, null, validatedServiceOffering, owner, zone, cluster, migrateAllowed, reservations);
if (CollectionUtils.isNotEmpty(dataDisks)) { // Data disk(s) present
- checkUnmanagedDiskAndOfferingForImport(unmanagedInstance.getName(), dataDisks, dataDiskOfferingMap, owner, zone, cluster, migrateAllowed);
+ checkUnmanagedDiskAndOfferingForImport(unmanagedInstance.getName(), dataDisks, dataDiskOfferingMap, owner, zone, cluster, migrateAllowed, reservations);
allDetails.put(VmDetailConstants.DATA_DISK_CONTROLLER, dataDisks.get(0).getController());
}
- checkUnmanagedDiskLimits(owner, rootDisk, serviceOffering, dataDisks, dataDiskOfferingMap);
- } catch (ResourceAllocationException e) {
+
+ // Check NICs and supplied networks
+ Map<String, Network.IpAddresses> nicIpAddressMap = getNicIpAddresses(unmanagedInstance.getNics(), callerNicIpAddressMap);
+ Map<String, Long> allNicNetworkMap = getUnmanagedNicNetworkMap(unmanagedInstance.getName(), unmanagedInstance.getNics(), nicNetworkMap, nicIpAddressMap, zone, hostName, owner, cluster.getHypervisorType());
+ if (!CollectionUtils.isEmpty(unmanagedInstance.getNics())) {
+ allDetails.put(VmDetailConstants.NIC_ADAPTER, unmanagedInstance.getNics().get(0).getAdapterType());
+ }
+
+ if (StringUtils.isNotEmpty(unmanagedInstance.getVncPassword())) {
+ allDetails.put(VmDetailConstants.KVM_VNC_PASSWORD, unmanagedInstance.getVncPassword());
+ }
+
+ addImportingVMBootTypeAndModeDetails(unmanagedInstance.getBootType(), unmanagedInstance.getBootMode(), allDetails);
+
+ VirtualMachine.PowerState powerState = VirtualMachine.PowerState.PowerOff;
+ if (unmanagedInstance.getPowerState().equals(UnmanagedInstanceTO.PowerState.PowerOn)) {
+ powerState = VirtualMachine.PowerState.PowerOn;
+ }
+
+ try {
+ userVm = userVmManager.importVM(zone, host, template, internalCSName, displayName, owner,
+ null, caller, true, null, owner.getAccountId(), userId,
+ validatedServiceOffering, null, hostName,
+ cluster.getHypervisorType(), allDetails, powerState, null);
+ } catch (InsufficientCapacityException ice) {
+ String errorMsg = String.format("Failed to import VM [%s] due to [%s].", displayName, ice.getMessage());
+ logger.error(errorMsg, ice);
+ throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, errorMsg);
+ }
+
+ if (userVm == null) {
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Failed to import vm name: %s", displayName));
+ }
+ List<Pair<DiskProfile, StoragePool>> diskProfileStoragePoolList = new ArrayList<>();
+ try {
+ if (rootDisk.getCapacity() == null || rootDisk.getCapacity() == 0) {
+ throw new InvalidParameterValueException(String.format("Root disk ID: %s size is invalid", rootDisk.getDiskId()));
+ }
+ Long minIops = null;
+ if (details.containsKey(MIN_IOPS)) {
+ minIops = Long.parseLong(details.get(MIN_IOPS));
+ }
+ Long maxIops = null;
+ if (details.containsKey(MAX_IOPS)) {
+ maxIops = Long.parseLong(details.get(MAX_IOPS));
+ }
+ DiskOfferingVO diskOffering = diskOfferingDao.findById(serviceOffering.getDiskOfferingId());
+ diskProfileStoragePoolList.add(importDisk(rootDisk, userVm, cluster, diskOffering, Volume.Type.ROOT, String.format("ROOT-%d", userVm.getId()),
+ rootDisk.getCapacity(), minIops, maxIops, template, owner, null));
+ long deviceId = 1L;
+ for (UnmanagedInstanceTO.Disk disk : dataDisks) {
+ if (disk.getCapacity() == null || disk.getCapacity() == 0) {
+ throw new InvalidParameterValueException(String.format("Disk ID: %s size is invalid", rootDisk.getDiskId()));
+ }
+ DiskOffering offering = diskOfferingDao.findById(dataDiskOfferingMap.get(disk.getDiskId()));
+ diskProfileStoragePoolList.add(importDisk(disk, userVm, cluster, offering, Volume.Type.DATADISK, String.format("DATA-%d-%s", userVm.getId(), disk.getDiskId()),
+ disk.getCapacity(), offering.getMinIops(), offering.getMaxIops(),
+ template, owner, deviceId));
+ deviceId++;
+ }
+ } catch (Exception e) {
+ logger.error(String.format("Failed to import volumes while importing vm: %s", displayName), e);
+ cleanupFailedImportVM(userVm);
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Failed to import volumes while importing vm: %s. %s", displayName, StringUtils.defaultString(e.getMessage())));
+ }
+ try {
+ int nicIndex = 0;
+ for (UnmanagedInstanceTO.Nic nic : unmanagedInstance.getNics()) {
+ Network network = networkDao.findById(allNicNetworkMap.get(nic.getNicId()));
+ Network.IpAddresses ipAddresses = nicIpAddressMap.get(nic.getNicId());
+ importNic(nic, userVm, network, ipAddresses, nicIndex, nicIndex == 0, forced);
+ nicIndex++;
+ }
+ } catch (Exception e) {
+ logger.error(String.format("Failed to import NICs while importing vm: %s", displayName), e);
+ cleanupFailedImportVM(userVm);
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Failed to import NICs while importing vm: %s. %s", displayName, StringUtils.defaultString(e.getMessage())));
+ }
+ if (migrateAllowed) {
+ userVm = migrateImportedVM(host, template, validatedServiceOffering, userVm, owner, diskProfileStoragePoolList);
+ }
+ publishVMUsageUpdateResourceCount(userVm, validatedServiceOffering, template);
+ return userVm;
+
+ } catch (ResourceAllocationException e) { // This will be thrown by checkUnmanagedDiskAndOfferingForImport, so the VM was not imported yet
logger.error("Volume resource allocation error for owner: {}", owner, e);
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Volume resource allocation error for owner: %s. %s", owner.getUuid(), StringUtils.defaultString(e.getMessage())));
+ } finally {
+ ReservationHelper.closeAll(reservations);
}
+ // Check NICs and supplied networks
+ Map<String, Network.IpAddresses> nicIpAddressMap = getNicIpAddresses(unmanagedInstance.getNics(), callerNicIpAddressMap);
+ Map<String, Long> allNicNetworkMap = getUnmanagedNicNetworkMap(unmanagedInstance.getName(), unmanagedInstance.getNics(), nicNetworkMap, nicIpAddressMap, zone, hostName, owner, cluster.getHypervisorType());
+ if (!CollectionUtils.isEmpty(unmanagedInstance.getNics())) {
+ allDetails.put(VmDetailConstants.NIC_ADAPTER, unmanagedInstance.getNics().get(0).getAdapterType());
+ }
+
+ if (StringUtils.isNotEmpty(unmanagedInstance.getVncPassword())) {
+ allDetails.put(VmDetailConstants.KVM_VNC_PASSWORD, unmanagedInstance.getVncPassword());
+ }
+
+ addImportingVMBootTypeAndModeDetails(unmanagedInstance.getBootType(), unmanagedInstance.getBootMode(), allDetails);
+
+ VirtualMachine.PowerState powerState = VirtualMachine.PowerState.PowerOff;
+ if (unmanagedInstance.getPowerState().equals(UnmanagedInstanceTO.PowerState.PowerOn)) {
+ powerState = VirtualMachine.PowerState.PowerOn;
+ }
+
+ try {
+ userVm = userVmManager.importVM(zone, host, template, internalCSName, displayName, owner,
+ null, caller, true, null, owner.getAccountId(), userId,
+ validatedServiceOffering, null, guestOsId, hostName,
+ cluster.getHypervisorType(), allDetails, powerState, null);
+ } catch (InsufficientCapacityException ice) {
+ String errorMsg = String.format("Failed to import VM [%s] due to [%s].", displayName, ice.getMessage());
+ logger.error(errorMsg, ice);
+ throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, errorMsg);
+ }
+
+ if (userVm == null) {
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Failed to import vm name: %s", displayName));
+ }
+ List<Pair<DiskProfile, StoragePool>> diskProfileStoragePoolList = new ArrayList<>();
+ try {
+ if (rootDisk.getCapacity() == null || rootDisk.getCapacity() == 0) {
+ throw new InvalidParameterValueException(String.format("Root disk ID: %s size is invalid", rootDisk.getDiskId()));
+ }
+ Long minIops = null;
+ if (details.containsKey(MIN_IOPS)) {
+ minIops = Long.parseLong(details.get(MIN_IOPS));
+ }
+ Long maxIops = null;
+ if (details.containsKey(MAX_IOPS)) {
+ maxIops = Long.parseLong(details.get(MAX_IOPS));
+ }
+ DiskOfferingVO diskOffering = diskOfferingDao.findById(serviceOffering.getDiskOfferingId());
+ diskProfileStoragePoolList.add(importDisk(rootDisk, userVm, cluster, diskOffering, Volume.Type.ROOT, String.format("ROOT-%d", userVm.getId()),
+ rootDisk.getCapacity(), minIops, maxIops, template, owner, null));
+ long deviceId = 1L;
+ for (UnmanagedInstanceTO.Disk disk : dataDisks) {
+ if (disk.getCapacity() == null || disk.getCapacity() == 0) {
+ throw new InvalidParameterValueException(String.format("Disk ID: %s size is invalid", rootDisk.getDiskId()));
+ }
+ DiskOffering offering = diskOfferingDao.findById(dataDiskOfferingMap.get(disk.getDiskId()));
+ diskProfileStoragePoolList.add(importDisk(disk, userVm, cluster, offering, Volume.Type.DATADISK, String.format("DATA-%d-%s", userVm.getId(), disk.getDiskId()),
+ disk.getCapacity(), offering.getMinIops(), offering.getMaxIops(),
+ template, owner, deviceId));
+ deviceId++;
+ }
+ } catch (Exception e) {
+ logger.error(String.format("Failed to import volumes while importing vm: %s", displayName), e);
+ cleanupFailedImportVM(userVm);
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Failed to import volumes while importing vm: %s. %s", displayName, StringUtils.defaultString(e.getMessage())));
+ }
+ try {
+ int nicIndex = 0;
+ for (UnmanagedInstanceTO.Nic nic : unmanagedInstance.getNics()) {
+ Network network = networkDao.findById(allNicNetworkMap.get(nic.getNicId()));
+ Network.IpAddresses ipAddresses = nicIpAddressMap.get(nic.getNicId());
+ importNic(nic, userVm, network, ipAddresses, nicIndex, nicIndex == 0, forced);
+ nicIndex++;
+ }
+ } catch (Exception e) {
+ logger.error(String.format("Failed to import NICs while importing vm: %s", displayName), e);
+ cleanupFailedImportVM(userVm);
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Failed to import NICs while importing vm: %s. %s", displayName, StringUtils.defaultString(e.getMessage())));
+ }
+ if (migrateAllowed) {
+ userVm = migrateImportedVM(host, template, validatedServiceOffering, userVm, owner, diskProfileStoragePoolList);
+ }
+ publishVMUsageUpdateResourceCount(userVm, validatedServiceOffering, template);
+ return userVm;
}
private void addImportingVMBootTypeAndModeDetails(String bootType, String bootMode, Map<String, String> allDetails) {
diff --cc server/src/test/java/com/cloud/template/TemplateManagerImplTest.java
index 7bdc1e7c604,f5e281a9516..a1528297395
--- a/server/src/test/java/com/cloud/template/TemplateManagerImplTest.java
+++ b/server/src/test/java/com/cloud/template/TemplateManagerImplTest.java
@@@ -147,71 -152,72 +152,78 @@@ import static org.mockito.Mockito.eq
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(loader = AnnotationConfigContextLoader.class)
- public class TemplateManagerImplTest {
+ @RunWith(MockitoJUnitRunner.class)
+ public class TemplateManagerImplTest extends TestCase {
- @Inject
- TemplateManagerImpl templateManager = new TemplateManagerImpl();
+ @Spy
+ @InjectMocks
+ TemplateManagerImpl templateManager;
- @Inject
+ @Mock
DataStoreManager dataStoreManager;
- @Inject
+ @Mock
VMTemplateDao vmTemplateDao;
- @Inject
+ @Mock
VMTemplatePoolDao vmTemplatePoolDao;
- @Inject
+ @Mock
TemplateDataStoreDao templateDataStoreDao;
- @Inject
+ @Mock
StoragePoolHostDao storagePoolHostDao;
- @Inject
+ @Mock
PrimaryDataStoreDao primaryDataStoreDao;
- @Inject
+ @Mock
ResourceLimitService resourceLimitMgr;
- @Inject
+ @Mock
ImageStoreDao imgStoreDao;
- @Inject
+ @Mock
GuestOSDao guestOSDao;
- @Inject
- VMTemplateDao tmpltDao;
-
- @Inject
+ @Mock
SnapshotDao snapshotDao;
- @Inject
+ @Mock
+ VolumeDao volumeDao;
+
+ @Mock
VMTemplateDetailsDao tmpltDetailsDao;
- @Inject
+ @Mock
StorageStrategyFactory storageStrategyFactory;
- @Inject
+ @Mock
VMInstanceDao _vmInstanceDao;
- @Inject
- private VMTemplateDao _tmpltDao;
+ @Mock
+ ReservationDao reservationDao;
- @Inject
+ @Mock
HypervisorGuruManager _hvGuruMgr;
- @Inject
+ @Mock
AccountManager _accountMgr;
+ @Inject
+ VnfTemplateManager vnfTemplateManager;
+ @Inject
+ SnapshotJoinDao snapshotJoinDao;
+ @Inject
+ TemplateDeployAsIsDetailsDao templateDeployAsIsDetailsDao;
- @Inject
+ @Mock
+ VnfTemplateManager vnfTemplateManager;
+ @Mock
+ SnapshotJoinDao snapshotJoinDao;
+ @Mock
+ TemplateDeployAsIsDetailsDao templateDeployAsIsDetailsDao;
+
+ @Mock
HeuristicRuleHelper heuristicRuleHelperMock;
public class CustomThreadPoolExecutor extends ThreadPoolExecutor {
diff --cc server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java
index 2c9d11612c4,7395f222a86..681eecdf052
--- a/server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java
+++ b/server/src/test/java/org/apache/cloudstack/backup/BackupManagerTest.java
@@@ -68,68 -132,11 +132,68 @@@ import com.cloud.utils.fsm.NoTransition
import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine;
- import com.cloud.vm.VmDiskInfo;
import com.cloud.vm.VirtualMachineManager;
- import com.cloud.vm.dao.VMInstanceDetailsDao;
+ import com.cloud.vm.VmDiskInfo;
import com.cloud.vm.dao.VMInstanceDao;
+ import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.google.gson.Gson;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.command.admin.backup.ImportBackupOfferingCmd;
+import org.apache.cloudstack.api.command.admin.backup.UpdateBackupOfferingCmd;
+import org.apache.cloudstack.api.command.user.backup.CreateBackupCmd;
+import org.apache.cloudstack.api.command.user.backup.CreateBackupScheduleCmd;
+import org.apache.cloudstack.api.command.user.backup.DeleteBackupScheduleCmd;
+import org.apache.cloudstack.api.command.user.backup.ListBackupScheduleCmd;
+import org.apache.cloudstack.api.response.BackupResponse;
+import org.apache.cloudstack.backup.dao.BackupDao;
+import org.apache.cloudstack.backup.dao.BackupDetailsDao;
+import org.apache.cloudstack.backup.dao.BackupOfferingDao;
+import org.apache.cloudstack.backup.dao.BackupScheduleDao;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.impl.ConfigDepotImpl;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.cloudstack.framework.jobs.AsyncJobManager;
+import org.apache.cloudstack.framework.jobs.impl.AsyncJobVO;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.springframework.test.util.ReflectionTestUtils;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.TimeZone;
+import java.util.UUID;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.atLeastOnce;
@RunWith(MockitoJUnitRunner.class)
public class BackupManagerTest {
@@@ -1491,9 -1541,9 +1601,10 @@@
when(backup.getVmId()).thenReturn(vmId);
when(backup.getZoneId()).thenReturn(zoneId);
when(backup.getAccountId()).thenReturn(accountId);
+ when(accountManager.getAccount(accountId)).thenReturn(accountVOMock);
when(backup.getBackupOfferingId()).thenReturn(backupOfferingId);
when(backup.getSize()).thenReturn(100L);
+ when(backup.getUuid()).thenReturn("backup-uuid");
overrideBackupFrameworkConfigValue();