From 30bb5587d2bc1dd9a26cc1216023f390614f7b1e Mon Sep 17 00:00:00 2001 From: Priyank Parihar Date: Thu, 5 May 2016 15:30:09 +0530 Subject: [PATCH] CLOUDSTACK-9610: Disabled Host Keeps Being up status after unmanging cluster. (cherry picked from commit 4b165f1b8f0781299ba955c8425a32e15869a1d1) Signed-off-by: Rohit Yadav --- .../com/cloud/resource/ResourceManager.java | 2 ++ .../cloud/resource/ResourceManagerImpl.java | 18 +++++++++++++++++- .../resource/MockResourceManagerImpl.java | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-) mode change 100644 => 100755 engine/components-api/src/com/cloud/resource/ResourceManager.java mode change 100644 => 100755 server/src/com/cloud/resource/ResourceManagerImpl.java mode change 100644 => 100755 server/test/com/cloud/resource/MockResourceManagerImpl.java diff --git a/engine/components-api/src/com/cloud/resource/ResourceManager.java b/engine/components-api/src/com/cloud/resource/ResourceManager.java old mode 100644 new mode 100755 index 849387e598a..7783fa139a9 --- a/engine/components-api/src/com/cloud/resource/ResourceManager.java +++ b/engine/components-api/src/com/cloud/resource/ResourceManager.java @@ -97,6 +97,8 @@ public interface ResourceManager extends ResourceService { public List listAllUpAndEnabledHosts(Host.Type type, Long clusterId, Long podId, long dcId); + public List listAllHosts(final Host.Type type, final Long clusterId, final Long podId, final long dcId); + public List listAllHostsInCluster(long clusterId); public List listHostsInClusterByStatus(long clusterId, Status status); diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java old mode 100644 new mode 100755 index b1994264c15..899ad213c74 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -1086,7 +1086,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager, try { cluster.setManagedState(Managed.ManagedState.PrepareUnmanaged); _clusterDao.update(cluster.getId(), cluster); - List hosts = listAllUpAndEnabledHosts(Host.Type.Routing, cluster.getId(), cluster.getPodId(), cluster.getDataCenterId()); + List hosts = listAllHosts(Host.Type.Routing, cluster.getId(), cluster.getPodId(), cluster.getDataCenterId()); for (final HostVO host : hosts) { if (host.getType().equals(Host.Type.Routing) && !host.getStatus().equals(Status.Down) && !host.getStatus().equals(Status.Disconnected) && !host.getStatus().equals(Status.Up) && !host.getStatus().equals(Status.Alert)) { @@ -2494,6 +2494,22 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager, return sc.list(); } + @Override + public List listAllHosts(final Type type, final Long clusterId, final Long podId, final long dcId) { + final QueryBuilder sc = QueryBuilder.create(HostVO.class); + if (type != null) { + sc.and(sc.entity().getType(), Op.EQ, type); + } + if (clusterId != null) { + sc.and(sc.entity().getClusterId(), Op.EQ, clusterId); + } + if (podId != null) { + sc.and(sc.entity().getPodId(), Op.EQ, podId); + } + sc.and(sc.entity().getDataCenterId(), Op.EQ, dcId); + return sc.list(); + } + @Override public List listAllUpAndEnabledNonHAHosts(final Type type, final Long clusterId, final Long podId, final long dcId) { final String haTag = _haMgr.getHaTag(); diff --git a/server/test/com/cloud/resource/MockResourceManagerImpl.java b/server/test/com/cloud/resource/MockResourceManagerImpl.java old mode 100644 new mode 100755 index 6e6d66fe18f..e293f2d5400 --- a/server/test/com/cloud/resource/MockResourceManagerImpl.java +++ b/server/test/com/cloud/resource/MockResourceManagerImpl.java @@ -359,6 +359,11 @@ public class MockResourceManagerImpl extends ManagerBase implements ResourceMana return null; } + @Override + public List listAllHosts(final Type type, final Long clusterId, final Long podId, final long dcId) { + return null; + } + /* (non-Javadoc) * @see com.cloud.resource.ResourceManager#listAllHostsInCluster(long) */