Bug 11522 - New agent manager

call SearchCriteriaService interface instead of SearchCriteria2 instance
This commit is contained in:
frank 2011-10-06 10:32:07 -07:00
parent 2b0afe505d
commit 24b82a7a89
11 changed files with 34 additions and 23 deletions

View File

@ -49,6 +49,7 @@ import com.cloud.utils.db.ConnectionConcierge;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteriaService;
import com.cloud.utils.time.InaccurateClock;
import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.dao.VMInstanceDao;
@ -143,7 +144,7 @@ public class AgentMonitor extends Thread implements Listener {
_agentMgr.disconnectWithInvestigation(agentId, Event.PingTimeout);
}
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getResourceState(), Op.IN, ResourceState.PrepareForMaintenance, ResourceState.ErrorInMaintenance);
List<HostVO> hosts = sc.list();

View File

@ -73,6 +73,7 @@ import com.cloud.utils.component.Inject;
import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteriaService;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.exception.CloudRuntimeException;
@ -712,7 +713,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
public void startRebalanceAgents() {
s_logger.debug("Management server " + _nodeId + " is asking other peers to rebalance their agents");
List<ManagementServerHostVO> allMS = _mshostDao.listBy(ManagementServerHost.State.Up);
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getManagementServerId(), Op.NNULL);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing);
List<HostVO> allManagedAgents = sc.list();

View File

@ -76,6 +76,7 @@ import com.cloud.utils.db.ConnectionConcierge;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteriaService;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.events.SubscriptionMgr;
import com.cloud.utils.exception.CloudRuntimeException;
@ -622,7 +623,7 @@ public class ClusterManagerImpl implements ClusterManager {
//initiate agent lb task will be scheduled and executed only once, and only when number of agents loaded exceeds _connectedAgentsThreshold
if (_agentLBEnabled && !_agentLbHappened) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getManagementServerId(), Op.NNULL);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing);
List<HostVO> allManagedRoutingAgents = sc.list();

View File

@ -37,6 +37,7 @@ import com.cloud.host.dao.HostDao;
import com.cloud.utils.component.Inject;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteriaService;
@Local(value=AgentLoadBalancerPlanner.class)
@ -69,7 +70,7 @@ public class ClusterBasedAgentLoadBalancerPlanner implements AgentLoadBalancerPl
@Override
public List<HostVO> getHostsToRebalance(long msId, int avLoad) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing);
sc.addAnd(sc.getEntity().getManagementServerId(), Op.EQ, msId);
List<HostVO> allHosts = sc.list();

View File

@ -40,6 +40,7 @@ import com.cloud.resource.ResourceManager;
import com.cloud.utils.component.Inject;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteriaService;
public abstract class AbstractInvestigatorImpl implements Investigator {
private static final Logger s_logger = Logger.getLogger(AbstractInvestigatorImpl.class);
@ -74,7 +75,7 @@ public abstract class AbstractInvestigatorImpl implements Investigator {
// Host.status is up and Host.type is routing
protected List<Long> findHostByPod(long podId, Long excludeHostId) {
SearchCriteria2<HostVO, Long> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, Long> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Type.Routing);
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, podId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up);

View File

@ -113,6 +113,7 @@ import com.cloud.utils.db.DB;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteriaService;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException;
@ -1815,7 +1816,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
@Override
public List<HostVO> findDirectlyConnectedHosts() {
/* The resource column is not null for direct connected resource */
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getResource(), Op.NNULL);
sc.addAnd(sc.getEntity().getResourceState(), Op.NIN, ResourceState.Disabled);
return sc.list();
@ -1823,7 +1824,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
@Override
public List<HostVO> listAllUpAndEnabledHosts(Type type, Long clusterId, Long podId, long dcId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
if (type != null) {
sc.addAnd(sc.getEntity().getType(), Op.EQ, type);
}
@ -1841,14 +1842,14 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
@Override
public List<HostVO> listAllHostsInCluster(long clusterId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, clusterId);
return sc.list();
}
@Override
public List<HostVO> listHostsInClusterByStatus(long clusterId, Status status) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, clusterId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, status);
return sc.list();
@ -1856,7 +1857,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
@Override
public List<HostVO> listAllUpAndEnabledHostsInOneZoneByType(Type type, long dcId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, type);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up);
@ -1866,7 +1867,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
@Override
public List<HostVO> listAllHostsInOneZoneByType(Type type, long dcId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, type);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId);
return sc.list();
@ -1874,14 +1875,14 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
@Override
public List<HostVO> listAllHostsInAllZonesByType(Type type) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, type);
return sc.list();
}
@Override
public List<HypervisorType> listAvailHypervisorInZone(Long hostId, Long zoneId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
if (zoneId != null) {
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, zoneId);
}

