diff --git a/engine/schema/src/com/cloud/vm/dao/VMInstanceDao.java b/engine/schema/src/com/cloud/vm/dao/VMInstanceDao.java index 1e4c8b66c0e..1d522dc6204 100644 --- a/engine/schema/src/com/cloud/vm/dao/VMInstanceDao.java +++ b/engine/schema/src/com/cloud/vm/dao/VMInstanceDao.java @@ -104,7 +104,7 @@ public interface VMInstanceDao extends GenericDao, StateDao< List listVmsMigratingFromHost(Long hostId); - public Long countRunningByHostId(long hostId); + public Long countActiveByHostId(long hostId); Pair, Map> listClusterIdsInZoneByVmCount(long zoneId, long accountId); diff --git a/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java index 3eabbdb7499..be0e3668e7a 100644 --- a/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java @@ -87,7 +87,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem protected SearchBuilder HostNameSearch; protected SearchBuilder HostNameAndZoneSearch; protected GenericSearchBuilder FindIdsOfVirtualRoutersByAccount; - protected GenericSearchBuilder CountRunningByHost; + protected GenericSearchBuilder CountActiveByHost; protected GenericSearchBuilder CountRunningByAccount; protected SearchBuilder NetworkTypeSearch; protected GenericSearchBuilder DistinctHostNameSearch; @@ -231,11 +231,11 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem FindIdsOfVirtualRoutersByAccount.and("state", FindIdsOfVirtualRoutersByAccount.entity().getState(), SearchCriteria.Op.NIN); FindIdsOfVirtualRoutersByAccount.done(); - CountRunningByHost = createSearchBuilder(Long.class); - CountRunningByHost.select(null, Func.COUNT, null); - CountRunningByHost.and("host", CountRunningByHost.entity().getHostId(), SearchCriteria.Op.EQ); - CountRunningByHost.and("state", CountRunningByHost.entity().getState(), SearchCriteria.Op.EQ); - CountRunningByHost.done(); + CountActiveByHost = createSearchBuilder(Long.class); + CountActiveByHost.select(null, Func.COUNT, null); + CountActiveByHost.and("host", CountActiveByHost.entity().getHostId(), SearchCriteria.Op.EQ); + CountActiveByHost.and("state", CountActiveByHost.entity().getState(), SearchCriteria.Op.IN); + CountActiveByHost.done(); CountRunningByAccount = createSearchBuilder(Long.class); CountRunningByAccount.select(null, Func.COUNT, null); @@ -530,10 +530,10 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem } @Override - public Long countRunningByHostId(long hostId) { - SearchCriteria sc = CountRunningByHost.create(); + public Long countActiveByHostId(long hostId) { + SearchCriteria sc = CountActiveByHost.create(); sc.setParameters("host", hostId); - sc.setParameters("state", State.Running); + sc.setParameters("state", State.Running, State.Starting, State.Stopping, State.Migrating); return customSearch(sc, null).get(0); } diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java index 2eee865e14d..f8a0e70e457 100644 --- a/server/src/com/cloud/capacity/CapacityManagerImpl.java +++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java @@ -1052,7 +1052,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager, @Override public boolean checkIfHostReachMaxGuestLimit(Host host) { - Long vmCount = _vmDao.countRunningByHostId(host.getId()); + Long vmCount = _vmDao.countActiveByHostId(host.getId()); HypervisorType hypervisorType = host.getHypervisorType(); String hypervisorVersion = host.getHypervisorVersion(); Long maxGuestLimit = _hypervisorCapabilitiesDao.getMaxGuestsLimit(hypervisorType, hypervisorVersion);