This is an automated email from the ASF dual-hosted git repository.
rafael pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/master by this push:
new 35e008d CLOUDSTACK-10223 Snapshots are not getting deleted when
domain is deleted (#2399)
35e008d is described below
commit 35e008df6c551b2a0de3e7b175c738b4342eae31
Author: SowjanyaPatha <[email protected]>
AuthorDate: Sun Aug 12 18:47:03 2018 +0530
CLOUDSTACK-10223 Snapshots are not getting deleted when domain is deleted
(#2399)
---
engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java | 2 ++
.../schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java | 7 +++++++
.../main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java | 2 +-
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java
b/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java
index eb5e41a..51d46a0 100644
--- a/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java
+++ b/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java
@@ -34,6 +34,8 @@ public interface VolumeDao extends GenericDao<VolumeVO,
Long>, StateDao<Volume.S
List<VolumeVO> findByAccount(long accountId);
+ List<VolumeVO> findIncludingRemovedByAccount(long accountId);
+
Pair<Long, Long> getCountAndTotalByPool(long poolId);
Pair<Long, Long> getNonDestroyedCountAndTotalByPool(long poolId);
diff --git
a/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java
b/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java
index 3c818e4..663a5f5 100644
--- a/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java
@@ -97,6 +97,13 @@ public class VolumeDaoImpl extends GenericDaoBase<VolumeVO,
Long> implements Vol
}
@Override
+ public List<VolumeVO> findIncludingRemovedByAccount(long accountId) {
+ SearchCriteria<VolumeVO> sc = AllFieldsSearch.create();
+ sc.setParameters("accountId", accountId);
+ return listIncludingRemovedBy(sc);
+ }
+
+ @Override
public List<VolumeVO> findByInstance(long id) {
SearchCriteria<VolumeVO> sc = AllFieldsSearch.create();
sc.setParameters("instanceId", id);
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 bd49c05..f1adf0a 100755
--- a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@ -715,7 +715,7 @@ public class SnapshotManagerImpl extends
MutualExclusiveIdsManagerBase implement
@Override
public boolean deleteSnapshotDirsForAccount(long accountId) {
- List<VolumeVO> volumes = _volsDao.findByAccount(accountId);
+ List<VolumeVO> volumes =
_volsDao.findIncludingRemovedByAccount(accountId);
// The above call will list only non-destroyed volumes.
// So call this method before marking the volumes as destroyed.
// i.e Call them before the VMs for those volumes are destroyed.