diff --git a/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java b/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java index 1c1c00a4fee..0bf743b92d3 100644 --- a/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java +++ b/server/src/com/cloud/storage/dao/SnapshotDaoImpl.java @@ -163,7 +163,7 @@ public class SnapshotDaoImpl extends GenericDaoBase implements CountSnapshotsByAccount = createSearchBuilder(Long.class); CountSnapshotsByAccount.select(null, Func.COUNT, null); CountSnapshotsByAccount.and("account", CountSnapshotsByAccount.entity().getAccountId(), SearchCriteria.Op.EQ); - CountSnapshotsByAccount.and("removed", CountSnapshotsByAccount.entity().getRemoved(), SearchCriteria.Op.NNULL); + CountSnapshotsByAccount.and("removed", CountSnapshotsByAccount.entity().getRemoved(), SearchCriteria.Op.NULL); CountSnapshotsByAccount.done(); } diff --git a/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java b/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java index 57097a6c7bc..cb8e4cf97de 100755 --- a/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java +++ b/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java @@ -286,7 +286,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem CountTemplatesByAccount = createSearchBuilder(Long.class); CountTemplatesByAccount.select(null, Func.COUNT, null); CountTemplatesByAccount.and("account", CountTemplatesByAccount.entity().getAccountId(), SearchCriteria.Op.EQ); - CountTemplatesByAccount.and("removed", CountTemplatesByAccount.entity().getRemoved(), SearchCriteria.Op.NNULL); + CountTemplatesByAccount.and("removed", CountTemplatesByAccount.entity().getRemoved(), SearchCriteria.Op.NULL); CountTemplatesByAccount.done(); return result; diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index 0af44b46c6b..5c4bab41670 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -793,13 +793,14 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag for (DomainVO domainChild : domainChildren) { long domainCount = updateDomainResourceCount(domainChild.getId(), type); count = count + domainCount; // add the child domain count to parent domain count - - List accounts = _accountDao.findActiveAccountsForDomain(domainChild.getId()); - for (AccountVO account : accounts) { - long accountCount = updateAccountResourceCount(account.getId(), type); - count = count + accountCount; // add account's resource count to parent domain count - } } + + List accounts = _accountDao.findActiveAccountsForDomain(domain.getId()); + for (AccountVO account : accounts) { + long accountCount = updateAccountResourceCount(account.getId(), type); + count = count + accountCount; // add account's resource count to parent domain count + } + _resourceCountDao.setDomainCount(domainId, type, count); } catch (Exception e) { throw new CloudRuntimeException("Failed to update resource count for domain with Id " + domainId); diff --git a/server/src/com/cloud/user/dao/AccountDaoImpl.java b/server/src/com/cloud/user/dao/AccountDaoImpl.java index b2045ff83c0..ad34a188dd0 100755 --- a/server/src/com/cloud/user/dao/AccountDaoImpl.java +++ b/server/src/com/cloud/user/dao/AccountDaoImpl.java @@ -66,7 +66,7 @@ public class AccountDaoImpl extends GenericDaoBase implements A DomainAccountsSearch = createSearchBuilder(); DomainAccountsSearch.and("domainId", DomainAccountsSearch.entity().getDomainId(), SearchCriteria.Op.EQ); - DomainAccountsSearch.and("removed", DomainAccountsSearch.entity().getRemoved(), SearchCriteria.Op.NNULL); + DomainAccountsSearch.and("removed", DomainAccountsSearch.entity().getRemoved(), SearchCriteria.Op.NULL); DomainAccountsSearch.done(); CleanupSearch = createSearchBuilder();