From a651b9f993f0122a2ab5ac6515a38f7290485794 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Thu, 28 Nov 2019 09:02:27 +0000 Subject: [PATCH] server: Capacity check should take vms in Migrating state into calculation --- .../src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java | 2 +- .../main/java/com/cloud/capacity/CapacityManagerImpl.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java b/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java index 405e023f10a0..7ab26fd2de38 100755 --- a/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java @@ -416,7 +416,7 @@ public List listUpByHostIdTypes(long hostid, Type... types) { public List listUpByHostId(Long hostId) { SearchCriteria sc = HostUpSearch.create(); sc.setParameters("host", hostId); - sc.setParameters("states", new Object[] {State.Starting, State.Running}); + sc.setParameters("states", new Object[] {State.Starting, State.Running, State.Stopping, State.Migrating}); return listBy(sc); } diff --git a/server/src/main/java/com/cloud/capacity/CapacityManagerImpl.java b/server/src/main/java/com/cloud/capacity/CapacityManagerImpl.java index a7fee9603a07..b0121ca612d2 100644 --- a/server/src/main/java/com/cloud/capacity/CapacityManagerImpl.java +++ b/server/src/main/java/com/cloud/capacity/CapacityManagerImpl.java @@ -590,6 +590,12 @@ public void updateCapacityForHost(final Host host) { s_logger.debug("Found " + vms.size() + " VMs on host " + host.getId()); } + final List vosMigrating = _vmDao.listVmsMigratingFromHost(host.getId()); + if (s_logger.isDebugEnabled()) { + s_logger.debug("Found " + vosMigrating.size() + " VMs are Migrating from host " + host.getId()); + } + vms.addAll(vosMigrating); + ClusterVO cluster = _clusterDao.findById(host.getClusterId()); ClusterDetailsVO clusterDetailCpu = _clusterDetailsDao.findDetail(cluster.getId(), "cpuOvercommitRatio"); ClusterDetailsVO clusterDetailRam = _clusterDetailsDao.findDetail(cluster.getId(), "memoryOvercommitRatio");