From a1193149a074e85a6c343bd369d58ff94fb47955 Mon Sep 17 00:00:00 2001 From: frank Date: Thu, 29 Sep 2011 11:58:41 -0700 Subject: [PATCH] Bug 11522 - New agent manager renamce updateResourceState to resourceStateTransitTo --- .../com/cloud/agent/manager/AgentMonitor.java | 2 +- server/src/com/cloud/host/dao/HostDaoImpl.java | 14 +++++++++++--- .../com/cloud/resource/ResourceManager.java | 2 +- .../cloud/resource/ResourceManagerImpl.java | 18 +++++++++--------- .../secondary/SecondaryStorageListener.java | 3 --- .../cloud/cluster/CheckPointManagerTest.java | 12 ++++++++++++ 6 files changed, 34 insertions(+), 17 deletions(-) mode change 100644 => 100755 server/test/com/cloud/cluster/CheckPointManagerTest.java diff --git a/server/src/com/cloud/agent/manager/AgentMonitor.java b/server/src/com/cloud/agent/manager/AgentMonitor.java index 51643dfb0b1..1eb5aab1dff 100755 --- a/server/src/com/cloud/agent/manager/AgentMonitor.java +++ b/server/src/com/cloud/agent/manager/AgentMonitor.java @@ -153,7 +153,7 @@ public class AgentMonitor extends Thread implements Listener { List vosMigrating = _vmDao.listVmsMigratingFromHost(hostId); if (vos.isEmpty() && vosMigrating.isEmpty()) { _alertMgr.sendAlert(AlertManager.ALERT_TYPE_HOST, host.getDataCenterId(), host.getPodId(), "Migration Complete for host " + hostDesc, "Host [" + hostDesc + "] is ready for maintenance"); - _resourceMgr.updateResourceState(host, ResourceState.Event.InternalEnterMaintenance, _msId); + _resourceMgr.resourceStateTransitTo(host, ResourceState.Event.InternalEnterMaintenance, _msId); } } } diff --git a/server/src/com/cloud/host/dao/HostDaoImpl.java b/server/src/com/cloud/host/dao/HostDaoImpl.java index 96b2461c936..410179ffe3e 100755 --- a/server/src/com/cloud/host/dao/HostDaoImpl.java +++ b/server/src/com/cloud/host/dao/HostDaoImpl.java @@ -132,6 +132,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao TypePodDcStatusSearch.and("dc", entity.getDataCenterId(), SearchCriteria.Op.EQ); TypePodDcStatusSearch.and("cluster", entity.getClusterId(), SearchCriteria.Op.EQ); TypePodDcStatusSearch.and("status", entity.getStatus(), SearchCriteria.Op.EQ); + TypePodDcStatusSearch.and("resourceState", entity.getResourceState(), SearchCriteria.Op.EQ); TypePodDcStatusSearch.done(); MsStatusSearch = createSearchBuilder(); @@ -155,6 +156,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao TypeDcStatusSearch.and("type", TypeDcStatusSearch.entity().getType(), SearchCriteria.Op.EQ); TypeDcStatusSearch.and("dc", TypeDcStatusSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ); TypeDcStatusSearch.and("status", TypeDcStatusSearch.entity().getStatus(), SearchCriteria.Op.EQ); + TypeDcStatusSearch.and("resourceState", TypeDcStatusSearch.entity().getState(), SearchCriteria.Op.EQ); TypeDcStatusSearch.done(); IdStatusSearch = createSearchBuilder(); @@ -223,6 +225,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao DirectlyConnectedSearch.and("resource", DirectlyConnectedSearch.entity().getResource(), SearchCriteria.Op.NNULL); DirectlyConnectedSearch.and("ms", DirectlyConnectedSearch.entity().getManagementServerId(), SearchCriteria.Op.EQ); DirectlyConnectedSearch.and("statuses", DirectlyConnectedSearch.entity().getStatus(), SearchCriteria.Op.EQ); + DirectlyConnectedSearch.and("resourceState", DirectlyConnectedSearch.entity().getResource(), SearchCriteria.Op.NOTIN); DirectlyConnectedSearch.done(); UnmanagedDirectConnectSearch = createSearchBuilder(); @@ -374,7 +377,8 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao @Override public List findDirectlyConnectedHosts() { - SearchCriteria sc = DirectlyConnectedSearch.create(); + SearchCriteria sc = DirectlyConnectedSearch.create(); + sc.setParameters("resourceState", ResourceState.Disabled); return search(sc, null); } @@ -384,7 +388,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao txn.start(); SearchCriteria sc = UnmanagedDirectConnectSearch.create(); sc.setParameters("lastPinged", lastPingSecondsAfter); - sc.setParameters("resourceStates", ResourceState.ErrorInMaintenance, ResourceState.Maintenance, ResourceState.PrepareForMaintenance); + sc.setParameters("resourceStates", ResourceState.ErrorInMaintenance, ResourceState.Maintenance, ResourceState.PrepareForMaintenance, ResourceState.Disabled); sc.setJoinParameters("ClusterManagedSearch", "managed", Managed.ManagedState.Managed); List hosts = lockRows(sc, new Filter(HostVO.class, "clusterId", true, 0L, limit), true); @@ -422,7 +426,6 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao public void markHostsAsDisconnected(long msId, long lastPing) { SearchCriteria sc = MsStatusSearch.create(); sc.setParameters("ms", msId); - sc.setParameters("resourceState", ResourceState.ErrorInMaintenance, ResourceState.Maintenance, ResourceState.PrepareForMaintenance); HostVO host = createForUpdate(); host.setLastPinged(lastPing); @@ -457,6 +460,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao } sc.setParameters("dc", dcId); sc.setParameters("status", Status.Up.toString()); + sc.setParameters("resourceState", ResourceState.Enabled.toString()); return listBy(sc); } @@ -505,6 +509,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao hostSearch.and("dc", entity.getDataCenterId(), SearchCriteria.Op.EQ); hostSearch.and("cluster", entity.getClusterId(), SearchCriteria.Op.EQ); hostSearch.and("status", entity.getStatus(), SearchCriteria.Op.EQ); + hostSearch.and("resourceState", entity.getState(), SearchCriteria.Op.EQ); hostSearch.join("hostTagSearch", hostTagSearch, entity.getId(), tagEntity.getHostId(), JoinBuilder.JoinType.INNER); SearchCriteria sc = hostSearch.create(); @@ -518,6 +523,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao } sc.setParameters("dc", dcId); sc.setParameters("status", Status.Up.toString()); + sc.setParameters("resourceState", ResourceState.Enabled.toString()); return listBy(sc); } @@ -549,6 +555,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("type", type.toString()); sc.setParameters("dc", dcId); sc.setParameters("status", Status.Up.toString()); + sc.setParameters("resourceState", ResourceState.Enabled.toString()); return listBy(sc); } @@ -864,6 +871,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao return customSearch(sc, null); } + /*TODO: this is used by mycloud, check if it needs resource state Enabled */ @Override public long countRoutingHostsByDataCenter(long dcId) { SearchCriteria sc = CountRoutingByDc.create(); diff --git a/server/src/com/cloud/resource/ResourceManager.java b/server/src/com/cloud/resource/ResourceManager.java index c03a009fee4..4f5b0d11906 100755 --- a/server/src/com/cloud/resource/ResourceManager.java +++ b/server/src/com/cloud/resource/ResourceManager.java @@ -74,7 +74,7 @@ public interface ResourceManager { public boolean executeUserRequest(long hostId, ResourceState.Event event) throws AgentUnavailableException; - boolean updateResourceState(Host host, Event event, long msId) throws NoTransitionException; + boolean resourceStateTransitTo(Host host, Event event, long msId) throws NoTransitionException; boolean umanageHost(long hostId); diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index d535014529d..33b9df661d9 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -718,7 +718,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma } try { - updateResourceState(host, ResourceState.Event.DeleteHost, _nodeId); + resourceStateTransitTo(host, ResourceState.Event.DeleteHost, _nodeId); } catch (NoTransitionException e) { s_logger.debug("Cannot transmit host " + host.getId() + "to Enabled state", e); } @@ -974,7 +974,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma } @Override - public boolean updateResourceState(Host host, ResourceState.Event event, long msId) throws NoTransitionException { + public boolean resourceStateTransitTo(Host host, ResourceState.Event event, long msId) throws NoTransitionException { ResourceState currentState = host.getResourceState(); ResourceState nextState = currentState.getNextState(event); if (nextState == null) { @@ -993,7 +993,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma } try { - updateResourceState(host, ResourceState.Event.AdminAskMaintenace, _nodeId); + resourceStateTransitTo(host, ResourceState.Event.AdminAskMaintenace, _nodeId); } catch (NoTransitionException e) { String err = "Cannot transimit resource state of host " + host.getId() + " to " + ResourceState.Maintenance; s_logger.debug(err, e); @@ -1396,12 +1396,12 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma try { /* Agent goes to Connecting status */ _agentMgr.agentStatusTransitTo(host, Status.Event.AgentConnected, _nodeId); - updateResourceState(host, ResourceState.Event.InternalCreated, _nodeId); + resourceStateTransitTo(host, ResourceState.Event.InternalCreated, _nodeId); } catch (Exception e) { s_logger.debug("Cannot transmit host " + host.getId() + " to Creating state", e); _agentMgr.agentStatusTransitTo(host, Status.Event.Error, _nodeId); try { - updateResourceState(host, ResourceState.Event.Error, _nodeId); + resourceStateTransitTo(host, ResourceState.Event.Error, _nodeId); } catch (NoTransitionException e1) { s_logger.debug("Cannot transmit host " + host.getId() + "to Error state", e); } @@ -1457,7 +1457,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma /* Change agent status to Alert */ _agentMgr.agentStatusTransitTo(host, Status.Event.AgentDisconnected, _nodeId); try { - updateResourceState(host, ResourceState.Event.Error, _nodeId); + resourceStateTransitTo(host, ResourceState.Event.Error, _nodeId); } catch (NoTransitionException e) { s_logger.debug("Cannot transmit host " + host.getId() + "to Disabled state", e); } @@ -1671,7 +1671,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma } try { - updateResourceState(host, ResourceState.Event.AdminCancelMaintenance, _nodeId); + resourceStateTransitTo(host, ResourceState.Event.AdminCancelMaintenance, _nodeId); _agentMgr.disconnectWithoutInvestigation(hostId, Status.Event.ResetRequested); return true; } catch (NoTransitionException e) { @@ -1720,7 +1720,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma return true; } - updateResourceState(host, ResourceState.Event.AdminCancelMaintenance, _nodeId); + resourceStateTransitTo(host, ResourceState.Event.AdminCancelMaintenance, _nodeId); _agentMgr.disconnectWithoutInvestigation(hostId, Status.Event.AgentDisconnected); return true; } catch (NoTransitionException e) { @@ -1803,7 +1803,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma return false; } else { try { - return updateResourceState(host, ResourceState.Event.UnableToMigrate, _nodeId); + return resourceStateTransitTo(host, ResourceState.Event.UnableToMigrate, _nodeId); } catch (NoTransitionException e) { s_logger.debug("No next resource state for host " + host.getId() + " while current state is " + host.getResourceState() + " with event " + ResourceState.Event.UnableToMigrate, e); return false; diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageListener.java b/server/src/com/cloud/storage/secondary/SecondaryStorageListener.java index fe7b2cccd2d..dfd6b46403d 100755 --- a/server/src/com/cloud/storage/secondary/SecondaryStorageListener.java +++ b/server/src/com/cloud/storage/secondary/SecondaryStorageListener.java @@ -72,7 +72,6 @@ public class SecondaryStorageListener implements Listener { @Override public void processConnect(HostVO agent, StartupCommand cmd, boolean forRebalance) { - if ((cmd instanceof StartupStorageCommand) ) { StartupStorageCommand scmd = (StartupStorageCommand)cmd; if (scmd.getResourceType() == Storage.StorageResourceType.SECONDARY_STORAGE ) { @@ -90,8 +89,6 @@ public class SecondaryStorageListener implements Listener { return; } return; - - } @Override diff --git a/server/test/com/cloud/cluster/CheckPointManagerTest.java b/server/test/com/cloud/cluster/CheckPointManagerTest.java old mode 100644 new mode 100755 index fd932c5ebed..ac2dd041441 --- a/server/test/com/cloud/cluster/CheckPointManagerTest.java +++ b/server/test/com/cloud/cluster/CheckPointManagerTest.java @@ -379,6 +379,18 @@ public class CheckPointManagerTest extends TestCase { @Override public boolean isAgentRebalanceEnabled() { return false; + } + + @Override + public Boolean propagateResourceEvent(long agentId, com.cloud.resource.ResourceState.Event event) throws AgentUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean executeResourceUserRequest(long hostId, com.cloud.resource.ResourceState.Event event) throws AgentUnavailableException { + // TODO Auto-generated method stub + return false; } }