View File

@ -30,6 +30,7 @@ import com.cloud.utils.Ternary;
import com.cloud.utils.component.Inject;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteriaService;
import com.cloud.utils.exception.CloudRuntimeException;
@Local(value ={OCFS2Manager.class})
@ -131,7 +132,7 @@ public class OCFS2ManagerImpl implements OCFS2Manager, ResourceListener {
throw new CloudRuntimeException("Cannot find cluster for ID " + clusterId);
}
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, clusterId);
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, cluster.getPodId());
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, cluster.getDataCenterId());

View File

@ -101,6 +101,7 @@ import com.cloud.utils.component.Inject;
import com.cloud.utils.db.GlobalLock;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteriaService;
import com.cloud.utils.events.SubscriptionMgr;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
@ -1268,7 +1269,7 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
@Override
public HostVO findSecondaryStorageHost(long dcId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.SecondaryStorage);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId);
List<HostVO> storageHosts = sc.list();
@ -1282,14 +1283,14 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
@Override
public List<HostVO> listSecondaryStorageHostsInAllZones() {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.SecondaryStorage);
return sc.list();
}
@Override
public List<HostVO> listSecondaryStorageHostsInOneZone(long dataCenterId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dataCenterId);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.SecondaryStorage);
return sc.list();
@ -1297,7 +1298,7 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
@Override
public List<HostVO> listLocalSecondaryStorageHostsInOneZone(long dataCenterId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dataCenterId);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.LocalSecondaryStorage);
return sc.list();
@ -1305,7 +1306,7 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
@Override
public List<HostVO> listAllTypesSecondaryStorageHostsInOneZone(long dataCenterId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dataCenterId);
sc.addAnd(sc.getEntity().getType(), Op.IN, Host.Type.LocalSecondaryStorage, Host.Type.SecondaryStorage);
return sc.list();
@ -1313,7 +1314,7 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
@Override
public List<HostVO> listUpSecondaryStorageVmHost(long dcId) {
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, com.cloud.host.Status.Up);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.SecondaryStorageVM);

View File

@ -16,6 +16,7 @@ import com.cloud.utils.component.MockComponentLocator;
import com.cloud.utils.db.DbTestUtils;
import com.cloud.utils.db.SearchCriteria2;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.SearchCriteriaService;
import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.dao.VMInstanceDao;
@ -45,21 +46,21 @@ public class SearchCriteria2Test extends TestCase {
s_logger.debug("Test seraching host:");
SearchCriteria2<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
SearchCriteriaService<HostVO, HostVO> sc = SearchCriteria2.create(HostVO.class);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Disconnected);
List<HostVO> ups = sc.list();
for (HostVO vo : ups) {
s_logger.info("Host id: " + vo.getId() + " is Disconnected");
}
SearchCriteria2<VMInstanceVO, VMInstanceVO> sc1 = SearchCriteria2.create(VMInstanceVO.class);
SearchCriteriaService<VMInstanceVO, VMInstanceVO> sc1 = SearchCriteria2.create(VMInstanceVO.class);
sc1.addAnd(sc1.getEntity().getState(), Op.EQ, VirtualMachine.State.Running);
List<VMInstanceVO> vms = sc1.list();
for (VMInstanceVO vm : vms) {
s_logger.info("Vm name:" + vm.getInstanceName());
}
SearchCriteria2<HostVO, Long> sc3 = SearchCriteria2.create(HostVO.class, Long.class);
SearchCriteriaService<HostVO, Long> sc3 = SearchCriteria2.create(HostVO.class, Long.class);
sc3.selectField(sc3.getEntity().getId());
sc3.addAnd(sc3.getEntity().getStatus(), Op.EQ, Status.Disconnected);
sc3.addAnd(sc3.getEntity().getType(), Op.EQ, Host.Type.Routing);

View File

@ -117,6 +117,7 @@ public class SearchCriteria2<T, K> implements SearchCriteriaService<T, K>, Metho
return _selects == null || _selects.size() == 0;
}
@Override
public T getEntity() {
return (T) _entity;
}

View File

@ -8,4 +8,5 @@ public interface SearchCriteriaService<T, K> {
public void selectField(Object... useless);
public void addAnd(Object useless, Op op, Object...values);
public List<K> list();
public T getEntity();
}