From 35e008df6c551b2a0de3e7b175c738b4342eae31 Mon Sep 17 00:00:00 2001 From: SowjanyaPatha Date: Sun, 12 Aug 2018 18:47:03 +0530 Subject: [PATCH] CLOUDSTACK-10223 Snapshots are not getting deleted when domain is deleted (#2399) --- .../src/main/java/com/cloud/storage/dao/VolumeDao.java | 2 ++ .../src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java | 7 +++++++ .../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 eb5e41a8c65..51d46a06963 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, StateDao findByAccount(long accountId); + List findIncludingRemovedByAccount(long accountId); + Pair getCountAndTotalByPool(long poolId); Pair 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 3c818e4526a..663a5f5cfc8 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 @@ -96,6 +96,13 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol return listBy(sc); } + @Override + public List findIncludingRemovedByAccount(long accountId) { + SearchCriteria sc = AllFieldsSearch.create(); + sc.setParameters("accountId", accountId); + return listIncludingRemovedBy(sc); + } + @Override public List findByInstance(long id) { SearchCriteria sc = AllFieldsSearch.create(); 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 bd49c05f43e..f1adf0ae271 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 volumes = _volsDao.findByAccount(accountId); + List 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.