diff --git a/server/src/com/cloud/host/dao/HostDao.java b/server/src/com/cloud/host/dao/HostDao.java old mode 100644 new mode 100755 index f7e4bef5d66..ff27b84e5ae --- a/server/src/com/cloud/host/dao/HostDao.java +++ b/server/src/com/cloud/host/dao/HostDao.java @@ -165,5 +165,7 @@ public interface HostDao extends GenericDao { long countRoutingHostsByDataCenter(long dcId); - List listSecondaryStorageHosts(long dataCenterId); + List listSecondaryStorageHosts(long dataCenterId); + + List listByInAllStatus(Type type, Long clusterId, Long podId, long dcId); } diff --git a/server/src/com/cloud/host/dao/HostDaoImpl.java b/server/src/com/cloud/host/dao/HostDaoImpl.java old mode 100644 new mode 100755 index 6d95cb5e68a..5c8515f14e0 --- a/server/src/com/cloud/host/dao/HostDaoImpl.java +++ b/server/src/com/cloud/host/dao/HostDaoImpl.java @@ -332,6 +332,23 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao return listBy(sc); } + @Override + public List listByInAllStatus(Host.Type type, Long clusterId, Long podId, long dcId) { + SearchCriteria sc = TypePodDcStatusSearch.create(); + if ( type != null ) { + sc.setParameters("type", type.toString()); + } + if (clusterId != null) { + sc.setParameters("cluster", clusterId); + } + if (podId != null ) { + sc.setParameters("pod", podId); + } + sc.setParameters("dc", dcId); + + return listBy(sc); + } + @Override public List listBy(Long clusterId, Long podId, long dcId) { SearchCriteria sc = TypePodDcStatusSearch.create(); diff --git a/server/src/com/cloud/storage/listener/StoragePoolMonitor.java b/server/src/com/cloud/storage/listener/StoragePoolMonitor.java index 045789bb32c..5652915c214 100755 --- a/server/src/com/cloud/storage/listener/StoragePoolMonitor.java +++ b/server/src/com/cloud/storage/listener/StoragePoolMonitor.java @@ -32,22 +32,27 @@ import com.cloud.exception.ConnectionException; import com.cloud.host.HostVO; import com.cloud.host.Status; import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.server.ManagementService; import com.cloud.storage.OCFS2Manager; import com.cloud.storage.StorageManagerImpl; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.dao.StoragePoolDao; +import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.component.Inject; public class StoragePoolMonitor implements Listener { private static final Logger s_logger = Logger.getLogger(StoragePoolMonitor.class); private final StorageManagerImpl _storageManager; private final StoragePoolDao _poolDao; - @Inject OCFS2Manager _ocfs2Mgr; + OCFS2Manager _ocfs2Mgr; public StoragePoolMonitor(StorageManagerImpl mgr, StoragePoolDao poolDao) { this._storageManager = mgr; this._poolDao = poolDao; + + ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name); + this._ocfs2Mgr = locator.getManager(OCFS2Manager.class); }