This is an automated email from the ASF dual-hosted git repository.
weizhou pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.20 by this push:
new 2cd7d8a315e server: check limit on correct store during snapshot
allocation (#11558)
2cd7d8a315e is described below
commit 2cd7d8a315e2917d90cf6994977937d3752a6785
Author: Abhishek Kumar <[email protected]>
AuthorDate: Mon Sep 15 12:41:26 2025 +0530
server: check limit on correct store during snapshot allocation (#11558)
Fixes #11551
Signed-off-by: Abhishek Kumar <[email protected]>
---
.../java/com/cloud/storage/snapshot/SnapshotManagerImpl.java | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git
a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
index a3fb8eda2fe..b0070890de2 100755
--- a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@ -1696,9 +1696,14 @@ public class SnapshotManagerImpl extends
MutualExclusiveIdsManagerBase implement
Type snapshotType = getSnapshotType(policyId);
Account owner = _accountMgr.getAccount(volume.getAccountId());
+ ResourceType storeResourceType = ResourceType.secondary_storage;
+ if (!isBackupSnapshotToSecondaryForZone(volume.getDataCenterId()) ||
+ Snapshot.LocationType.PRIMARY.equals(locationType)) {
+ storeResourceType = ResourceType.primary_storage;
+ }
try {
_resourceLimitMgr.checkResourceLimit(owner, ResourceType.snapshot);
- _resourceLimitMgr.checkResourceLimit(owner,
ResourceType.secondary_storage, new Long(volume.getSize()).longValue());
+ _resourceLimitMgr.checkResourceLimit(owner, storeResourceType,
volume.getSize());
} catch (ResourceAllocationException e) {
if (snapshotType != Type.MANUAL) {
String msg = String.format("Snapshot resource limit exceeded
for account %s. Failed to create recurring snapshots", owner);
@@ -1749,7 +1754,7 @@ public class SnapshotManagerImpl extends
MutualExclusiveIdsManagerBase implement
}
CallContext.current().putContextParameter(Snapshot.class,
snapshot.getUuid());
_resourceLimitMgr.incrementResourceCount(volume.getAccountId(),
ResourceType.snapshot);
- _resourceLimitMgr.incrementResourceCount(volume.getAccountId(),
ResourceType.secondary_storage, new Long(volume.getSize()));
+ _resourceLimitMgr.incrementResourceCount(volume.getAccountId(),
storeResourceType, volume.getSize());
return snapshot;
}