From c48c3edfbcbe843fa384b4c35d92d140d39a59db Mon Sep 17 00:00:00 2001 From: alena Date: Thu, 16 Jun 2011 13:54:16 -0700 Subject: [PATCH] bug 10271: don't include removed records when search for local storage pool status 10217: resolved fixed --- server/src/com/cloud/agent/manager/AgentManagerImpl.java | 2 +- server/src/com/cloud/server/ManagementServerImpl.java | 2 +- server/src/com/cloud/storage/StorageManagerImpl.java | 2 +- server/src/com/cloud/storage/dao/StoragePoolHostDao.java | 4 +++- .../com/cloud/storage/dao/StoragePoolHostDaoImpl.java | 9 ++++++++- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index 59d38576b34..42275cf17af 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -592,7 +592,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { AgentAttache attache = findAttache(hostId); // Get storage pool host mappings here because they can be removed as a part of handleDisconnect later - List pools = _storagePoolHostDao.listByHostId(hostId); + List pools = _storagePoolHostDao.listByHostIdIncludingRemoved(hostId); try { diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index ad8d835aebf..08cd136e7c9 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -4174,7 +4174,7 @@ public class ManagementServerImpl implements ManagementServer { public boolean checkIfMaintenable(long hostId) { // get the poolhostref record - List poolHostRecordSet = _poolHostDao.listByHostId(hostId); + List poolHostRecordSet = _poolHostDao.listByHostIdIncludingRemoved(hostId); if (poolHostRecordSet != null) { // the above list has only 1 record diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 3fcba30b65b..05ce8245212 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1446,7 +1446,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag @Override public boolean delPoolFromHost(long hostId) { - List poolHosts = _poolHostDao.listByHostId(hostId); + List poolHosts = _poolHostDao.listByHostIdIncludingRemoved(hostId); for (StoragePoolHostVO poolHost : poolHosts) { s_logger.debug("Deleting pool " + poolHost.getPoolId() + " from host " + hostId); _poolHostDao.remove(poolHost.getId()); diff --git a/server/src/com/cloud/storage/dao/StoragePoolHostDao.java b/server/src/com/cloud/storage/dao/StoragePoolHostDao.java index 4e4b5273455..93b72dfbb95 100644 --- a/server/src/com/cloud/storage/dao/StoragePoolHostDao.java +++ b/server/src/com/cloud/storage/dao/StoragePoolHostDao.java @@ -28,7 +28,7 @@ import com.cloud.utils.db.GenericDao; public interface StoragePoolHostDao extends GenericDao { public List listByPoolId(long id); - public List listByHostId(long hostId); + public List listByHostIdIncludingRemoved(long hostId); public StoragePoolHostVO findByPoolHost(long poolId, long hostId); @@ -39,4 +39,6 @@ public interface StoragePoolHostDao extends GenericDao public void deletePrimaryRecordsForHost(long hostId); public void deleteStoragePoolHostDetails(long hostId, long poolId); + + List listByHostId(long hostId); } diff --git a/server/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java b/server/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java index 501029d78a5..b740aa402f2 100644 --- a/server/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java +++ b/server/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java @@ -78,11 +78,18 @@ public class StoragePoolHostDaoImpl extends GenericDaoBase listByHostId(long hostId) { + public List listByHostIdIncludingRemoved(long hostId) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host_id", hostId); return listIncludingRemovedBy(sc); } + + @Override + public List listByHostId(long hostId) { + SearchCriteria sc = HostSearch.create(); + sc.setParameters("host_id", hostId); + return listBy(sc); + } @Override public StoragePoolHostVO findByPoolHost(long poolId, long hostId) {