Changed SearchCriteria2 to GenericQueryBuilder to reflect the same placement

This commit is contained in:
Alex Huang 2013-09-27 16:57:25 -07:00
parent e2988902c9
commit e8cac2c5d8
45 changed files with 642 additions and 664 deletions

View File

@ -20,14 +20,14 @@ import org.apache.cloudstack.api.Identity;
import org.apache.cloudstack.api.InternalIdentity; import org.apache.cloudstack.api.InternalIdentity;
public interface VirtualRouterProvider extends InternalIdentity, Identity { public interface VirtualRouterProvider extends InternalIdentity, Identity {
public enum VirtualRouterProviderType { public enum Type {
VirtualRouter, VirtualRouter,
ElasticLoadBalancerVm, ElasticLoadBalancerVm,
VPCVirtualRouter, VPCVirtualRouter,
InternalLbVm InternalLbVm
} }
public VirtualRouterProviderType getType(); public Type getType();
public boolean isEnabled(); public boolean isEnabled();

View File

@ -22,12 +22,12 @@ import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElem
import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd; import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.utils.component.PluggableService; import com.cloud.utils.component.PluggableService;
public interface VirtualRouterElementService extends PluggableService{ public interface VirtualRouterElementService extends PluggableService{
VirtualRouterProvider configure(ConfigureVirtualRouterElementCmd cmd); VirtualRouterProvider configure(ConfigureVirtualRouterElementCmd cmd);
VirtualRouterProvider addElement(Long nspId, VirtualRouterProviderType providerType); VirtualRouterProvider addElement(Long nspId, Type providerType);
VirtualRouterProvider getCreatedElement(long id); VirtualRouterProvider getCreatedElement(long id);
List<? extends VirtualRouterProvider> searchForVirtualRouterElement(ListVirtualRouterElementsCmd cmd); List<? extends VirtualRouterProvider> searchForVirtualRouterElement(ListVirtualRouterElementsCmd cmd);
} }

View File

@ -36,7 +36,7 @@ import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.element.VirtualRouterElementService; import com.cloud.network.element.VirtualRouterElementService;
import com.cloud.user.Account; import com.cloud.user.Account;
@ -70,15 +70,15 @@ public class CreateVirtualRouterElementCmd extends BaseAsyncCreateCmd {
return nspId; return nspId;
} }
public VirtualRouterProviderType getProviderType() { public Type getProviderType() {
if (providerType != null) { if (providerType != null) {
if (providerType.equalsIgnoreCase(VirtualRouterProviderType.VirtualRouter.toString())) { if (providerType.equalsIgnoreCase(Type.VirtualRouter.toString())) {
return VirtualRouterProviderType.VirtualRouter; return Type.VirtualRouter;
} else if (providerType.equalsIgnoreCase(VirtualRouterProviderType.VPCVirtualRouter.toString())) { } else if (providerType.equalsIgnoreCase(Type.VPCVirtualRouter.toString())) {
return VirtualRouterProviderType.VPCVirtualRouter; return Type.VPCVirtualRouter;
} else throw new InvalidParameterValueException("Invalid providerType specified"); } else throw new InvalidParameterValueException("Invalid providerType specified");
} }
return VirtualRouterProviderType.VirtualRouter; return Type.VirtualRouter;
} }
///////////////////////////////////////////////////// /////////////////////////////////////////////////////

View File

@ -1449,7 +1449,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl
List<Long> behindAgents = findAgentsBehindOnPing(); List<Long> behindAgents = findAgentsBehindOnPing();
for (Long agentId : behindAgents) { for (Long agentId : behindAgents) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getId(), Op.EQ, agentId); sc.and(sc.entity().getId(), Op.EQ, agentId);
HostVO h = sc.find(); HostVO h = sc.find();
if (h != null) { if (h != null) {
ResourceState resourceState = h.getResourceState(); ResourceState resourceState = h.getResourceState();
@ -1471,7 +1471,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl
} }
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getResourceState(), Op.IN, ResourceState.PrepareForMaintenance, ResourceState.ErrorInMaintenance); sc.and(sc.entity().getResourceState(), Op.IN, ResourceState.PrepareForMaintenance, ResourceState.ErrorInMaintenance);
List<HostVO> hosts = sc.list(); List<HostVO> hosts = sc.list();
for (HostVO host : hosts) { for (HostVO host : hosts) {

View File

@ -87,9 +87,8 @@ import com.cloud.serializer.GsonHelper;
import com.cloud.utils.DateUtil; import com.cloud.utils.DateUtil;
import com.cloud.utils.Profiler; import com.cloud.utils.Profiler;
import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.Transaction; import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.nio.Link; import com.cloud.utils.nio.Link;
@ -783,9 +782,9 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
public void startRebalanceAgents() { public void startRebalanceAgents() {
s_logger.debug("Management server " + _nodeId + " is asking other peers to rebalance their agents"); s_logger.debug("Management server " + _nodeId + " is asking other peers to rebalance their agents");
List<ManagementServerHostVO> allMS = _mshostDao.listBy(ManagementServerHost.State.Up); List<ManagementServerHostVO> allMS = _mshostDao.listBy(ManagementServerHost.State.Up);
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getManagementServerId(), Op.NNULL); sc.and(sc.entity().getManagementServerId(), Op.NNULL);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); sc.and(sc.entity().getType(), Op.EQ, Host.Type.Routing);
List<HostVO> allManagedAgents = sc.list(); List<HostVO> allManagedAgents = sc.list();
int avLoad = 0; int avLoad = 0;
@ -1369,13 +1368,13 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
profilerAgentLB.start(); profilerAgentLB.start();
//initiate agent lb task will be scheduled and executed only once, and only when number of agents loaded exceeds _connectedAgentsThreshold //initiate agent lb task will be scheduled and executed only once, and only when number of agents loaded exceeds _connectedAgentsThreshold
if (EnableLB.value() && !_agentLbHappened) { if (EnableLB.value() && !_agentLbHappened) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getManagementServerId(), Op.NNULL); sc.and(sc.entity().getManagementServerId(), Op.NNULL);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); sc.and(sc.entity().getType(), Op.EQ, Host.Type.Routing);
List<HostVO> allManagedRoutingAgents = sc.list(); List<HostVO> allManagedRoutingAgents = sc.list();
sc = GenericQueryBuilder.create(HostVO.class); sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); sc.and(sc.entity().getType(), Op.EQ, Host.Type.Routing);
List<HostVO> allAgents = sc.list(); List<HostVO> allAgents = sc.list();
double allHostsCount = allAgents.size(); double allHostsCount = allAgents.size();
double managedHostsCount = allManagedRoutingAgents.size(); double managedHostsCount = allManagedRoutingAgents.size();

View File

@ -26,7 +26,6 @@ import java.util.Map;
import javax.ejb.Local; import javax.ejb.Local;
import javax.inject.Inject; import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -36,9 +35,8 @@ import com.cloud.host.HostVO;
import com.cloud.host.Status; import com.cloud.host.Status;
import com.cloud.host.dao.HostDao; import com.cloud.host.dao.HostDao;
import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.GenericQueryBuilder; import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
@Component @Component
@Local(value=AgentLoadBalancerPlanner.class) @Local(value=AgentLoadBalancerPlanner.class)
@ -49,9 +47,9 @@ public class ClusterBasedAgentLoadBalancerPlanner extends AdapterBase implements
@Override @Override
public List<HostVO> getHostsToRebalance(long msId, int avLoad) { public List<HostVO> getHostsToRebalance(long msId, int avLoad) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); sc.and(sc.entity().getType(), Op.EQ, Host.Type.Routing);
sc.addAnd(sc.getEntity().getManagementServerId(), Op.EQ, msId); sc.and(sc.entity().getManagementServerId(), Op.EQ, msId);
List<HostVO> allHosts = sc.list(); List<HostVO> allHosts = sc.list();
if (allHosts.size() <= avLoad) { if (allHosts.size() <= avLoad) {
@ -59,9 +57,9 @@ public class ClusterBasedAgentLoadBalancerPlanner extends AdapterBase implements
return null; return null;
} }
sc = GenericQueryBuilder.create(HostVO.class); sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getManagementServerId(), Op.EQ, msId); sc.and(sc.entity().getManagementServerId(), Op.EQ, msId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ, Status.Up);
List<HostVO> directHosts = sc.list(); List<HostVO> directHosts = sc.list();
if (directHosts.isEmpty()) { if (directHosts.isEmpty()) {

View File

@ -51,21 +51,21 @@ public class StorageNetworkIpRangeDaoImpl extends GenericDaoBase<StorageNetworkI
@Override @Override
public List<StorageNetworkIpRangeVO> listByPodId(long podId) { public List<StorageNetworkIpRangeVO> listByPodId(long podId) {
GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class); GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class);
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, podId); sc.and(sc.entity().getPodId(), Op.EQ, podId);
return sc.list(); return sc.list();
} }
@Override @Override
public List<StorageNetworkIpRangeVO> listByRangeId(long rangeId) { public List<StorageNetworkIpRangeVO> listByRangeId(long rangeId) {
GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class); GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class);
sc.addAnd(sc.getEntity().getId(), Op.EQ, rangeId); sc.and(sc.entity().getId(), Op.EQ, rangeId);
return sc.list(); return sc.list();
} }
@Override @Override
public List<StorageNetworkIpRangeVO> listByDataCenterId(long dcId) { public List<StorageNetworkIpRangeVO> listByDataCenterId(long dcId) {
GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class); GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ, dcId);
return sc.list(); return sc.list();
} }

View File

@ -20,12 +20,12 @@ import java.util.List;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.element.VirtualRouterProviderVO; import com.cloud.network.element.VirtualRouterProviderVO;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.GenericDao;
public interface VirtualRouterProviderDao extends GenericDao<VirtualRouterProviderVO, Long> { public interface VirtualRouterProviderDao extends GenericDao<VirtualRouterProviderVO, Long> {
public VirtualRouterProviderVO findByNspIdAndType(long nspId, VirtualRouterProviderType type); public VirtualRouterProviderVO findByNspIdAndType(long nspId, Type type);
public List<VirtualRouterProviderVO> listByEnabledAndType(boolean enabled, VirtualRouterProviderType type); public List<VirtualRouterProviderVO> listByEnabledAndType(boolean enabled, Type type);
public VirtualRouterProviderVO findByIdAndEnabledAndType(long id, boolean enabled, VirtualRouterProviderType type); public VirtualRouterProviderVO findByIdAndEnabledAndType(long id, boolean enabled, Type type);
public List<VirtualRouterProviderVO> listByType(VirtualRouterProviderType type); public List<VirtualRouterProviderVO> listByType(Type type);
} }

View File

@ -23,7 +23,7 @@ import javax.ejb.Local;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.cloud.network.element.VirtualRouterProviderVO; import com.cloud.network.element.VirtualRouterProviderVO;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.utils.db.DB; import com.cloud.utils.db.DB;
import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchBuilder;
@ -46,7 +46,7 @@ public class VirtualRouterProviderDaoImpl extends GenericDaoBase<VirtualRouterPr
} }
@Override @Override
public VirtualRouterProviderVO findByNspIdAndType(long nspId, VirtualRouterProviderType type) { public VirtualRouterProviderVO findByNspIdAndType(long nspId, Type type) {
SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create(); SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create();
sc.setParameters("nsp_id", nspId); sc.setParameters("nsp_id", nspId);
sc.setParameters("type", type); sc.setParameters("type", type);
@ -54,7 +54,7 @@ public class VirtualRouterProviderDaoImpl extends GenericDaoBase<VirtualRouterPr
} }
@Override @Override
public List<VirtualRouterProviderVO> listByEnabledAndType(boolean enabled, VirtualRouterProviderType type) { public List<VirtualRouterProviderVO> listByEnabledAndType(boolean enabled, Type type) {
SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create(); SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create();
sc.setParameters("enabled", enabled); sc.setParameters("enabled", enabled);
sc.setParameters("type", type); sc.setParameters("type", type);
@ -62,7 +62,7 @@ public class VirtualRouterProviderDaoImpl extends GenericDaoBase<VirtualRouterPr
} }
@Override @Override
public VirtualRouterProviderVO findByIdAndEnabledAndType(long id, boolean enabled, VirtualRouterProviderType type) { public VirtualRouterProviderVO findByIdAndEnabledAndType(long id, boolean enabled, Type type) {
SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create(); SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create();
sc.setParameters("id", id); sc.setParameters("id", id);
sc.setParameters("enabled", enabled); sc.setParameters("enabled", enabled);
@ -71,7 +71,7 @@ public class VirtualRouterProviderDaoImpl extends GenericDaoBase<VirtualRouterPr
} }
@Override @Override
public List<VirtualRouterProviderVO> listByType(VirtualRouterProviderType type) { public List<VirtualRouterProviderVO> listByType(Type type) {
SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create(); SearchCriteria<VirtualRouterProviderVO> sc = AllFieldsSearch.create();
sc.setParameters("type", type); sc.setParameters("type", type);
return listBy(sc); return listBy(sc);

View File

@ -42,7 +42,7 @@ public class VirtualRouterProviderVO implements VirtualRouterProvider {
@Column(name="type") @Column(name="type")
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private VirtualRouterProviderType type; private Type type;
@Column(name="enabled") @Column(name="enabled")
private boolean enabled; private boolean enabled;
@ -60,7 +60,7 @@ public class VirtualRouterProviderVO implements VirtualRouterProvider {
this.uuid = UUID.randomUUID().toString(); this.uuid = UUID.randomUUID().toString();
} }
public VirtualRouterProviderVO(long nspId, VirtualRouterProviderType type) { public VirtualRouterProviderVO(long nspId, Type type) {
this.nspId = nspId; this.nspId = nspId;
this.type = type; this.type = type;
this.uuid = UUID.randomUUID().toString(); this.uuid = UUID.randomUUID().toString();
@ -81,7 +81,7 @@ public class VirtualRouterProviderVO implements VirtualRouterProvider {
} }
@Override @Override
public VirtualRouterProviderType getType() { public Type getType() {
return this.type; return this.type;
} }
@ -106,7 +106,7 @@ public class VirtualRouterProviderVO implements VirtualRouterProvider {
this.id = id; this.id = id;
} }
public void setType(VirtualRouterProviderType type) { public void setType(Type type) {
this.type = type; this.type = type;
} }

View File

@ -47,7 +47,7 @@ public class AccountDetailsDaoImpl extends GenericDaoBase<AccountDetailVO, Long>
@Override @Override
public Map<String, String> findDetails(long accountId) { public Map<String, String> findDetails(long accountId) {
GenericQueryBuilder<AccountDetailVO, AccountDetailVO> sc = GenericQueryBuilder.create(AccountDetailVO.class); GenericQueryBuilder<AccountDetailVO, AccountDetailVO> sc = GenericQueryBuilder.create(AccountDetailVO.class);
sc.addAnd(sc.getEntity().getAccountId(), Op.EQ, accountId); sc.and(sc.entity().getAccountId(), Op.EQ, accountId);
List<AccountDetailVO> results = sc.list(); List<AccountDetailVO> results = sc.list();
Map<String, String> details = new HashMap<String, String>(results.size()); Map<String, String> details = new HashMap<String, String>(results.size());
for (AccountDetailVO r : results) { for (AccountDetailVO r : results) {
@ -73,8 +73,8 @@ public class AccountDetailsDaoImpl extends GenericDaoBase<AccountDetailVO, Long>
@Override @Override
public AccountDetailVO findDetail(long accountId, String name) { public AccountDetailVO findDetail(long accountId, String name) {
GenericQueryBuilder<AccountDetailVO, AccountDetailVO> sc = GenericQueryBuilder.create(AccountDetailVO.class); GenericQueryBuilder<AccountDetailVO, AccountDetailVO> sc = GenericQueryBuilder.create(AccountDetailVO.class);
sc.addAnd(sc.getEntity().getAccountId(), Op.EQ, accountId); sc.and(sc.entity().getAccountId(), Op.EQ, accountId);
sc.addAnd(sc.getEntity().getName(), Op.EQ, name); sc.and(sc.entity().getName(), Op.EQ, name);
return sc.find(); return sc.find();
} }

View File

@ -35,12 +35,11 @@ import com.cloud.storage.StoragePoolStatus;
import com.cloud.utils.db.DB; import com.cloud.utils.db.DB;
import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.GenericSearchBuilder;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.utils.db.SearchCriteria.Func;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.Transaction; import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
@ -316,10 +315,10 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase<StoragePoolVO, Long>
public List<StoragePoolVO> findZoneWideStoragePoolsByTags(long dcId, String[] tags) { public List<StoragePoolVO> findZoneWideStoragePoolsByTags(long dcId, String[] tags) {
List<StoragePoolVO> storagePools = null; List<StoragePoolVO> storagePools = null;
if (tags == null || tags.length == 0) { if (tags == null || tags.length == 0) {
GenericQueryBuilder<StoragePoolVO, StoragePoolVO> sc = GenericQueryBuilder.create(StoragePoolVO.class); QueryBuilder<StoragePoolVO> sc = QueryBuilder.create(StoragePoolVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ,Status.Up);
sc.addAnd(sc.getEntity().getScope(), Op.EQ, ScopeType.ZONE); sc.and(sc.entity().getScope(), Op.EQ,ScopeType.ZONE);
return sc.list(); return sc.list();
} else { } else {
Map<String, String> details = tagsToDetails(tags); Map<String, String> details = tagsToDetails(tags);
@ -421,11 +420,11 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase<StoragePoolVO, Long>
@Override @Override
public List<StoragePoolVO> findZoneWideStoragePoolsByHypervisor(long dataCenterId, HypervisorType hypervisorType) { public List<StoragePoolVO> findZoneWideStoragePoolsByHypervisor(long dataCenterId, HypervisorType hypervisorType) {
GenericQueryBuilder<StoragePoolVO, StoragePoolVO> sc = GenericQueryBuilder.create(StoragePoolVO.class); QueryBuilder<StoragePoolVO> sc = QueryBuilder.create(StoragePoolVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dataCenterId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dataCenterId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ,Status.Up);
sc.addAnd(sc.getEntity().getScope(), Op.EQ, ScopeType.ZONE); sc.and(sc.entity().getScope(), Op.EQ,ScopeType.ZONE);
sc.addAnd(sc.getEntity().getHypervisor(), Op.EQ, hypervisorType); sc.and(sc.entity().getHypervisor(), Op.EQ,hypervisorType);
return sc.list(); return sc.list();
} }
} }

View File

@ -18,35 +18,46 @@
*/ */
package org.apache.cloudstack.storage.cache.manager; package org.apache.cloudstack.storage.cache.manager;
import com.cloud.configuration.Config; import java.util.ArrayList;
import com.cloud.storage.DataStoreRole; import java.util.Collections;
import com.cloud.utils.NumbersUtil; import java.util.List;
import com.cloud.utils.component.Manager; import java.util.Map;
import com.cloud.utils.concurrency.NamedThreadFactory; import java.util.Random;
import com.cloud.utils.db.GlobalLock; import java.util.concurrent.ExecutionException;
import com.cloud.utils.db.SearchCriteria; import java.util.concurrent.Executors;
import com.cloud.utils.db.GenericQueryBuilder; import java.util.concurrent.ScheduledExecutorService;
import com.cloud.utils.db.GenericQueryBuilder; import java.util.concurrent.TimeUnit;
import com.cloud.utils.exception.CloudRuntimeException;
import org.apache.cloudstack.engine.subsystem.api.storage.*; import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionService;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectInStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event; import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageCacheManager;
import org.apache.cloudstack.framework.async.AsyncCallFuture; import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.storage.cache.allocator.StorageCacheAllocator; import org.apache.cloudstack.storage.cache.allocator.StorageCacheAllocator;
import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager; import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager;
import org.apache.cloudstack.storage.datastore.db.ImageStoreVO; import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
import org.apache.log4j.Logger; import com.cloud.configuration.Config;
import com.cloud.storage.DataStoreRole;
import javax.inject.Inject; import com.cloud.utils.NumbersUtil;
import javax.naming.ConfigurationException; import com.cloud.utils.component.Manager;
import com.cloud.utils.concurrency.NamedThreadFactory;
import java.util.*; import com.cloud.utils.db.GlobalLock;
import java.util.concurrent.ExecutionException; import com.cloud.utils.db.QueryBuilder;
import java.util.concurrent.Executors; import com.cloud.utils.db.SearchCriteria;
import java.util.concurrent.ScheduledExecutorService; import com.cloud.utils.exception.CloudRuntimeException;
import java.util.concurrent.TimeUnit;
public class StorageCacheManagerImpl implements StorageCacheManager, Manager { public class StorageCacheManagerImpl implements StorageCacheManager, Manager {
private static final Logger s_logger = Logger.getLogger(StorageCacheManagerImpl.class); private static final Logger s_logger = Logger.getLogger(StorageCacheManagerImpl.class);
@ -79,8 +90,8 @@ public class StorageCacheManagerImpl implements StorageCacheManager, Manager {
} }
protected List<DataStore> getCacheStores() { protected List<DataStore> getCacheStores() {
GenericQueryBuilder<ImageStoreVO, ImageStoreVO> sc = GenericQueryBuilder.create(ImageStoreVO.class); QueryBuilder<ImageStoreVO> sc = QueryBuilder.create(ImageStoreVO.class);
sc.addAnd(sc.getEntity().getRole(), SearchCriteria.Op.EQ, DataStoreRole.ImageCache); sc.and(sc.entity().getRole(), SearchCriteria.Op.EQ,DataStoreRole.ImageCache);
List<ImageStoreVO> imageStoreVOs = sc.list(); List<ImageStoreVO> imageStoreVOs = sc.list();
List<DataStore> stores = new ArrayList<DataStore>(); List<DataStore> stores = new ArrayList<DataStore>();
for (ImageStoreVO vo : imageStoreVOs) { for (ImageStoreVO vo : imageStoreVOs) {
@ -232,7 +243,7 @@ public class StorageCacheManagerImpl implements StorageCacheManager, Manager {
@Override @Override
public DataObject createCacheObject(DataObject data, Scope scope) { public DataObject createCacheObject(DataObject data, Scope scope) {
DataStore cacheStore = this.getCacheStorage(scope); DataStore cacheStore = getCacheStorage(scope);
if (cacheStore == null) if (cacheStore == null)
{ {
@ -244,7 +255,7 @@ public class StorageCacheManagerImpl implements StorageCacheManager, Manager {
@Override @Override
public DataObject getCacheObject(DataObject data, Scope scope) { public DataObject getCacheObject(DataObject data, Scope scope) {
DataStore cacheStore = this.getCacheStorage(scope); DataStore cacheStore = getCacheStorage(scope);
DataObject objOnCacheStore = cacheStore.create(data); DataObject objOnCacheStore = cacheStore.create(data);
objOnCacheStore.incRefCount(); objOnCacheStore.incRefCount();
return objOnCacheStore; return objOnCacheStore;

View File

@ -17,27 +17,29 @@
* under the License. * under the License.
*/ */
package org.apache.cloudstack.storage.cache.manager; package org.apache.cloudstack.storage.cache.manager;
import com.cloud.configuration.Config;
import com.cloud.utils.DateUtil;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import org.apache.cloudstack.engine.subsystem.api.storage.*;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
import org.apache.commons.lang.math.NumberUtils;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.inject.Inject; import javax.inject.Inject;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
import com.cloud.configuration.Config;
import com.cloud.utils.DateUtil;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria;
public class StorageCacheReplacementAlgorithmLRU implements StorageCacheReplacementAlgorithm { public class StorageCacheReplacementAlgorithmLRU implements StorageCacheReplacementAlgorithm {
@ -72,33 +74,33 @@ public class StorageCacheReplacementAlgorithmLRU implements StorageCacheReplacem
cal.add(Calendar.DAY_OF_MONTH, -unusedTimeInterval.intValue()); cal.add(Calendar.DAY_OF_MONTH, -unusedTimeInterval.intValue());
Date bef = cal.getTime(); Date bef = cal.getTime();
GenericQueryBuilder<TemplateDataStoreVO, TemplateDataStoreVO> sc = GenericQueryBuilder.create(TemplateDataStoreVO.class); QueryBuilder<TemplateDataStoreVO> sc = QueryBuilder.create(TemplateDataStoreVO.class);
sc.addAnd(sc.getEntity().getLastUpdated(), SearchCriteria.Op.LT, bef); sc.and(sc.entity().getLastUpdated(), SearchCriteria.Op.LT, bef);
sc.addAnd(sc.getEntity().getState(), SearchCriteria.Op.EQ, ObjectInDataStoreStateMachine.State.Ready); sc.and(sc.entity().getState(), SearchCriteria.Op.EQ,ObjectInDataStoreStateMachine.State.Ready);
sc.addAnd(sc.getEntity().getDataStoreId(), SearchCriteria.Op.EQ, store.getId()); sc.and(sc.entity().getDataStoreId(), SearchCriteria.Op.EQ,store.getId());
sc.addAnd(sc.getEntity().getDataStoreRole(), SearchCriteria.Op.EQ, store.getRole()); sc.and(sc.entity().getDataStoreRole(), SearchCriteria.Op.EQ,store.getRole());
sc.addAnd(sc.getEntity().getRefCnt(), SearchCriteria.Op.EQ, 0); sc.and(sc.entity().getRefCnt(), SearchCriteria.Op.EQ,0);
TemplateDataStoreVO template = sc.find(); TemplateDataStoreVO template = sc.find();
if (template != null) { if (template != null) {
return templateFactory.getTemplate(template.getTemplateId(), store); return templateFactory.getTemplate(template.getTemplateId(), store);
} }
GenericQueryBuilder<VolumeDataStoreVO, VolumeDataStoreVO> volSc = GenericQueryBuilder.create(VolumeDataStoreVO.class); QueryBuilder<VolumeDataStoreVO> volSc = QueryBuilder.create(VolumeDataStoreVO.class);
volSc.addAnd(volSc.getEntity().getLastUpdated(), SearchCriteria.Op.LT, bef); volSc.and(volSc.entity().getLastUpdated(), SearchCriteria.Op.LT, bef);
volSc.addAnd(volSc.getEntity().getState(), SearchCriteria.Op.EQ, ObjectInDataStoreStateMachine.State.Ready); volSc.and(volSc.entity().getState(), SearchCriteria.Op.EQ,ObjectInDataStoreStateMachine.State.Ready);
volSc.addAnd(volSc.getEntity().getDataStoreId(), SearchCriteria.Op.EQ, store.getId()); volSc.and(volSc.entity().getDataStoreId(), SearchCriteria.Op.EQ,store.getId());
volSc.addAnd(volSc.getEntity().getRefCnt(), SearchCriteria.Op.EQ, 0); volSc.and(volSc.entity().getRefCnt(), SearchCriteria.Op.EQ,0);
VolumeDataStoreVO volume = volSc.find(); VolumeDataStoreVO volume = volSc.find();
if (volume != null) { if (volume != null) {
return volumeFactory.getVolume(volume.getVolumeId(), store); return volumeFactory.getVolume(volume.getVolumeId(), store);
} }
GenericQueryBuilder<SnapshotDataStoreVO, SnapshotDataStoreVO> snapshotSc = GenericQueryBuilder.create(SnapshotDataStoreVO.class); QueryBuilder<SnapshotDataStoreVO> snapshotSc = QueryBuilder.create(SnapshotDataStoreVO.class);
snapshotSc.addAnd(snapshotSc.getEntity().getLastUpdated(), SearchCriteria.Op.LT, bef); snapshotSc.and(snapshotSc.entity().getLastUpdated(), SearchCriteria.Op.LT, bef);
snapshotSc.addAnd(snapshotSc.getEntity().getState(), SearchCriteria.Op.EQ, ObjectInDataStoreStateMachine.State.Ready); snapshotSc.and(snapshotSc.entity().getState(), SearchCriteria.Op.EQ,ObjectInDataStoreStateMachine.State.Ready);
snapshotSc.addAnd(snapshotSc.getEntity().getDataStoreId(), SearchCriteria.Op.EQ, store.getId()); snapshotSc.and(snapshotSc.entity().getDataStoreId(), SearchCriteria.Op.EQ,store.getId());
snapshotSc.addAnd(snapshotSc.getEntity().getRole(), SearchCriteria.Op.EQ, store.getRole()); snapshotSc.and(snapshotSc.entity().getRole(), SearchCriteria.Op.EQ,store.getRole());
snapshotSc.addAnd(snapshotSc.getEntity().getRefCnt(), SearchCriteria.Op.EQ, 0); snapshotSc.and(snapshotSc.entity().getRefCnt(), SearchCriteria.Op.EQ,0);
SnapshotDataStoreVO snapshot = snapshotSc.find(); SnapshotDataStoreVO snapshot = snapshotSc.find();
if (snapshot != null) { if (snapshot != null) {
return snapshotFactory.getSnapshot(snapshot.getSnapshotId(), store); return snapshotFactory.getSnapshot(snapshot.getSnapshotId(), store);

View File

@ -22,14 +22,21 @@ import java.util.Date;
import javax.inject.Inject; import javax.inject.Inject;
import org.apache.cloudstack.engine.subsystem.api.storage.*; import org.apache.log4j.Logger;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectInStore;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
import org.apache.cloudstack.storage.command.CopyCmdAnswer; import org.apache.cloudstack.storage.command.CopyCmdAnswer;
import org.apache.cloudstack.storage.command.CreateObjectAnswer; import org.apache.cloudstack.storage.command.CreateObjectAnswer;
import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager; import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao; import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO; import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
import org.apache.cloudstack.storage.to.SnapshotObjectTO; import org.apache.cloudstack.storage.to.SnapshotObjectTO;
import org.apache.log4j.Logger;
import com.cloud.agent.api.Answer; import com.cloud.agent.api.Answer;
import com.cloud.agent.api.to.DataObjectType; import com.cloud.agent.api.to.DataObjectType;
@ -42,9 +49,8 @@ import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.SnapshotDao; import com.cloud.storage.dao.SnapshotDao;
import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.dao.VolumeDao;
import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException; import com.cloud.utils.fsm.NoTransitionException;
@ -83,19 +89,19 @@ public class SnapshotObject implements SnapshotInfo {
} }
public DataStore getStore() { public DataStore getStore() {
return this.store; return store;
} }
@Override @Override
public SnapshotInfo getParent() { public SnapshotInfo getParent() {
SnapshotDataStoreVO snapStoreVO = this.snapshotStoreDao.findByStoreSnapshot(this.store.getRole(), SnapshotDataStoreVO snapStoreVO = snapshotStoreDao.findByStoreSnapshot(store.getRole(),
this.store.getId(), this.snapshot.getId()); store.getId(), snapshot.getId());
Long parentId = null; Long parentId = null;
if (snapStoreVO != null) { if (snapStoreVO != null) {
parentId = snapStoreVO.getParentSnapshotId(); parentId = snapStoreVO.getParentSnapshotId();
if (parentId != null && parentId != 0) { if (parentId != null && parentId != 0) {
return this.snapshotFactory.getSnapshot(parentId, store); return snapshotFactory.getSnapshot(parentId, store);
} }
} }
@ -104,42 +110,41 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public SnapshotInfo getChild() { public SnapshotInfo getChild() {
GenericQueryBuilder<SnapshotDataStoreVO, SnapshotDataStoreVO> sc = GenericQueryBuilder QueryBuilder<SnapshotDataStoreVO> sc = QueryBuilder.create(SnapshotDataStoreVO.class);
.create(SnapshotDataStoreVO.class); sc.and(sc.entity().getDataStoreId(), Op.EQ,store.getId());
sc.addAnd(sc.getEntity().getDataStoreId(), Op.EQ, this.store.getId()); sc.and(sc.entity().getRole(), Op.EQ,store.getRole());
sc.addAnd(sc.getEntity().getRole(), Op.EQ, this.store.getRole()); sc.and(sc.entity().getState(), Op.NIN, State.Destroying, State.Destroyed, State.Error);
sc.addAnd(sc.getEntity().getState(), Op.NIN, State.Destroying, State.Destroyed, State.Error); sc.and(sc.entity().getParentSnapshotId(), Op.EQ,getId());
sc.addAnd(sc.getEntity().getParentSnapshotId(), Op.EQ, this.getId());
SnapshotDataStoreVO vo = sc.find(); SnapshotDataStoreVO vo = sc.find();
if (vo == null) { if (vo == null) {
return null; return null;
} }
return this.snapshotFactory.getSnapshot(vo.getId(), store); return snapshotFactory.getSnapshot(vo.getId(), store);
} }
@Override @Override
public VolumeInfo getBaseVolume() { public VolumeInfo getBaseVolume() {
return volFactory.getVolume(this.snapshot.getVolumeId()); return volFactory.getVolume(snapshot.getVolumeId());
} }
@Override @Override
public long getId() { public long getId() {
return this.snapshot.getId(); return snapshot.getId();
} }
@Override @Override
public String getUri() { public String getUri() {
return this.snapshot.getUuid(); return snapshot.getUuid();
} }
@Override @Override
public DataStore getDataStore() { public DataStore getDataStore() {
return this.store; return store;
} }
@Override @Override
public Long getSize() { public Long getSize() {
return this.snapshot.getSize(); return snapshot.getSize();
} }
@Override @Override
@ -149,7 +154,7 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public String getUuid() { public String getUuid() {
return this.snapshot.getUuid(); return snapshot.getUuid();
} }
@Override @Override
@ -168,17 +173,17 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public long getAccountId() { public long getAccountId() {
return this.snapshot.getAccountId(); return snapshot.getAccountId();
} }
@Override @Override
public long getVolumeId() { public long getVolumeId() {
return this.snapshot.getVolumeId(); return snapshot.getVolumeId();
} }
@Override @Override
public String getPath() { public String getPath() {
DataObjectInStore objectInStore = this.objectInStoreMgr.findObject(this, getDataStore()); DataObjectInStore objectInStore = objectInStoreMgr.findObject(this, getDataStore());
if (objectInStore != null) { if (objectInStore != null) {
return objectInStore.getInstallPath(); return objectInStore.getInstallPath();
} }
@ -187,60 +192,60 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public String getName() { public String getName() {
return this.snapshot.getName(); return snapshot.getName();
} }
@Override @Override
public Date getCreated() { public Date getCreated() {
return this.snapshot.getCreated(); return snapshot.getCreated();
} }
@Override @Override
public Type getRecurringType() { public Type getRecurringType() {
return this.snapshot.getRecurringType(); return snapshot.getRecurringType();
} }
@Override @Override
public State getState() { public State getState() {
return this.snapshot.getState(); return snapshot.getState();
} }
@Override @Override
public HypervisorType getHypervisorType() { public HypervisorType getHypervisorType() {
return this.snapshot.getHypervisorType(); return snapshot.getHypervisorType();
} }
@Override @Override
public boolean isRecursive() { public boolean isRecursive() {
return this.snapshot.isRecursive(); return snapshot.isRecursive();
} }
@Override @Override
public short getsnapshotType() { public short getsnapshotType() {
return this.snapshot.getsnapshotType(); return snapshot.getsnapshotType();
} }
@Override @Override
public long getDomainId() { public long getDomainId() {
return this.snapshot.getDomainId(); return snapshot.getDomainId();
} }
@Override @Override
public Long getDataCenterId() { public Long getDataCenterId() {
return this.snapshot.getDataCenterId(); return snapshot.getDataCenterId();
} }
public void processEvent(Snapshot.Event event) throws NoTransitionException { public void processEvent(Snapshot.Event event) throws NoTransitionException {
stateMachineMgr.processEvent(this.snapshot, event); stateMachineMgr.processEvent(snapshot, event);
} }
public SnapshotVO getSnapshotVO() { public SnapshotVO getSnapshotVO() {
return this.snapshot; return snapshot;
} }
@Override @Override
public DataTO getTO() { public DataTO getTO() {
DataTO to = this.store.getDriver().getTO(this); DataTO to = store.getDriver().getTO(this);
if (to == null) { if (to == null) {
return new SnapshotObjectTO(this); return new SnapshotObjectTO(this);
} }
@ -250,28 +255,28 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public void processEvent(ObjectInDataStoreStateMachine.Event event, Answer answer) { public void processEvent(ObjectInDataStoreStateMachine.Event event, Answer answer) {
try { try {
SnapshotDataStoreVO snapshotStore = this.snapshotStoreDao.findByStoreSnapshot( SnapshotDataStoreVO snapshotStore = snapshotStoreDao.findByStoreSnapshot(
this.getDataStore().getRole(), this.getDataStore().getId(), this.getId()); getDataStore().getRole(), getDataStore().getId(), getId());
if (answer instanceof CreateObjectAnswer) { if (answer instanceof CreateObjectAnswer) {
SnapshotObjectTO snapshotTO = (SnapshotObjectTO) ((CreateObjectAnswer) answer).getData(); SnapshotObjectTO snapshotTO = (SnapshotObjectTO) ((CreateObjectAnswer) answer).getData();
snapshotStore.setInstallPath(snapshotTO.getPath()); snapshotStore.setInstallPath(snapshotTO.getPath());
this.snapshotStoreDao.update(snapshotStore.getId(), snapshotStore); snapshotStoreDao.update(snapshotStore.getId(), snapshotStore);
} else if (answer instanceof CopyCmdAnswer) { } else if (answer instanceof CopyCmdAnswer) {
SnapshotObjectTO snapshotTO = (SnapshotObjectTO) ((CopyCmdAnswer) answer).getNewData(); SnapshotObjectTO snapshotTO = (SnapshotObjectTO) ((CopyCmdAnswer) answer).getNewData();
snapshotStore.setInstallPath(snapshotTO.getPath()); snapshotStore.setInstallPath(snapshotTO.getPath());
if (snapshotTO.getParentSnapshotPath() == null) { if (snapshotTO.getParentSnapshotPath() == null) {
snapshotStore.setParentSnapshotId(0L); snapshotStore.setParentSnapshotId(0L);
} }
this.snapshotStoreDao.update(snapshotStore.getId(), snapshotStore); snapshotStoreDao.update(snapshotStore.getId(), snapshotStore);
// update side-effect of snapshot operation // update side-effect of snapshot operation
if(snapshotTO.getVolume() != null && snapshotTO.getVolume().getPath() != null) { if(snapshotTO.getVolume() != null && snapshotTO.getVolume().getPath() != null) {
VolumeVO vol = this.volumeDao.findByUuid(snapshotTO.getVolume().getUuid()); VolumeVO vol = volumeDao.findByUuid(snapshotTO.getVolume().getUuid());
if(vol != null) { if(vol != null) {
s_logger.info("Update volume path change due to snapshot operation, volume " + vol.getId() + " path: " s_logger.info("Update volume path change due to snapshot operation, volume " + vol.getId() + " path: "
+ vol.getPath() + "->" + snapshotTO.getVolume().getPath()); + vol.getPath() + "->" + snapshotTO.getVolume().getPath());
vol.setPath(snapshotTO.getVolume().getPath()); vol.setPath(snapshotTO.getVolume().getPath());
this.volumeDao.update(vol.getId(), vol); volumeDao.update(vol.getId(), vol);
} else { } else {
s_logger.error("Cound't find the original volume with uuid: " + snapshotTO.getVolume().getUuid()); s_logger.error("Cound't find the original volume with uuid: " + snapshotTO.getVolume().getUuid());
} }
@ -290,13 +295,13 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public void incRefCount() { public void incRefCount() {
if (this.store == null) { if (store == null) {
return; return;
} }
if (this.store.getRole() == DataStoreRole.Image || this.store.getRole() == DataStoreRole.ImageCache) { if (store.getRole() == DataStoreRole.Image || store.getRole() == DataStoreRole.ImageCache) {
SnapshotDataStoreVO store = snapshotStoreDao.findByStoreSnapshot(this.store.getRole(), this.store.getId(), SnapshotDataStoreVO store = snapshotStoreDao.findByStoreSnapshot(this.store.getRole(), this.store.getId(),
this.getId()); getId());
store.incrRefCnt(); store.incrRefCnt();
store.setLastUpdated(new Date()); store.setLastUpdated(new Date());
snapshotStoreDao.update(store.getId(), store); snapshotStoreDao.update(store.getId(), store);
@ -305,12 +310,12 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public void decRefCount() { public void decRefCount() {
if (this.store == null) { if (store == null) {
return; return;
} }
if (this.store.getRole() == DataStoreRole.Image || this.store.getRole() == DataStoreRole.ImageCache) { if (store.getRole() == DataStoreRole.Image || store.getRole() == DataStoreRole.ImageCache) {
SnapshotDataStoreVO store = snapshotStoreDao.findByStoreSnapshot(this.store.getRole(), this.store.getId(), SnapshotDataStoreVO store = snapshotStoreDao.findByStoreSnapshot(this.store.getRole(), this.store.getId(),
this.getId()); getId());
store.decrRefCnt(); store.decrRefCnt();
store.setLastUpdated(new Date()); store.setLastUpdated(new Date());
snapshotStoreDao.update(store.getId(), store); snapshotStoreDao.update(store.getId(), store);
@ -319,12 +324,12 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public Long getRefCount() { public Long getRefCount() {
if (this.store == null) { if (store == null) {
return null; return null;
} }
if (this.store.getRole() == DataStoreRole.Image || this.store.getRole() == DataStoreRole.ImageCache) { if (store.getRole() == DataStoreRole.Image || store.getRole() == DataStoreRole.ImageCache) {
SnapshotDataStoreVO store = snapshotStoreDao.findByStoreSnapshot(this.store.getRole(), this.store.getId(), SnapshotDataStoreVO store = snapshotStoreDao.findByStoreSnapshot(this.store.getRole(), this.store.getId(),
this.getId()); getId());
return store.getRefCnt(); return store.getRefCnt();
} }
return null; return null;
@ -332,7 +337,7 @@ public class SnapshotObject implements SnapshotInfo {
@Override @Override
public ObjectInDataStoreStateMachine.State getStatus() { public ObjectInDataStoreStateMachine.State getStatus() {
return this.objectInStoreMgr.findObject(this, store).getObjectInStoreState(); return objectInStoreMgr.findObject(this, store).getObjectInStoreState();
} }
@Override @Override

View File

@ -45,8 +45,8 @@ import com.cloud.host.dao.HostDao;
import com.cloud.storage.DataStoreRole; import com.cloud.storage.DataStoreRole;
import com.cloud.storage.ScopeType; import com.cloud.storage.ScopeType;
import com.cloud.utils.db.DB; import com.cloud.utils.db.DB;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.Transaction; import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
@ -220,12 +220,12 @@ public class DefaultEndPointSelector implements EndPointSelector {
} }
private List<HostVO> listUpAndConnectingSecondaryStorageVmHost(Long dcId) { private List<HostVO> listUpAndConnectingSecondaryStorageVmHost(Long dcId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
if (dcId != null) { if (dcId != null) {
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
} }
sc.addAnd(sc.getEntity().getStatus(), Op.IN, com.cloud.host.Status.Up, com.cloud.host.Status.Connecting); sc.and(sc.entity().getStatus(), Op.IN, Status.Up, Status.Connecting);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.SecondaryStorageVM); sc.and(sc.entity().getType(), Op.EQ, Host.Type.SecondaryStorageVM);
return sc.list(); return sc.list();
} }
@ -258,9 +258,9 @@ public class DefaultEndPointSelector implements EndPointSelector {
endPoints.add(RemoteHostEndPoint.getHypervisorHostEndPoint(host.getId(), host.getPrivateIpAddress(), endPoints.add(RemoteHostEndPoint.getHypervisorHostEndPoint(host.getId(), host.getPrivateIpAddress(),
host.getPublicIpAddress())); host.getPublicIpAddress()));
} else if (store.getScope().getScopeType() == ScopeType.CLUSTER) { } else if (store.getScope().getScopeType() == ScopeType.CLUSTER) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, store.getScope().getScopeId()); sc.and(sc.entity().getClusterId(), Op.EQ, store.getScope().getScopeId());
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ, Status.Up);
List<HostVO> hosts = sc.list(); List<HostVO> hosts = sc.list();
for (HostVO host : hosts) { for (HostVO host : hosts) {
endPoints.add(RemoteHostEndPoint.getHypervisorHostEndPoint(host.getId(), host.getPrivateIpAddress(), endPoints.add(RemoteHostEndPoint.getHypervisorHostEndPoint(host.getId(), host.getPrivateIpAddress(),

View File

@ -52,8 +52,8 @@ public class TemplatePrimaryDataStoreDaoImpl extends GenericDaoBase<TemplatePrim
public TemplatePrimaryDataStoreVO findByTemplateIdAndPoolId(long templateId, long poolId) { public TemplatePrimaryDataStoreVO findByTemplateIdAndPoolId(long templateId, long poolId) {
GenericQueryBuilder<TemplatePrimaryDataStoreVO, TemplatePrimaryDataStoreVO> sc = GenericQueryBuilder GenericQueryBuilder<TemplatePrimaryDataStoreVO, TemplatePrimaryDataStoreVO> sc = GenericQueryBuilder
.create(TemplatePrimaryDataStoreVO.class); .create(TemplatePrimaryDataStoreVO.class);
sc.addAnd(sc.getEntity().getTemplateId(), Op.EQ, templateId); sc.and(sc.entity().getTemplateId(), Op.EQ, templateId);
sc.addAnd(sc.getEntity().getPoolId(), Op.EQ, poolId); sc.and(sc.entity().getPoolId(), Op.EQ, poolId);
return sc.find(); return sc.find();
} }
@ -61,9 +61,9 @@ public class TemplatePrimaryDataStoreDaoImpl extends GenericDaoBase<TemplatePrim
public TemplatePrimaryDataStoreVO findByTemplateIdAndPoolIdAndReady(long templateId, long poolId) { public TemplatePrimaryDataStoreVO findByTemplateIdAndPoolIdAndReady(long templateId, long poolId) {
GenericQueryBuilder<TemplatePrimaryDataStoreVO, TemplatePrimaryDataStoreVO> sc = GenericQueryBuilder GenericQueryBuilder<TemplatePrimaryDataStoreVO, TemplatePrimaryDataStoreVO> sc = GenericQueryBuilder
.create(TemplatePrimaryDataStoreVO.class); .create(TemplatePrimaryDataStoreVO.class);
sc.addAnd(sc.getEntity().getTemplateId(), Op.EQ, templateId); sc.and(sc.entity().getTemplateId(), Op.EQ, templateId);
sc.addAnd(sc.getEntity().getPoolId(), Op.EQ, poolId); sc.and(sc.entity().getPoolId(), Op.EQ, poolId);
sc.addAnd(sc.getEntity().getState(), Op.EQ, ObjectInDataStoreStateMachine.State.Ready); sc.and(sc.entity().getState(), Op.EQ, ObjectInDataStoreStateMachine.State.Ready);
return sc.find(); return sc.find();
} }

View File

@ -66,23 +66,21 @@ public class GenericQueryBuilder<T, K> extends SearchBase<T, K> {
_specifiedAttrs.clear(); _specifiedAttrs.clear();
} }
private void setParameters(String conditionName, Object... params) { public void and(Object useless, Op op, Object... values) {
assert _conditions.contains(new Condition(conditionName)) : "Couldn't find " + conditionName;
_params.put(conditionName, params);
}
public void addAnd(Object useless, Op op, Object... values) {
String uuid = UUID.randomUUID().toString(); String uuid = UUID.randomUUID().toString();
constructCondition(uuid, " AND ", _specifiedAttrs.get(0), op); Condition condition = constructCondition(uuid, " AND ", _specifiedAttrs.get(0), op);
setParameters(uuid, values); condition.setPresets(values);
} }
@SuppressWarnings("unchecked")
public List<K> list() { public List<K> list() {
finalize(); finalize();
SearchCriteria sc1 = create();
if (isSelectAll()) { if (isSelectAll()) {
@SuppressWarnings("rawtypes")
SearchCriteria sc1 = create();
return (List<K>)_dao.search(sc1, null); return (List<K>)_dao.search(sc1, null);
} else { } else {
SearchCriteria<K> sc1 = create();
return _dao.customSearch(sc1, null); return _dao.customSearch(sc1, null);
} }
} }
@ -91,60 +89,13 @@ public class GenericQueryBuilder<T, K> extends SearchBase<T, K> {
return _selects == null || _selects.size() == 0; return _selects == null || _selects.size() == 0;
} }
public T getEntity() { @SuppressWarnings("unchecked")
return _entity;
}
public K find() { public K find() {
assert isSelectAll() : "find doesn't support select search";
finalize(); finalize();
@SuppressWarnings("rawtypes")
SearchCriteria sc1 = create(); SearchCriteria sc1 = create();
return (K)_dao.findOneBy(sc1); return (K)_dao.findOneBy(sc1);
} }
public Preset and(Object useless, Op op) {
Condition condition = constructCondition(UUID.randomUUID().toString(), " AND ", _specifiedAttrs.get(0), op);
return new Preset(this, condition);
}
public Preset where(Object useless, Op op) {
return and(useless, op);
}
public Preset left(Object useless, Op op) {
Condition condition = constructCondition(UUID.randomUUID().toString(), " ( ", _specifiedAttrs.get(0), op);
return new Preset(this, condition);
}
public Preset op(Object useless, Op op) {
return left(useless, op);
}
public Preset openParen(Object useless, Op op) {
return left(useless, op);
}
public Preset or(Object useless, Op op) {
Condition condition = constructCondition(UUID.randomUUID().toString(), " OR ", _specifiedAttrs.get(0), op);
return new Preset(this, condition);
}
public class Preset {
GenericQueryBuilder<T, K> builder;
Condition condition;
protected Preset(GenericQueryBuilder<T, K> builder, Condition condition) {
this.builder = builder;
this.condition = condition;
}
public GenericQueryBuilder<T, K> values(Object... params) {
if (condition.op.getParams() > 0 && condition.op.params != params.length) {
throw new RuntimeException("The # of parameters set " + params.length + " does not match # of parameters required by " + condition.op);
}
condition.setPresets(params);
return builder;
}
}
} }

View File

@ -19,6 +19,7 @@ package com.cloud.utils.db;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.UUID;
import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.utils.db.SearchCriteria.Func;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
@ -131,6 +132,11 @@ public class GenericSearchBuilder<T, K> extends SearchBase<T, K> {
return this; return this;
} }
public Preset and(Object useless, Op op) {
Condition condition = constructCondition(UUID.randomUUID().toString(), " AND ", _specifiedAttrs.get(0), op);
return new Preset(this, condition);
}
public GenericSearchBuilder<T, K> and() { public GenericSearchBuilder<T, K> and() {
constructCondition(null, " AND ", null, null); constructCondition(null, " AND ", null, null);
return this; return this;
@ -153,6 +159,10 @@ public class GenericSearchBuilder<T, K> extends SearchBase<T, K> {
return and(name, useless, op); return and(name, useless, op);
} }
public Preset where(Object useless, Op op) {
return and(useless, op);
}
public GenericSearchBuilder<T, K> left(String name, Object useless, Op op) { public GenericSearchBuilder<T, K> left(String name, Object useless, Op op) {
constructCondition(name, " ( ", _specifiedAttrs.get(0), op); constructCondition(name, " ( ", _specifiedAttrs.get(0), op);
return this; return this;
@ -163,10 +173,19 @@ public class GenericSearchBuilder<T, K> extends SearchBase<T, K> {
return this; return this;
} }
public Preset left(Object useless, Op op) {
Condition condition = constructCondition(UUID.randomUUID().toString(), " ( ", _specifiedAttrs.get(0), op);
return new Preset(this, condition);
}
public GenericSearchBuilder<T, K> op(Object useless, Op op, String name) { public GenericSearchBuilder<T, K> op(Object useless, Op op, String name) {
return left(useless, op, name); return left(useless, op, name);
} }
public Preset op(Object useless, Op op) {
return left(useless, op);
}
public GenericSearchBuilder<T, K> op(String name, Object useless, Op op) { public GenericSearchBuilder<T, K> op(String name, Object useless, Op op) {
return left(name, useless, op); return left(name, useless, op);
} }
@ -179,6 +198,10 @@ public class GenericSearchBuilder<T, K> extends SearchBase<T, K> {
return left(name, useless, op); return left(name, useless, op);
} }
public Preset openParen(Object useless, Op op) {
return left(useless, op);
}
public GroupBy<GenericSearchBuilder<T, K>, T, K> groupBy(Object... useless) { public GroupBy<GenericSearchBuilder<T, K>, T, K> groupBy(Object... useless) {
assert _groupBy == null : "Can't do more than one group bys"; assert _groupBy == null : "Can't do more than one group bys";
GroupBy<GenericSearchBuilder<T, K>, T, K> groupBy = new GroupBy<GenericSearchBuilder<T, K>, T, K>(this); GroupBy<GenericSearchBuilder<T, K>, T, K> groupBy = new GroupBy<GenericSearchBuilder<T, K>, T, K>(this);
@ -205,6 +228,11 @@ public class GenericSearchBuilder<T, K> extends SearchBase<T, K> {
return this; return this;
} }
public Preset or(Object useless, Op op) {
Condition condition = constructCondition(UUID.randomUUID().toString(), " OR ", _specifiedAttrs.get(0), op);
return new Preset(this, condition);
}
public GenericSearchBuilder<T, K> join(String name, GenericSearchBuilder<?, ?> builder, Object useless, Object useless2, JoinBuilder.JoinType joinType) { public GenericSearchBuilder<T, K> join(String name, GenericSearchBuilder<?, ?> builder, Object useless, Object useless2, JoinBuilder.JoinType joinType) {
assert _entity != null : "SearchBuilder cannot be modified once it has been setup"; assert _entity != null : "SearchBuilder cannot be modified once it has been setup";
assert _specifiedAttrs.size() == 1 : "You didn't select the attribute."; assert _specifiedAttrs.size() == 1 : "You didn't select the attribute.";
@ -251,4 +279,21 @@ public class GenericSearchBuilder<T, K> extends SearchBase<T, K> {
super.finalize(); super.finalize();
} }
public class Preset {
GenericSearchBuilder<T, K> builder;
Condition condition;
protected Preset(GenericSearchBuilder<T, K> builder, Condition condition) {
this.builder = builder;
this.condition = condition;
}
public GenericSearchBuilder<T, K> values(Object... params) {
if (condition.op.getParams() > 0 && condition.op.params != params.length) {
throw new RuntimeException("The # of parameters set " + params.length + " does not match # of parameters required by " + condition.op);
}
condition.setPresets(params);
return builder;
}
}
} }

View File

@ -85,8 +85,8 @@ public class BareMetalPingServiceImpl extends BareMetalPxeServiceBase implements
@Override @Override
public boolean prepare(VirtualMachineProfile profile, NicProfile pxeNic, DeployDestination dest, ReservationContext context) { public boolean prepare(VirtualMachineProfile profile, NicProfile pxeNic, DeployDestination dest, ReservationContext context) {
GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class); GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class);
sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, BaremetalPxeType.PING.toString()); sc.and(sc.entity().getDeviceType(), Op.EQ, BaremetalPxeType.PING.toString());
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, dest.getPod().getId()); sc.and(sc.entity().getPodId(), Op.EQ, dest.getPod().getId());
BaremetalPxeVO pxeVo = sc.find(); BaremetalPxeVO pxeVo = sc.find();
if (pxeVo == null) { if (pxeVo == null) {
throw new CloudRuntimeException("No PING PXE server found in pod: " + dest.getPod().getId() + ", you need to add it before starting VM"); throw new CloudRuntimeException("No PING PXE server found in pod: " + dest.getPod().getId() + ", you need to add it before starting VM");

View File

@ -18,6 +18,15 @@
// Automatically generated by addcopyright.py at 01/29/2013 // Automatically generated by addcopyright.py at 01/29/2013
package com.cloud.baremetal.networkservice; package com.cloud.baremetal.networkservice;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import com.cloud.baremetal.database.BaremetalDhcpVO; import com.cloud.baremetal.database.BaremetalDhcpVO;
import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.Pod; import com.cloud.dc.Pod;
@ -39,20 +48,15 @@ import com.cloud.network.element.NetworkElement;
import com.cloud.offering.NetworkOffering; import com.cloud.offering.NetworkOffering;
import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.DB; import com.cloud.utils.db.DB;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.Transaction; import com.cloud.utils.db.Transaction;
import com.cloud.vm.*; import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine.Type; import com.cloud.vm.VirtualMachine.Type;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import org.apache.log4j.Logger;
import javax.ejb.Local;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@Local(value = NetworkElement.class) @Local(value = NetworkElement.class)
public class BaremetalDhcpElement extends AdapterBase implements DhcpServiceProvider { public class BaremetalDhcpElement extends AdapterBase implements DhcpServiceProvider {
@ -84,8 +88,8 @@ public class BaremetalDhcpElement extends AdapterBase implements DhcpServiceProv
private boolean canHandle(DeployDestination dest, TrafficType trafficType, GuestType networkType) { private boolean canHandle(DeployDestination dest, TrafficType trafficType, GuestType networkType) {
Pod pod = dest.getPod(); Pod pod = dest.getPod();
if (pod != null && dest.getDataCenter().getNetworkType() == NetworkType.Basic && trafficType == TrafficType.Guest) { if (pod != null && dest.getDataCenter().getNetworkType() == NetworkType.Basic && trafficType == TrafficType.Guest) {
GenericQueryBuilder<BaremetalDhcpVO, BaremetalDhcpVO> sc = GenericQueryBuilder.create(BaremetalDhcpVO.class); QueryBuilder<BaremetalDhcpVO> sc = QueryBuilder.create(BaremetalDhcpVO.class);
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, pod.getId()); sc.and(sc.entity().getPodId(), Op.EQ,pod.getId());
return sc.find() != null; return sc.find() != null;
} }
@ -159,6 +163,7 @@ public class BaremetalDhcpElement extends AdapterBase implements DhcpServiceProv
return true; return true;
} }
@Override
public boolean addDhcpEntry(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, public boolean addDhcpEntry(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest,
ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException { ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
if (vm.getHypervisorType() != HypervisorType.BareMetal || !canHandle(dest, network.getTrafficType(), network.getGuestType())) { if (vm.getHypervisorType() != HypervisorType.BareMetal || !canHandle(dest, network.getTrafficType(), network.getGuestType())) {

View File

@ -313,7 +313,7 @@ public class BaremetalDhcpManagerImpl extends ManagerBase implements BaremetalDh
GenericQueryBuilder<BaremetalDhcpVO, BaremetalDhcpVO> sc = GenericQueryBuilder.create(BaremetalDhcpVO.class); GenericQueryBuilder<BaremetalDhcpVO, BaremetalDhcpVO> sc = GenericQueryBuilder.create(BaremetalDhcpVO.class);
if (cmd.getDeviceType() != null) { if (cmd.getDeviceType() != null) {
sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, cmd.getDeviceType()); sc.and(sc.entity().getDeviceType(), Op.EQ, cmd.getDeviceType());
} }
List<BaremetalDhcpVO> vos = sc.list(); List<BaremetalDhcpVO> vos = sc.list();

View File

@ -88,8 +88,8 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple
public boolean prepare(VirtualMachineProfile profile, NicProfile nic, DeployDestination dest, ReservationContext context) { public boolean prepare(VirtualMachineProfile profile, NicProfile nic, DeployDestination dest, ReservationContext context) {
NetworkVO nwVO = _nwDao.findById(nic.getNetworkId()); NetworkVO nwVO = _nwDao.findById(nic.getNetworkId());
GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class); GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class);
sc.addAnd(sc.getEntity().getDeviceType(), Op.EQ, BaremetalPxeType.KICK_START.toString()); sc.and(sc.entity().getDeviceType(), Op.EQ, BaremetalPxeType.KICK_START.toString());
sc.addAnd(sc.getEntity().getPhysicalNetworkId(), Op.EQ, nwVO.getPhysicalNetworkId()); sc.and(sc.entity().getPhysicalNetworkId(), Op.EQ, nwVO.getPhysicalNetworkId());
BaremetalPxeVO pxeVo = sc.find(); BaremetalPxeVO pxeVo = sc.find();
if (pxeVo == null) { if (pxeVo == null) {
throw new CloudRuntimeException("No kickstart PXE server found in pod: " + dest.getPod().getId() + ", you need to add it before starting VM"); throw new CloudRuntimeException("No kickstart PXE server found in pod: " + dest.getPod().getId() + ", you need to add it before starting VM");

View File

@ -92,7 +92,7 @@ public class BaremetalPxeElement extends AdapterBase implements NetworkElement {
Pod pod = dest.getPod(); Pod pod = dest.getPod();
if (pod != null && dest.getDataCenter().getNetworkType() == NetworkType.Basic && trafficType == TrafficType.Guest) { if (pod != null && dest.getDataCenter().getNetworkType() == NetworkType.Basic && trafficType == TrafficType.Guest) {
GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class); GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class);
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, pod.getId()); sc.and(sc.entity().getPodId(), Op.EQ, pod.getId());
return sc.find() != null; return sc.find() != null;
} }

View File

@ -223,7 +223,7 @@ public class BaremetalPxeManagerImpl extends ManagerBase implements BaremetalPxe
GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class); GenericQueryBuilder<BaremetalPxeVO, BaremetalPxeVO> sc = GenericQueryBuilder.create(BaremetalPxeVO.class);
//TODO: handle both kickstart and PING //TODO: handle both kickstart and PING
//sc.addAnd(sc.getEntity().getPodId(), Op.EQ, vm.getPodIdToDeployIn()); //sc.addAnd(sc.getEntity().getPodId(), Op.EQ, vm.getPodIdToDeployIn());
sc.addAnd(sc.getEntity().getPhysicalNetworkId(), Op.EQ, phy.getId()); sc.and(sc.entity().getPhysicalNetworkId(), Op.EQ, phy.getId());
BaremetalPxeVO pxeVo = sc.find(); BaremetalPxeVO pxeVo = sc.find();
if (pxeVo == null) { if (pxeVo == null) {
throw new CloudRuntimeException("No PXE server found in pod: " + vm.getPodIdToDeployIn() + ", you need to add it before starting VM"); throw new CloudRuntimeException("No PXE server found in pod: " + vm.getPodIdToDeployIn() + ", you need to add it before starting VM");

View File

@ -31,9 +31,9 @@ import javax.naming.ConfigurationException;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.xmlrpc.XmlRpcException; import org.apache.xmlrpc.XmlRpcException;
import com.cloud.configuration.Config;
import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.StartupCommand;
import com.cloud.agent.api.StartupRoutingCommand; import com.cloud.agent.api.StartupRoutingCommand;
import com.cloud.configuration.Config;
import com.cloud.dc.ClusterVO; import com.cloud.dc.ClusterVO;
import com.cloud.dc.dao.ClusterDao; import com.cloud.dc.dao.ClusterDao;
import com.cloud.exception.DiscoveryException; import com.cloud.exception.DiscoveryException;
@ -48,16 +48,14 @@ import com.cloud.resource.ResourceManager;
import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ResourceStateAdapter;
import com.cloud.resource.ServerResource; import com.cloud.resource.ServerResource;
import com.cloud.resource.UnableDeleteHostException; import com.cloud.resource.UnableDeleteHostException;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.ssh.SSHCmdHelper; import com.cloud.utils.ssh.SSHCmdHelper;
@Local(value = Discoverer.class) @Local(value = Discoverer.class)
public class OvmDiscoverer extends DiscovererBase implements Discoverer, public class OvmDiscoverer extends DiscovererBase implements Discoverer, ResourceStateAdapter {
ResourceStateAdapter { private static final Logger s_logger = Logger.getLogger(OvmDiscoverer.class);
private static final Logger s_logger = Logger
.getLogger(OvmDiscoverer.class);
protected String _publicNetworkDevice; protected String _publicNetworkDevice;
protected String _privateNetworkDevice; protected String _privateNetworkDevice;
protected String _guestNetworkDevice; protected String _guestNetworkDevice;
@ -68,14 +66,12 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
ResourceManager _resourceMgr; ResourceManager _resourceMgr;
@Override @Override
public boolean configure(String name, Map<String, Object> params) public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
throws ConfigurationException {
super.configure(name, params); super.configure(name, params);
_publicNetworkDevice = _params.get(Config.OvmPublicNetwork.key()); _publicNetworkDevice = _params.get(Config.OvmPublicNetwork.key());
_privateNetworkDevice = _params.get(Config.OvmPrivateNetwork.key()); _privateNetworkDevice = _params.get(Config.OvmPrivateNetwork.key());
_guestNetworkDevice = _params.get(Config.OvmGuestNetwork.key()); _guestNetworkDevice = _params.get(Config.OvmGuestNetwork.key());
_resourceMgr.registerResourceStateAdapter(this.getClass() _resourceMgr.registerResourceStateAdapter(this.getClass().getSimpleName(), this);
.getSimpleName(), this);
return true; return true;
} }
@ -84,29 +80,25 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
@Override @Override
public boolean stop() { public boolean stop() {
_resourceMgr.unregisterResourceStateAdapter(this.getClass() _resourceMgr.unregisterResourceStateAdapter(this.getClass().getSimpleName());
.getSimpleName());
return super.stop(); return super.stop();
} }
private boolean checkIfExisted(String guid) { private boolean checkIfExisted(String guid) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getGuid(), SearchCriteria.Op.EQ, guid); sc.and(sc.entity().getGuid(), SearchCriteria.Op.EQ, guid);
sc.addAnd(sc.getEntity().getHypervisorType(), SearchCriteria.Op.EQ, sc.and(sc.entity().getHypervisorType(), SearchCriteria.Op.EQ, HypervisorType.Ovm);
HypervisorType.Ovm);
List<HostVO> hosts = sc.list(); List<HostVO> hosts = sc.list();
return !hosts.isEmpty(); return !hosts.isEmpty();
} }
@Override @Override
public Map<? extends ServerResource, Map<String, String>> find(long dcId, public Map<? extends ServerResource, Map<String, String>> find(long dcId, Long podId, Long clusterId, URI url, String username, String password, List<String> hostTags)
Long podId, Long clusterId, URI url, String username, throws DiscoveryException {
String password, List<String> hostTags) throws DiscoveryException {
Connection conn = null; Connection conn = null;
if (!url.getScheme().equals("http")) { if (!url.getScheme().equals("http")) {
String msg = "urlString is not http so we're not taking care of the discovery for this: " String msg = "urlString is not http so we're not taking care of the discovery for this: " + url;
+ url;
s_logger.debug(msg); s_logger.debug(msg);
return null; return null;
} }
@ -123,8 +115,7 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
} }
ClusterVO cluster = _clusterDao.findById(clusterId); ClusterVO cluster = _clusterDao.findById(clusterId);
if (cluster == null if (cluster == null || (cluster.getHypervisorType() != HypervisorType.Ovm)) {
|| (cluster.getHypervisorType() != HypervisorType.Ovm)) {
if (s_logger.isInfoEnabled()) if (s_logger.isInfoEnabled())
s_logger.info("invalid cluster id or cluster is not for Ovm hypervisors"); s_logger.info("invalid cluster id or cluster is not for Ovm hypervisors");
return null; return null;
@ -147,12 +138,10 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
String guid = UUID.nameUUIDFromBytes(hostIp.getBytes()).toString(); String guid = UUID.nameUUIDFromBytes(hostIp.getBytes()).toString();
if (checkIfExisted(guid)) { if (checkIfExisted(guid)) {
throw new CloudRuntimeException("The host " + hostIp throw new CloudRuntimeException("The host " + hostIp + " has been added before");
+ " has been added before");
} }
s_logger.debug("Ovm discover is going to disover host having guid " s_logger.debug("Ovm discover is going to disover host having guid " + guid);
+ guid);
ClusterVO clu = _clusterDao.findById(clusterId); ClusterVO clu = _clusterDao.findById(clusterId);
if (clu.getGuid() == null) { if (clu.getGuid() == null) {
@ -160,22 +149,15 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
_clusterDao.update(clusterId, clu); _clusterDao.update(clusterId, clu);
} }
com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection( com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(hostIp, 22);
hostIp, 22);
sshConnection.connect(null, 60000, 60000); sshConnection.connect(null, 60000, 60000);
sshConnection = SSHCmdHelper.acquireAuthorizedConnection(hostIp, sshConnection = SSHCmdHelper.acquireAuthorizedConnection(hostIp, username, password);
username, password);
if (sshConnection == null) { if (sshConnection == null) {
throw new DiscoveryException( throw new DiscoveryException(String.format("Cannot connect to ovm host(IP=%1$s, username=%2$s, password=%3$s, discover failed", hostIp, username, password));
String.format(
"Cannot connect to ovm host(IP=%1$s, username=%2$s, password=%3$s, discover failed",
hostIp, username, password));
} }
if (!SSHCmdHelper.sshExecuteCmd(sshConnection, if (!SSHCmdHelper.sshExecuteCmd(sshConnection, "[ -f '/etc/ovs-agent/agent.ini' ]")) {
"[ -f '/etc/ovs-agent/agent.ini' ]")) { throw new DiscoveryException("Can not find /etc/ovs-agent/agent.ini " + hostIp);
throw new DiscoveryException(
"Can not find /etc/ovs-agent/agent.ini " + hostIp);
} }
Map<String, String> details = new HashMap<String, String>(); Map<String, String> details = new HashMap<String, String>();
@ -215,18 +197,13 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
resources.put(ovmResource, details); resources.put(ovmResource, details);
return resources; return resources;
} catch (XmlRpcException e) { } catch (XmlRpcException e) {
s_logger.debug("XmlRpc exception, Unable to discover OVM: " + url, s_logger.debug("XmlRpc exception, Unable to discover OVM: " + url, e);
e);
return null; return null;
} catch (UnknownHostException e) { } catch (UnknownHostException e) {
s_logger.debug( s_logger.debug("Host name resolve failed exception, Unable to discover OVM: " + url, e);
"Host name resolve failed exception, Unable to discover OVM: "
+ url, e);
return null; return null;
} catch (ConfigurationException e) { } catch (ConfigurationException e) {
s_logger.debug( s_logger.debug("Configure resource failed, Unable to discover OVM: " + url, e);
"Configure resource failed, Unable to discover OVM: " + url,
e);
return null; return null;
} catch (Exception e) { } catch (Exception e) {
s_logger.debug("Unable to discover OVM: " + url, e); s_logger.debug("Unable to discover OVM: " + url, e);
@ -235,8 +212,7 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
} }
@Override @Override
public void postDiscovery(List<HostVO> hosts, long msId) public void postDiscovery(List<HostVO> hosts, long msId) throws DiscoveryException {
throws DiscoveryException {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@ -252,35 +228,29 @@ public class OvmDiscoverer extends DiscovererBase implements Discoverer,
} }
@Override @Override
public HostVO createHostVOForConnectedAgent(HostVO host, public HostVO createHostVOForConnectedAgent(HostVO host, StartupCommand[] cmd) {
StartupCommand[] cmd) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@Override @Override
public HostVO createHostVOForDirectConnectAgent(HostVO host, public HostVO createHostVOForDirectConnectAgent(HostVO host, StartupCommand[] startup, ServerResource resource, Map<String, String> details, List<String> hostTags) {
StartupCommand[] startup, ServerResource resource,
Map<String, String> details, List<String> hostTags) {
StartupCommand firstCmd = startup[0]; StartupCommand firstCmd = startup[0];
if (!(firstCmd instanceof StartupRoutingCommand)) { if (!(firstCmd instanceof StartupRoutingCommand)) {
return null; return null;
} }
StartupRoutingCommand ssCmd = ((StartupRoutingCommand) firstCmd); StartupRoutingCommand ssCmd = ((StartupRoutingCommand)firstCmd);
if (ssCmd.getHypervisorType() != HypervisorType.Ovm) { if (ssCmd.getHypervisorType() != HypervisorType.Ovm) {
return null; return null;
} }
return _resourceMgr.fillRoutingHostVO(host, ssCmd, HypervisorType.Ovm, return _resourceMgr.fillRoutingHostVO(host, ssCmd, HypervisorType.Ovm, details, hostTags);
details, hostTags);
} }
@Override @Override
public DeleteHostAnswer deleteHost(HostVO host, boolean isForced, public DeleteHostAnswer deleteHost(HostVO host, boolean isForced, boolean isForceDeleteStorage) throws UnableDeleteHostException {
boolean isForceDeleteStorage) throws UnableDeleteHostException { if (host.getType() != com.cloud.host.Host.Type.Routing || host.getHypervisorType() != HypervisorType.Ovm) {
if (host.getType() != com.cloud.host.Host.Type.Routing
|| host.getHypervisorType() != HypervisorType.Ovm) {
return null; return null;
} }

View File

@ -133,7 +133,7 @@ public class UcsManagerImpl implements UcsManager {
private void syncBlades(UcsManagerVO mgr) { private void syncBlades(UcsManagerVO mgr) {
GenericQueryBuilder<UcsBladeVO, UcsBladeVO> q = GenericQueryBuilder.create(UcsBladeVO.class); GenericQueryBuilder<UcsBladeVO, UcsBladeVO> q = GenericQueryBuilder.create(UcsBladeVO.class);
q.addAnd(q.getEntity().getUcsManagerId(), Op.EQ, mgr.getId()); q.and(q.entity().getUcsManagerId(), Op.EQ, mgr.getId());
List<UcsBladeVO> pblades = q.list(); List<UcsBladeVO> pblades = q.list();
if (pblades.isEmpty()) { if (pblades.isEmpty()) {
return; return;
@ -211,7 +211,7 @@ public class UcsManagerImpl implements UcsManager {
@DB @DB
public UcsManagerResponse addUcsManager(AddUcsManagerCmd cmd) { public UcsManagerResponse addUcsManager(AddUcsManagerCmd cmd) {
GenericQueryBuilder<UcsManagerVO, UcsManagerVO> q = GenericQueryBuilder.create(UcsManagerVO.class); GenericQueryBuilder<UcsManagerVO, UcsManagerVO> q = GenericQueryBuilder.create(UcsManagerVO.class);
q.addAnd(q.getEntity().getUrl(), Op.EQ, cmd.getUrl()); q.and(q.entity().getUrl(), Op.EQ, cmd.getUrl());
UcsManagerVO mgrvo = q.find(); UcsManagerVO mgrvo = q.find();
if (mgrvo != null) { if (mgrvo != null) {
throw new IllegalArgumentException(String.format("duplicate UCS manager. url[%s] is used by another UCS manager already", cmd.getUrl())); throw new IllegalArgumentException(String.format("duplicate UCS manager. url[%s] is used by another UCS manager already", cmd.getUrl()));
@ -343,8 +343,8 @@ public class UcsManagerImpl implements UcsManager {
@Override @Override
public UcsBladeResponse associateProfileToBlade(AssociateUcsProfileToBladeCmd cmd) { public UcsBladeResponse associateProfileToBlade(AssociateUcsProfileToBladeCmd cmd) {
GenericQueryBuilder<UcsBladeVO, UcsBladeVO> q = GenericQueryBuilder.create(UcsBladeVO.class); GenericQueryBuilder<UcsBladeVO, UcsBladeVO> q = GenericQueryBuilder.create(UcsBladeVO.class);
q.addAnd(q.getEntity().getUcsManagerId(), Op.EQ, cmd.getUcsManagerId()); q.and(q.entity().getUcsManagerId(), Op.EQ, cmd.getUcsManagerId());
q.addAnd(q.getEntity().getId(), Op.EQ, cmd.getBladeId()); q.and(q.entity().getId(), Op.EQ, cmd.getBladeId());
UcsBladeVO bvo = q.find(); UcsBladeVO bvo = q.find();
if (bvo == null) { if (bvo == null) {
throw new IllegalArgumentException(String.format("cannot find UCS blade[id:%s, ucs manager id:%s]", cmd.getBladeId(), cmd.getUcsManagerId())); throw new IllegalArgumentException(String.format("cannot find UCS blade[id:%s, ucs manager id:%s]", cmd.getBladeId(), cmd.getUcsManagerId()));
@ -425,7 +425,7 @@ public class UcsManagerImpl implements UcsManager {
} }
GenericQueryBuilder<UcsManagerVO, UcsManagerVO> serv = GenericQueryBuilder.create(UcsManagerVO.class); GenericQueryBuilder<UcsManagerVO, UcsManagerVO> serv = GenericQueryBuilder.create(UcsManagerVO.class);
serv.addAnd(serv.getEntity().getZoneId(), Op.EQ, cmd.getZoneId()); serv.and(serv.entity().getZoneId(), Op.EQ, cmd.getZoneId());
List<UcsManagerVO> vos = serv.list(); List<UcsManagerVO> vos = serv.list();
for (UcsManagerVO vo : vos) { for (UcsManagerVO vo : vos) {
@ -455,7 +455,7 @@ public class UcsManagerImpl implements UcsManager {
@Override @Override
public ListResponse<UcsBladeResponse> listUcsBlades(ListUcsBladeCmd cmd) { public ListResponse<UcsBladeResponse> listUcsBlades(ListUcsBladeCmd cmd) {
GenericQueryBuilder<UcsBladeVO, UcsBladeVO> serv = GenericQueryBuilder.create(UcsBladeVO.class); GenericQueryBuilder<UcsBladeVO, UcsBladeVO> serv = GenericQueryBuilder.create(UcsBladeVO.class);
serv.addAnd(serv.getEntity().getUcsManagerId(), Op.EQ, cmd.getUcsManagerId()); serv.and(serv.entity().getUcsManagerId(), Op.EQ, cmd.getUcsManagerId());
List<UcsBladeVO> vos = serv.list(); List<UcsBladeVO> vos = serv.list();
List<UcsBladeResponse> rsps = new ArrayList<UcsBladeResponse>(vos.size()); List<UcsBladeResponse> rsps = new ArrayList<UcsBladeResponse>(vos.size());
@ -510,7 +510,7 @@ public class UcsManagerImpl implements UcsManager {
@Override @Override
public void deleteUcsManager(Long id) { public void deleteUcsManager(Long id) {
GenericQueryBuilder<UcsBladeVO, UcsBladeVO> serv = GenericQueryBuilder.create(UcsBladeVO.class); GenericQueryBuilder<UcsBladeVO, UcsBladeVO> serv = GenericQueryBuilder.create(UcsBladeVO.class);
serv.addAnd(serv.getEntity().getUcsManagerId(), Op.EQ, id); serv.and(serv.entity().getUcsManagerId(), Op.EQ, id);
List<UcsBladeVO> vos = serv.list(); List<UcsBladeVO> vos = serv.list();
for (UcsBladeVO vo : vos) { for (UcsBladeVO vo : vos) {
bladeDao.remove(vo.getId()); bladeDao.remove(vo.getId());

View File

@ -127,7 +127,7 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
_clusterDao.update(cluster.getId(), cluster); _clusterDao.update(cluster.getId(), cluster);
} catch (EntityExistsException e) { } catch (EntityExistsException e) {
GenericQueryBuilder<ClusterVO, ClusterVO> sc = GenericQueryBuilder.create(ClusterVO.class); GenericQueryBuilder<ClusterVO, ClusterVO> sc = GenericQueryBuilder.create(ClusterVO.class);
sc.addAnd(sc.getEntity().getGuid(), Op.EQ, guid); sc.and(sc.entity().getGuid(), Op.EQ, guid);
List<ClusterVO> clusters = sc.list(); List<ClusterVO> clusters = sc.list();
ClusterVO clu = clusters.get(0); ClusterVO clu = clusters.get(0);
List<HostVO> clusterHosts = _resourceMgr.listAllHostsInCluster(clu.getId()); List<HostVO> clusterHosts = _resourceMgr.listAllHostsInCluster(clu.getId());

View File

@ -85,7 +85,7 @@ import com.cloud.network.NetworkModel;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO; import com.cloud.network.dao.IPAddressVO;
@ -506,7 +506,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast
if (provider == null) { if (provider == null) {
throw new CloudRuntimeException("Cannot find service provider " + typeString + " in physical network " + physicalNetworkId); throw new CloudRuntimeException("Cannot find service provider " + typeString + " in physical network " + physicalNetworkId);
} }
VirtualRouterProvider vrProvider = _vrProviderDao.findByNspIdAndType(provider.getId(), VirtualRouterProviderType.ElasticLoadBalancerVm); VirtualRouterProvider vrProvider = _vrProviderDao.findByNspIdAndType(provider.getId(), Type.ElasticLoadBalancerVm);
if (vrProvider == null) { if (vrProvider == null) {
throw new CloudRuntimeException("Cannot find virtual router provider " + typeString + " as service provider " + provider.getId()); throw new CloudRuntimeException("Cannot find virtual router provider " + typeString + " as service provider " + provider.getId());
} }

View File

@ -53,7 +53,7 @@ import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.PublicIpAddress; import com.cloud.network.PublicIpAddress;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.dao.NetworkServiceMapDao; import com.cloud.network.dao.NetworkServiceMapDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
import com.cloud.network.dao.VirtualRouterProviderDao; import com.cloud.network.dao.VirtualRouterProviderDao;
@ -73,9 +73,8 @@ import com.cloud.user.AccountManager;
import com.cloud.user.User; import com.cloud.user.User;
import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.EntityManager; import com.cloud.utils.db.EntityManager;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.Ip; import com.cloud.utils.net.Ip;
import com.cloud.vm.DomainRouterVO; import com.cloud.vm.DomainRouterVO;
@ -270,7 +269,7 @@ public class InternalLoadBalancerElement extends AdapterBase implements LoadBala
@Override @Override
public boolean isReady(PhysicalNetworkServiceProvider provider) { public boolean isReady(PhysicalNetworkServiceProvider provider) {
VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(), VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(),
VirtualRouterProviderType.InternalLbVm); Type.InternalLbVm);
if (element == null) { if (element == null) {
return false; return false;
} }
@ -282,7 +281,7 @@ public class InternalLoadBalancerElement extends AdapterBase implements LoadBala
public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider provider, ReservationContext context) public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider provider, ReservationContext context)
throws ConcurrentOperationException, ResourceUnavailableException { throws ConcurrentOperationException, ResourceUnavailableException {
VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(), VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(),
VirtualRouterProviderType.InternalLbVm); Type.InternalLbVm);
if (element == null) { if (element == null) {
return true; return true;
} }
@ -467,7 +466,7 @@ public class InternalLoadBalancerElement extends AdapterBase implements LoadBala
@Override @Override
public VirtualRouterProvider configureInternalLoadBalancerElement(long id, boolean enable) { public VirtualRouterProvider configureInternalLoadBalancerElement(long id, boolean enable) {
VirtualRouterProviderVO element = _vrProviderDao.findById(id); VirtualRouterProviderVO element = _vrProviderDao.findById(id);
if (element == null || element.getType() != VirtualRouterProviderType.InternalLbVm) { if (element == null || element.getType() != Type.InternalLbVm) {
throw new InvalidParameterValueException("Can't find " + getName() + " element with network service provider id " + id + throw new InvalidParameterValueException("Can't find " + getName() + " element with network service provider id " + id +
" to be used as a provider for " + getName()); " to be used as a provider for " + getName());
} }
@ -480,7 +479,7 @@ public class InternalLoadBalancerElement extends AdapterBase implements LoadBala
@Override @Override
public VirtualRouterProvider addInternalLoadBalancerElement(long ntwkSvcProviderId) { public VirtualRouterProvider addInternalLoadBalancerElement(long ntwkSvcProviderId) {
VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(ntwkSvcProviderId, VirtualRouterProviderType.InternalLbVm); VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(ntwkSvcProviderId, Type.InternalLbVm);
if (element != null) { if (element != null) {
s_logger.debug("There is already an " + getName() + " with service provider id " + ntwkSvcProviderId); s_logger.debug("There is already an " + getName() + " with service provider id " + ntwkSvcProviderId);
return null; return null;
@ -491,7 +490,7 @@ public class InternalLoadBalancerElement extends AdapterBase implements LoadBala
throw new InvalidParameterValueException("Invalid network service provider is specified"); throw new InvalidParameterValueException("Invalid network service provider is specified");
} }
element = new VirtualRouterProviderVO(ntwkSvcProviderId, VirtualRouterProviderType.InternalLbVm); element = new VirtualRouterProviderVO(ntwkSvcProviderId, Type.InternalLbVm);
element = _vrProviderDao.persist(element); element = _vrProviderDao.persist(element);
return element; return element;
} }
@ -500,7 +499,7 @@ public class InternalLoadBalancerElement extends AdapterBase implements LoadBala
@Override @Override
public VirtualRouterProvider getInternalLoadBalancerElement(long id) { public VirtualRouterProvider getInternalLoadBalancerElement(long id) {
VirtualRouterProvider provider = _vrProviderDao.findById(id); VirtualRouterProvider provider = _vrProviderDao.findById(id);
if (provider == null || provider.getType() != VirtualRouterProviderType.InternalLbVm) { if (provider == null || provider.getType() != Type.InternalLbVm) {
throw new InvalidParameterValueException("Unable to find " + getName() + " by id"); throw new InvalidParameterValueException("Unable to find " + getName() + " by id");
} }
return provider; return provider;
@ -509,19 +508,19 @@ public class InternalLoadBalancerElement extends AdapterBase implements LoadBala
@Override @Override
public List<? extends VirtualRouterProvider> searchForInternalLoadBalancerElements(Long id, Long ntwkSvsProviderId, Boolean enabled) { public List<? extends VirtualRouterProvider> searchForInternalLoadBalancerElements(Long id, Long ntwkSvsProviderId, Boolean enabled) {
GenericQueryBuilder<VirtualRouterProviderVO, VirtualRouterProviderVO> sc = GenericQueryBuilder.create(VirtualRouterProviderVO.class); QueryBuilder<VirtualRouterProviderVO> sc = QueryBuilder.create(VirtualRouterProviderVO.class);
if (id != null) { if (id != null) {
sc.addAnd(sc.getEntity().getId(), Op.EQ, id); sc.and(sc.entity().getId(), Op.EQ, id);
} }
if (ntwkSvsProviderId != null) { if (ntwkSvsProviderId != null) {
sc.addAnd(sc.getEntity().getNspId(), Op.EQ, ntwkSvsProviderId); sc.and(sc.entity().getNspId(), Op.EQ, ntwkSvsProviderId);
} }
if (enabled != null) { if (enabled != null) {
sc.addAnd(sc.getEntity().isEnabled(), Op.EQ, enabled); sc.and(sc.entity().isEnabled(), Op.EQ, enabled);
} }
//return only Internal LB elements //return only Internal LB elements
sc.addAnd(sc.getEntity().getType(), Op.EQ, VirtualRouterProvider.VirtualRouterProviderType.InternalLbVm); sc.and(sc.entity().getType(), Op.EQ, VirtualRouterProvider.Type.InternalLbVm);
return sc.list(); return sc.list();
} }

View File

@ -69,7 +69,7 @@ import com.cloud.network.NetworkModel;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
import com.cloud.network.dao.VirtualRouterProviderDao; import com.cloud.network.dao.VirtualRouterProviderDao;
@ -310,7 +310,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements In
VirtualRouterProvider lbProvider = _vrProviderDao.findById(internalLbVm.getElementId()); VirtualRouterProvider lbProvider = _vrProviderDao.findById(internalLbVm.getElementId());
if (lbProvider == null) { if (lbProvider == null) {
throw new CloudRuntimeException("Cannot find related element " + VirtualRouterProviderType.InternalLbVm + " of vm: " + internalLbVm.getHostName()); throw new CloudRuntimeException("Cannot find related element " + Type.InternalLbVm + " of vm: " + internalLbVm.getHostName());
} }
Provider provider = Network.Provider.getProvider(lbProvider.getType().toString()); Provider provider = Network.Provider.getProvider(lbProvider.getType().toString());
@ -629,7 +629,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements In
} }
protected long getInternalLbProviderId(Network guestNetwork) { protected long getInternalLbProviderId(Network guestNetwork) {
VirtualRouterProviderType type = VirtualRouterProviderType.InternalLbVm; Type type = Type.InternalLbVm;
long physicalNetworkId = _ntwkModel.getPhysicalNetworkId(guestNetwork); long physicalNetworkId = _ntwkModel.getPhysicalNetworkId(guestNetwork);
PhysicalNetworkServiceProvider provider = _physicalProviderDao.findByServiceProvider(physicalNetworkId, type.toString()); PhysicalNetworkServiceProvider provider = _physicalProviderDao.findByServiceProvider(physicalNetworkId, type.toString());

View File

@ -33,7 +33,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderVO; import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
import com.cloud.network.dao.VirtualRouterProviderDao; import com.cloud.network.dao.VirtualRouterProviderDao;
@ -65,15 +65,15 @@ public class InternalLbElementServiceTest {
public void setUp() { public void setUp() {
ComponentContext.initComponentsLifeCycle(); ComponentContext.initComponentsLifeCycle();
VirtualRouterProviderVO validElement = new VirtualRouterProviderVO(1, VirtualRouterProviderType.InternalLbVm); VirtualRouterProviderVO validElement = new VirtualRouterProviderVO(1, Type.InternalLbVm);
VirtualRouterProviderVO invalidElement = new VirtualRouterProviderVO(1, VirtualRouterProviderType.VirtualRouter); VirtualRouterProviderVO invalidElement = new VirtualRouterProviderVO(1, Type.VirtualRouter);
Mockito.when(_vrProviderDao.findById(validElId)).thenReturn(validElement); Mockito.when(_vrProviderDao.findById(validElId)).thenReturn(validElement);
Mockito.when(_vrProviderDao.findById(invalidElId)).thenReturn(invalidElement); Mockito.when(_vrProviderDao.findById(invalidElId)).thenReturn(invalidElement);
Mockito.when(_vrProviderDao.persist(validElement)).thenReturn(validElement); Mockito.when(_vrProviderDao.persist(validElement)).thenReturn(validElement);
Mockito.when(_vrProviderDao.findByNspIdAndType(validProviderId, VirtualRouterProviderType.InternalLbVm)).thenReturn(validElement); Mockito.when(_vrProviderDao.findByNspIdAndType(validProviderId, Type.InternalLbVm)).thenReturn(validElement);
PhysicalNetworkServiceProviderVO validProvider = new PhysicalNetworkServiceProviderVO(1, "InternalLoadBalancerElement"); PhysicalNetworkServiceProviderVO validProvider = new PhysicalNetworkServiceProviderVO(1, "InternalLoadBalancerElement");
PhysicalNetworkServiceProviderVO invalidProvider = new PhysicalNetworkServiceProviderVO(1, "Invalid name!"); PhysicalNetworkServiceProviderVO invalidProvider = new PhysicalNetworkServiceProviderVO(1, "Invalid name!");

View File

@ -47,7 +47,7 @@ import com.cloud.dc.DataCenterVO;
import com.cloud.exception.ResourceUnavailableException; import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network.Provider; import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service; import com.cloud.network.Network.Service;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.NetworkVO; import com.cloud.network.dao.NetworkVO;
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
@ -91,18 +91,18 @@ public class InternalLbElementTest {
public void setUp() { public void setUp() {
ComponentContext.initComponentsLifeCycle(); ComponentContext.initComponentsLifeCycle();
VirtualRouterProviderVO validElement = new VirtualRouterProviderVO(1, VirtualRouterProviderType.InternalLbVm); VirtualRouterProviderVO validElement = new VirtualRouterProviderVO(1, Type.InternalLbVm);
validElement.setEnabled(true); validElement.setEnabled(true);
VirtualRouterProviderVO invalidElement = new VirtualRouterProviderVO(1, VirtualRouterProviderType.VirtualRouter); VirtualRouterProviderVO invalidElement = new VirtualRouterProviderVO(1, Type.VirtualRouter);
VirtualRouterProviderVO notEnabledElement = new VirtualRouterProviderVO(1, VirtualRouterProviderType.InternalLbVm); VirtualRouterProviderVO notEnabledElement = new VirtualRouterProviderVO(1, Type.InternalLbVm);
Mockito.when(_vrProviderDao.findByNspIdAndType(validElId, VirtualRouterProviderType.InternalLbVm)).thenReturn(validElement); Mockito.when(_vrProviderDao.findByNspIdAndType(validElId, Type.InternalLbVm)).thenReturn(validElement);
Mockito.when(_vrProviderDao.findByNspIdAndType(invalidElId, VirtualRouterProviderType.InternalLbVm)).thenReturn(invalidElement); Mockito.when(_vrProviderDao.findByNspIdAndType(invalidElId, Type.InternalLbVm)).thenReturn(invalidElement);
Mockito.when(_vrProviderDao.findByNspIdAndType(notEnabledElId, VirtualRouterProviderType.InternalLbVm)).thenReturn(notEnabledElement); Mockito.when(_vrProviderDao.findByNspIdAndType(notEnabledElId, Type.InternalLbVm)).thenReturn(notEnabledElement);
Mockito.when(_vrProviderDao.persist(validElement)).thenReturn(validElement); Mockito.when(_vrProviderDao.persist(validElement)).thenReturn(validElement);
Mockito.when(_vrProviderDao.findByNspIdAndType(validProviderId, VirtualRouterProviderType.InternalLbVm)).thenReturn(validElement); Mockito.when(_vrProviderDao.findByNspIdAndType(validProviderId, Type.InternalLbVm)).thenReturn(validElement);
PhysicalNetworkServiceProviderVO validProvider = new PhysicalNetworkServiceProviderVO(1, "InternalLoadBalancerElement"); PhysicalNetworkServiceProviderVO validProvider = new PhysicalNetworkServiceProviderVO(1, "InternalLoadBalancerElement");
PhysicalNetworkServiceProviderVO invalidProvider = new PhysicalNetworkServiceProviderVO(1, "Invalid name!"); PhysicalNetworkServiceProviderVO invalidProvider = new PhysicalNetworkServiceProviderVO(1, "Invalid name!");

View File

@ -2681,8 +2681,8 @@ public class ApiResponseHelper implements ResponseGenerator {
@Override @Override
public VirtualRouterProviderResponse createVirtualRouterProviderResponse(VirtualRouterProvider result) { public VirtualRouterProviderResponse createVirtualRouterProviderResponse(VirtualRouterProvider result) {
//generate only response of the VR/VPCVR provider type //generate only response of the VR/VPCVR provider type
if (!(result.getType() == VirtualRouterProvider.VirtualRouterProviderType.VirtualRouter if (!(result.getType() == VirtualRouterProvider.Type.VirtualRouter
|| result.getType() == VirtualRouterProvider.VirtualRouterProviderType.VPCVirtualRouter)) { || result.getType() == VirtualRouterProvider.Type.VPCVirtualRouter)) {
return null; return null;
} }
VirtualRouterProviderResponse response = new VirtualRouterProviderResponse(); VirtualRouterProviderResponse response = new VirtualRouterProviderResponse();
@ -3734,7 +3734,7 @@ public class ApiResponseHelper implements ResponseGenerator {
@Override @Override
public InternalLoadBalancerElementResponse createInternalLbElementResponse(VirtualRouterProvider result) { public InternalLoadBalancerElementResponse createInternalLbElementResponse(VirtualRouterProvider result) {
if (result.getType() != VirtualRouterProvider.VirtualRouterProviderType.InternalLbVm) { if (result.getType() != VirtualRouterProvider.Type.InternalLbVm) {
return null; return null;
} }
InternalLoadBalancerElementResponse response = new InternalLoadBalancerElementResponse(); InternalLoadBalancerElementResponse response = new InternalLoadBalancerElementResponse();

View File

@ -1694,8 +1694,8 @@ VirtualMachineGuru, SystemVmLoadScanHandler<Long>, ResourceStateAdapter {
protected HostVO findConsoleProxyHostByName(String name) { protected HostVO findConsoleProxyHostByName(String name) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.ConsoleProxy); sc.and(sc.entity().getType(), Op.EQ, Host.Type.ConsoleProxy);
sc.addAnd(sc.getEntity().getName(), Op.EQ, name); sc.and(sc.entity().getName(), Op.EQ, name);
return sc.find(); return sc.find();
} }

View File

@ -21,7 +21,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
import javax.naming.ConfigurationException; import javax.naming.ConfigurationException;
@ -38,16 +37,15 @@ import com.cloud.host.Status;
import com.cloud.host.dao.HostDao; import com.cloud.host.dao.HostDao;
import com.cloud.resource.ResourceManager; import com.cloud.resource.ResourceManager;
import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.GenericQueryBuilder; import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
public abstract class AbstractInvestigatorImpl extends AdapterBase implements Investigator { public abstract class AbstractInvestigatorImpl extends AdapterBase implements Investigator {
private static final Logger s_logger = Logger.getLogger(AbstractInvestigatorImpl.class); private static final Logger s_logger = Logger.getLogger(AbstractInvestigatorImpl.class);
@Inject private HostDao _hostDao = null; @Inject private final HostDao _hostDao = null;
@Inject private AgentManager _agentMgr = null; @Inject private final AgentManager _agentMgr = null;
@Inject private ResourceManager _resourceMgr = null; @Inject private final ResourceManager _resourceMgr = null;
@Override @Override
@ -68,10 +66,10 @@ public abstract class AbstractInvestigatorImpl extends AdapterBase implements In
// Host.status is up and Host.type is routing // Host.status is up and Host.type is routing
protected List<Long> findHostByPod(long podId, Long excludeHostId) { protected List<Long> findHostByPod(long podId, Long excludeHostId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Type.Routing); sc.and(sc.entity().getType(), Op.EQ, Type.Routing);
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, podId); sc.and(sc.entity().getPodId(), Op.EQ, podId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ, Status.Up);
List<HostVO> hosts = sc.list(); List<HostVO> hosts = sc.list();
List<Long> hostIds = new ArrayList<Long>(hosts.size()); List<Long> hostIds = new ArrayList<Long>(hosts.size());

View File

@ -97,7 +97,7 @@ import com.cloud.network.Network.Service;
import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetwork.BroadcastDomainRange; import com.cloud.network.PhysicalNetwork.BroadcastDomainRange;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.AccountGuestVlanMapDao; import com.cloud.network.dao.AccountGuestVlanMapDao;
import com.cloud.network.dao.AccountGuestVlanMapVO; import com.cloud.network.dao.AccountGuestVlanMapVO;
@ -3685,7 +3685,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
} }
VirtualRouterElement element = (VirtualRouterElement)networkElement; VirtualRouterElement element = (VirtualRouterElement)networkElement;
element.addElement(nsp.getId(), VirtualRouterProviderType.VirtualRouter); element.addElement(nsp.getId(), Type.VirtualRouter);
return nsp; return nsp;
} }
@ -3701,7 +3701,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
} }
VpcVirtualRouterElement element = (VpcVirtualRouterElement)networkElement; VpcVirtualRouterElement element = (VpcVirtualRouterElement)networkElement;
element.addElement(nsp.getId(), VirtualRouterProviderType.VPCVirtualRouter); element.addElement(nsp.getId(), Type.VPCVirtualRouter);
return nsp; return nsp;
} }

View File

@ -340,7 +340,7 @@ public class StorageNetworkManagerImpl extends ManagerBase implements StorageNet
@Override @Override
public boolean isStorageIpRangeAvailable(long zoneId) { public boolean isStorageIpRangeAvailable(long zoneId) {
GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class); GenericQueryBuilder<StorageNetworkIpRangeVO, StorageNetworkIpRangeVO> sc = GenericQueryBuilder.create(StorageNetworkIpRangeVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, zoneId); sc.and(sc.entity().getDataCenterId(), Op.EQ, zoneId);
List<StorageNetworkIpRangeVO> entries = sc.list(); List<StorageNetworkIpRangeVO> entries = sc.list();
return entries.size() > 0; return entries.size() > 0;
} }

View File

@ -25,13 +25,15 @@ import java.util.Set;
import javax.ejb.Local; import javax.ejb.Local;
import javax.inject.Inject; import javax.inject.Inject;
import org.apache.log4j.Logger;
import com.google.gson.Gson;
import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd; import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd;
import org.apache.cloudstack.api.command.admin.router.CreateVirtualRouterElementCmd; import org.apache.cloudstack.api.command.admin.router.CreateVirtualRouterElementCmd;
import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd; import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.log4j.Logger;
import com.cloud.agent.api.to.LoadBalancerTO; import com.cloud.agent.api.to.LoadBalancerTO;
import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.ConfigurationManager;
import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter;
@ -55,7 +57,7 @@ import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.PublicIpAddress; import com.cloud.network.PublicIpAddress;
import com.cloud.network.RemoteAccessVpn; import com.cloud.network.RemoteAccessVpn;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.VpnUser; import com.cloud.network.VpnUser;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.LoadBalancerDao;
@ -77,12 +79,10 @@ import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO; import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.user.AccountManager; import com.cloud.user.AccountManager;
import com.cloud.uservm.UserVm;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.DomainRouterVO; import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.NicProfile; import com.cloud.vm.NicProfile;
@ -91,13 +91,10 @@ import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.VirtualMachine.Type;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.DomainRouterDao; import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.google.gson.Gson;
@Local(value = {NetworkElement.class, FirewallServiceProvider.class, @Local(value = {NetworkElement.class, FirewallServiceProvider.class,
DhcpServiceProvider.class, UserDataServiceProvider.class, DhcpServiceProvider.class, UserDataServiceProvider.class,
StaticNatServiceProvider.class, LoadBalancingServiceProvider.class, StaticNatServiceProvider.class, LoadBalancingServiceProvider.class,
@ -219,7 +216,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
VirtualMachineProfile uservm = (VirtualMachineProfile) vm; VirtualMachineProfile uservm = vm;
List<DomainRouterVO> routers = _routerMgr.deployVirtualRouterInGuestNetwork(network, dest, List<DomainRouterVO> routers = _routerMgr.deployVirtualRouterInGuestNetwork(network, dest,
_accountMgr.getAccount(network.getAccountId()), _accountMgr.getAccount(network.getAccountId()),
uservm.getParameters(), offering.getRedundantRouter()); uservm.getParameters(), offering.getRedundantRouter());
@ -400,7 +397,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
return _routerMgr.applyVpnUsers(network, users, routers); return _routerMgr.applyVpnUsers(network, users, routers);
} else { } else {
s_logger.debug("Element " + this.getName() + " doesn't handle applyVpnUsers command"); s_logger.debug("Element " + getName() + " doesn't handle applyVpnUsers command");
return null; return null;
} }
} }
@ -416,7 +413,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
return _routerMgr.startRemoteAccessVpn(network, vpn, routers); return _routerMgr.startRemoteAccessVpn(network, vpn, routers);
} else { } else {
s_logger.debug("Element " + this.getName() + " doesn't handle createVpn command"); s_logger.debug("Element " + getName() + " doesn't handle createVpn command");
return false; return false;
} }
} }
@ -432,7 +429,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
return _routerMgr.deleteRemoteAccessVpn(network, vpn, routers); return _routerMgr.deleteRemoteAccessVpn(network, vpn, routers);
} else { } else {
s_logger.debug("Element " + this.getName() + " doesn't handle removeVpn command"); s_logger.debug("Element " + getName() + " doesn't handle removeVpn command");
return false; return false;
} }
} }
@ -684,7 +681,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
VirtualMachineProfile uservm = (VirtualMachineProfile) vm; VirtualMachineProfile uservm = vm;
return _routerMgr.savePasswordToRouter(network, nic, uservm, routers); return _routerMgr.savePasswordToRouter(network, nic, uservm, routers);
} }
@ -702,7 +699,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
VirtualMachineProfile uservm = (VirtualMachineProfile) vm; VirtualMachineProfile uservm = vm;
return _routerMgr.saveSSHPublicKeyToRouter(network, nic, uservm, routers, SSHPublicKey); return _routerMgr.saveSSHPublicKeyToRouter(network, nic, uservm, routers, SSHPublicKey);
} }
@ -720,7 +717,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
VirtualMachineProfile uservm = (VirtualMachineProfile) vm; VirtualMachineProfile uservm = vm;
return _routerMgr.saveUserDataToRouter(network, nic, uservm, routers); return _routerMgr.saveUserDataToRouter(network, nic, uservm, routers);
} }
@ -737,7 +734,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
@Override @Override
public VirtualRouterProvider configure(ConfigureVirtualRouterElementCmd cmd) { public VirtualRouterProvider configure(ConfigureVirtualRouterElementCmd cmd) {
VirtualRouterProviderVO element = _vrProviderDao.findById(cmd.getId()); VirtualRouterProviderVO element = _vrProviderDao.findById(cmd.getId());
if (element == null || !(element.getType() == VirtualRouterProviderType.VirtualRouter || element.getType() == VirtualRouterProviderType.VPCVirtualRouter)) { if (element == null || !(element.getType() == Type.VirtualRouter || element.getType() == Type.VPCVirtualRouter)) {
s_logger.debug("Can't find Virtual Router element with network service provider id " + cmd.getId()); s_logger.debug("Can't find Virtual Router element with network service provider id " + cmd.getId());
return null; return null;
} }
@ -749,10 +746,10 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@Override @Override
public VirtualRouterProvider addElement(Long nspId, VirtualRouterProviderType providerType) { public VirtualRouterProvider addElement(Long nspId, Type providerType) {
if (!(providerType == VirtualRouterProviderType.VirtualRouter || providerType == VirtualRouterProviderType.VPCVirtualRouter)) { if (!(providerType == Type.VirtualRouter || providerType == Type.VPCVirtualRouter)) {
throw new InvalidParameterValueException("Element " + this.getName() + " supports only providerTypes: " + throw new InvalidParameterValueException("Element " + getName() + " supports only providerTypes: " +
VirtualRouterProviderType.VirtualRouter.toString() + " and " + VirtualRouterProviderType.VPCVirtualRouter); Type.VirtualRouter.toString() + " and " + Type.VPCVirtualRouter);
} }
VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(nspId, providerType); VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(nspId, providerType);
if (element != null) { if (element != null) {
@ -821,14 +818,14 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
public Long getIdByNspId(Long nspId) { public Long getIdByNspId(Long nspId) {
VirtualRouterProviderVO vr = _vrProviderDao.findByNspIdAndType(nspId, VirtualRouterProviderType.VirtualRouter); VirtualRouterProviderVO vr = _vrProviderDao.findByNspIdAndType(nspId, Type.VirtualRouter);
return vr.getId(); return vr.getId();
} }
@Override @Override
public VirtualRouterProvider getCreatedElement(long id) { public VirtualRouterProvider getCreatedElement(long id) {
VirtualRouterProvider provider = _vrProviderDao.findById(id); VirtualRouterProvider provider = _vrProviderDao.findById(id);
if (!(provider.getType() == VirtualRouterProviderType.VirtualRouter || provider.getType() == VirtualRouterProviderType.VPCVirtualRouter)) { if (!(provider.getType() == Type.VirtualRouter || provider.getType() == Type.VPCVirtualRouter)) {
throw new InvalidParameterValueException("Unable to find provider by id"); throw new InvalidParameterValueException("Unable to find provider by id");
} }
return provider; return provider;
@ -849,7 +846,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
return false; return false;
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
VirtualMachineProfile uservm = (VirtualMachineProfile) vm; VirtualMachineProfile uservm = vm;
List<DomainRouterVO> routers = getRouters(network, dest); List<DomainRouterVO> routers = getRouters(network, dest);
@ -889,7 +886,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
VirtualMachineProfile uservm = (VirtualMachineProfile) vm; VirtualMachineProfile uservm = vm;
List<DomainRouterVO> routers = getRouters(network, dest); List<DomainRouterVO> routers = getRouters(network, dest);
@ -917,7 +914,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
VirtualMachineProfile uservm = (VirtualMachineProfile) vm; VirtualMachineProfile uservm = vm;
List<DomainRouterVO> routers = getRouters(network, dest); List<DomainRouterVO> routers = getRouters(network, dest);
@ -969,19 +966,19 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
Long nspId = cmd.getNspId(); Long nspId = cmd.getNspId();
Boolean enabled = cmd.getEnabled(); Boolean enabled = cmd.getEnabled();
GenericQueryBuilder<VirtualRouterProviderVO, VirtualRouterProviderVO> sc = GenericQueryBuilder.create(VirtualRouterProviderVO.class); QueryBuilder<VirtualRouterProviderVO> sc = QueryBuilder.create(VirtualRouterProviderVO.class);
if (id != null) { if (id != null) {
sc.addAnd(sc.getEntity().getId(), Op.EQ, id); sc.and(sc.entity().getId(), Op.EQ, id);
} }
if (nspId != null) { if (nspId != null) {
sc.addAnd(sc.getEntity().getNspId(), Op.EQ, nspId); sc.and(sc.entity().getNspId(), Op.EQ, nspId);
} }
if (enabled != null) { if (enabled != null) {
sc.addAnd(sc.getEntity().isEnabled(), Op.EQ, enabled); sc.and(sc.entity().isEnabled(), Op.EQ, enabled);
} }
//return only VR and VPC VR //return only VR and VPC VR
sc.addAnd(sc.getEntity().getType(), Op.IN, VirtualRouterProvider.VirtualRouterProviderType.VPCVirtualRouter, VirtualRouterProvider.VirtualRouterProviderType.VirtualRouter); sc.and(sc.entity().getType(), Op.IN, VirtualRouterProvider.Type.VPCVirtualRouter, VirtualRouterProvider.Type.VirtualRouter);
return sc.list(); return sc.list();
} }
@ -1008,8 +1005,8 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
return this; return this;
} }
protected VirtualRouterProviderType getVirtualRouterProvider() { protected VirtualRouterProvider.Type getVirtualRouterProvider() {
return VirtualRouterProviderType.VirtualRouter; return VirtualRouterProvider.Type.VirtualRouter;
} }
@Override @Override
@ -1019,13 +1016,13 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
return null; return null;
} }
private boolean canHandleLbRules(List<LoadBalancingRule> rules) { private boolean canHandleLbRules(List<LoadBalancingRule> rules) {
Map<Capability, String> lbCaps = this.getCapabilities().get(Service.Lb); Map<Capability, String> lbCaps = getCapabilities().get(Service.Lb);
if (!lbCaps.isEmpty()) { if (!lbCaps.isEmpty()) {
String schemeCaps = lbCaps.get(Capability.LbSchemes); String schemeCaps = lbCaps.get(Capability.LbSchemes);
if (schemeCaps != null) { if (schemeCaps != null) {
for (LoadBalancingRule rule : rules) { for (LoadBalancingRule rule : rules) {
if (!schemeCaps.contains(rule.getScheme().toString())) { if (!schemeCaps.contains(rule.getScheme().toString())) {
s_logger.debug("Scheme " + rules.get(0).getScheme() + " is not supported by the provider " + this.getName()); s_logger.debug("Scheme " + rules.get(0).getScheme() + " is not supported by the provider " + getName());
return false; return false;
} }
} }
@ -1041,11 +1038,11 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
if (nic.getBroadcastType() != Networks.BroadcastDomainType.Pvlan) { if (nic.getBroadcastType() != Networks.BroadcastDomainType.Pvlan) {
return true; return true;
} }
if (vm.getType() == Type.DomainRouter) { if (vm.getType() == VirtualMachine.Type.DomainRouter) {
assert vm instanceof DomainRouterVO; assert vm instanceof DomainRouterVO;
DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine(); DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine();
_routerMgr.setupDhcpForPvlan(false, router, router.getHostId(), nic); _routerMgr.setupDhcpForPvlan(false, router, router.getHostId(), nic);
} else if (vm.getType() == Type.User){ } else if (vm.getType() == VirtualMachine.Type.User) {
assert vm instanceof UserVmVO; assert vm instanceof UserVmVO;
UserVmVO userVm = (UserVmVO)vm.getVirtualMachine(); UserVmVO userVm = (UserVmVO)vm.getVirtualMachine();
_userVmMgr.setupVmForPvlan(false, userVm.getHostId(), nic); _userVmMgr.setupVmForPvlan(false, userVm.getHostId(), nic);
@ -1060,11 +1057,11 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
if (nic.getBroadcastType() != Networks.BroadcastDomainType.Pvlan) { if (nic.getBroadcastType() != Networks.BroadcastDomainType.Pvlan) {
return; return;
} }
if (vm.getType() == Type.DomainRouter) { if (vm.getType() == VirtualMachine.Type.DomainRouter) {
assert vm instanceof DomainRouterVO; assert vm instanceof DomainRouterVO;
DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine(); DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine();
_routerMgr.setupDhcpForPvlan(true, router, router.getHostId(), nic); _routerMgr.setupDhcpForPvlan(true, router, router.getHostId(), nic);
} else if (vm.getType() == Type.User){ } else if (vm.getType() == VirtualMachine.Type.User) {
assert vm instanceof UserVmVO; assert vm instanceof UserVmVO;
UserVmVO userVm = (UserVmVO)vm.getVirtualMachine(); UserVmVO userVm = (UserVmVO)vm.getVirtualMachine();
_userVmMgr.setupVmForPvlan(true, userVm.getHostId(), nic); _userVmMgr.setupVmForPvlan(true, userVm.getHostId(), nic);
@ -1078,11 +1075,11 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
if (nic.getBroadcastType() != Networks.BroadcastDomainType.Pvlan) { if (nic.getBroadcastType() != Networks.BroadcastDomainType.Pvlan) {
return; return;
} }
if (vm.getType() == Type.DomainRouter) { if (vm.getType() == VirtualMachine.Type.DomainRouter) {
assert vm instanceof DomainRouterVO; assert vm instanceof DomainRouterVO;
DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine(); DomainRouterVO router = (DomainRouterVO)vm.getVirtualMachine();
_routerMgr.setupDhcpForPvlan(true, router, router.getHostId(), nic); _routerMgr.setupDhcpForPvlan(true, router, router.getHostId(), nic);
} else if (vm.getType() == Type.User){ } else if (vm.getType() == VirtualMachine.Type.User) {
assert vm instanceof UserVmVO; assert vm instanceof UserVmVO;
UserVmVO userVm = (UserVmVO)vm.getVirtualMachine(); UserVmVO userVm = (UserVmVO)vm.getVirtualMachine();
_userVmMgr.setupVmForPvlan(true, userVm.getHostId(), nic); _userVmMgr.setupVmForPvlan(true, userVm.getHostId(), nic);

View File

@ -41,7 +41,7 @@ import com.cloud.network.NetworkModel;
import com.cloud.network.PublicIpAddress; import com.cloud.network.PublicIpAddress;
import com.cloud.network.Site2SiteVpnConnection; import com.cloud.network.Site2SiteVpnConnection;
import com.cloud.network.Site2SiteVpnGateway; import com.cloud.network.Site2SiteVpnGateway;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.Site2SiteVpnGatewayDao; import com.cloud.network.dao.Site2SiteVpnGatewayDao;
@ -63,7 +63,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.DomainRouterVO; import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.NicProfile; import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext; import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine.Type; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
@Local(value = {NetworkElement.class, FirewallServiceProvider.class, @Local(value = {NetworkElement.class, FirewallServiceProvider.class,
@ -210,7 +210,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
return false; return false;
} }
if (vm.getType() == Type.User) { if (vm.getType() == VirtualMachine.Type.User) {
Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1); Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1);
params.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true); params.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true);
List<DomainRouterVO> routers = _vpcRouterMgr.deployVirtualRouterInVpc(vpc, dest, List<DomainRouterVO> routers = _vpcRouterMgr.deployVirtualRouterInVpc(vpc, dest,
@ -434,8 +434,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
} }
@Override @Override
protected VirtualRouterProviderType getVirtualRouterProvider() { protected Type getVirtualRouterProvider() {
return VirtualRouterProviderType.VPCVirtualRouter; return Type.VPCVirtualRouter;
} }
@Override @Override

View File

@ -155,7 +155,7 @@ import com.cloud.network.Site2SiteVpnConnection;
import com.cloud.network.SshKeysDistriMonitor; import com.cloud.network.SshKeysDistriMonitor;
import com.cloud.network.VirtualNetworkApplianceService; import com.cloud.network.VirtualNetworkApplianceService;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.VpnUser; import com.cloud.network.VpnUser;
import com.cloud.network.VpnUserVO; import com.cloud.network.VpnUserVO;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PublicIp;
@ -202,7 +202,7 @@ import com.cloud.server.ConfigurationServer;
import com.cloud.service.ServiceOfferingVO; import com.cloud.service.ServiceOfferingVO;
import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.Volume.Type; import com.cloud.storage.Volume;
import com.cloud.storage.VolumeVO; import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.GuestOSDao; import com.cloud.storage.dao.GuestOSDao;
import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VMTemplateDao;
@ -1506,7 +1506,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
} }
// Check if providers are supported in the physical networks // Check if providers are supported in the physical networks
VirtualRouterProviderType type = VirtualRouterProviderType.VirtualRouter; Type type = Type.VirtualRouter;
Long physicalNetworkId = _networkModel.getPhysicalNetworkId(guestNetwork); Long physicalNetworkId = _networkModel.getPhysicalNetworkId(guestNetwork);
PhysicalNetworkServiceProvider provider = _physicalProviderDao.findByServiceProvider(physicalNetworkId, type.toString()); PhysicalNetworkServiceProvider provider = _physicalProviderDao.findByServiceProvider(physicalNetworkId, type.toString());
if (provider == null) { if (provider == null) {
@ -1930,7 +1930,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
avoids[1] = new ExcludeList(); avoids[1] = new ExcludeList();
avoids[1].addCluster(_hostDao.findById(routerToBeAvoid.getHostId()).getClusterId()); avoids[1].addCluster(_hostDao.findById(routerToBeAvoid.getHostId()).getClusterId());
avoids[2] = new ExcludeList(); avoids[2] = new ExcludeList();
List<VolumeVO> volumes = _volumeDao.findByInstanceAndType(routerToBeAvoid.getId(), Type.ROOT); List<VolumeVO> volumes = _volumeDao.findByInstanceAndType(routerToBeAvoid.getId(), Volume.Type.ROOT);
if (volumes != null && volumes.size() != 0) { if (volumes != null && volumes.size() != 0) {
avoids[2].addPool(volumes.get(0).getPoolId()); avoids[2].addPool(volumes.get(0).getPoolId());
} }

View File

@ -72,7 +72,7 @@ import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.PublicIpAddress; import com.cloud.network.PublicIpAddress;
import com.cloud.network.Site2SiteVpnConnection; import com.cloud.network.Site2SiteVpnConnection;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.VpcVirtualNetworkApplianceService; import com.cloud.network.VpcVirtualNetworkApplianceService;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.FirewallRulesDao;
@ -203,13 +203,13 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
for (PhysicalNetwork pNtwk : pNtwks) { for (PhysicalNetwork pNtwk : pNtwks) {
PhysicalNetworkServiceProvider provider = _physicalProviderDao.findByServiceProvider(pNtwk.getId(), PhysicalNetworkServiceProvider provider = _physicalProviderDao.findByServiceProvider(pNtwk.getId(),
VirtualRouterProviderType.VPCVirtualRouter.toString()); Type.VPCVirtualRouter.toString());
if (provider == null) { if (provider == null) {
throw new CloudRuntimeException("Cannot find service provider " + throw new CloudRuntimeException("Cannot find service provider " +
VirtualRouterProviderType.VPCVirtualRouter.toString() + " in physical network " + pNtwk.getId()); Type.VPCVirtualRouter.toString() + " in physical network " + pNtwk.getId());
} }
vpcVrProvider = _vrProviderDao.findByNspIdAndType(provider.getId(), vpcVrProvider = _vrProviderDao.findByNspIdAndType(provider.getId(),
VirtualRouterProviderType.VPCVirtualRouter); Type.VPCVirtualRouter);
if (vpcVrProvider != null) { if (vpcVrProvider != null) {
break; break;
} }

View File

@ -140,12 +140,11 @@ import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.db.DB; import com.cloud.utils.db.DB;
import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.GenericSearchBuilder;
import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.GlobalLock;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.utils.db.SearchCriteria.Func;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.Transaction; import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException; import com.cloud.utils.fsm.NoTransitionException;
@ -2256,27 +2255,27 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
@Override @Override
public List<HostVO> findDirectlyConnectedHosts() { public List<HostVO> findDirectlyConnectedHosts() {
/* The resource column is not null for direct connected resource */ /* The resource column is not null for direct connected resource */
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getResource(), Op.NNULL); sc.and(sc.entity().getResource(), Op.NNULL);
sc.addAnd(sc.getEntity().getResourceState(), Op.NIN, ResourceState.Disabled); sc.and(sc.entity().getResourceState(), Op.NIN, ResourceState.Disabled);
return sc.list(); return sc.list();
} }
@Override @Override
public List<HostVO> listAllUpAndEnabledHosts(Type type, Long clusterId, Long podId, long dcId) { public List<HostVO> listAllUpAndEnabledHosts(Type type, Long clusterId, Long podId, long dcId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
if (type != null) { if (type != null) {
sc.addAnd(sc.getEntity().getType(), Op.EQ, type); sc.and(sc.entity().getType(), Op.EQ,type);
} }
if (clusterId != null) { if (clusterId != null) {
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, clusterId); sc.and(sc.entity().getClusterId(), Op.EQ,clusterId);
} }
if (podId != null) { if (podId != null) {
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, podId); sc.and(sc.entity().getPodId(), Op.EQ,podId);
} }
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ,Status.Up);
sc.addAnd(sc.getEntity().getResourceState(), Op.EQ, ResourceState.Enabled); sc.and(sc.entity().getResourceState(), Op.EQ,ResourceState.Enabled);
return sc.list(); return sc.list();
} }
@ -2288,60 +2287,60 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
@Override @Override
public List<HostVO> findHostByGuid(long dcId, String guid) { public List<HostVO> findHostByGuid(long dcId, String guid) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
sc.addAnd(sc.getEntity().getGuid(), Op.EQ, guid); sc.and(sc.entity().getGuid(), Op.EQ,guid);
return sc.list(); return sc.list();
} }
@Override @Override
public List<HostVO> listAllHostsInCluster(long clusterId) { public List<HostVO> listAllHostsInCluster(long clusterId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, clusterId); sc.and(sc.entity().getClusterId(), Op.EQ,clusterId);
return sc.list(); return sc.list();
} }
@Override @Override
public List<HostVO> listHostsInClusterByStatus(long clusterId, Status status) { public List<HostVO> listHostsInClusterByStatus(long clusterId, Status status) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, clusterId); sc.and(sc.entity().getClusterId(), Op.EQ,clusterId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, status); sc.and(sc.entity().getStatus(), Op.EQ,status);
return sc.list(); return sc.list();
} }
@Override @Override
public List<HostVO> listAllUpAndEnabledHostsInOneZoneByType(Type type, long dcId) { public List<HostVO> listAllUpAndEnabledHostsInOneZoneByType(Type type, long dcId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, type); sc.and(sc.entity().getType(), Op.EQ,type);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ,Status.Up);
sc.addAnd(sc.getEntity().getResourceState(), Op.EQ, ResourceState.Enabled); sc.and(sc.entity().getResourceState(), Op.EQ,ResourceState.Enabled);
return sc.list(); return sc.list();
} }
@Override @Override
public List<HostVO> listAllNotInMaintenanceHostsInOneZone(Type type, Long dcId) { public List<HostVO> listAllNotInMaintenanceHostsInOneZone(Type type, Long dcId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
if (dcId != null) { if (dcId != null) {
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
} }
sc.addAnd(sc.getEntity().getType(), Op.EQ, type); sc.and(sc.entity().getType(), Op.EQ,type);
sc.addAnd(sc.getEntity().getResourceState(), Op.NIN, ResourceState.Maintenance, ResourceState.ErrorInMaintenance, ResourceState.PrepareForMaintenance, ResourceState.Error); sc.and(sc.entity().getResourceState(), Op.NIN, ResourceState.Maintenance, ResourceState.ErrorInMaintenance, ResourceState.PrepareForMaintenance, ResourceState.Error);
return sc.list(); return sc.list();
} }
@Override @Override
public List<HostVO> listAllHostsInOneZoneByType(Type type, long dcId) { public List<HostVO> listAllHostsInOneZoneByType(Type type, long dcId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, type); sc.and(sc.entity().getType(), Op.EQ,type);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
return sc.list(); return sc.list();
} }
@Override @Override
public List<HostVO> listAllHostsInAllZonesByType(Type type) { public List<HostVO> listAllHostsInAllZonesByType(Type type) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, type); sc.and(sc.entity().getType(), Op.EQ,type);
return sc.list(); return sc.list();
} }
@ -2370,15 +2369,15 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
@Override @Override
public HostVO findHostByGuid(String guid) { public HostVO findHostByGuid(String guid) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getGuid(), Op.EQ, guid); sc.and(sc.entity().getGuid(), Op.EQ,guid);
return sc.find(); return sc.find();
} }
@Override @Override
public HostVO findHostByName(String name) { public HostVO findHostByName(String name) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getName(), Op.EQ, name); sc.and(sc.entity().getName(), Op.EQ,name);
return sc.find(); return sc.find();
} }
@ -2449,11 +2448,11 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
@Override @Override
public List<HostVO> listAllUpAndEnabledHostsInOneZoneByHypervisor(HypervisorType type, long dcId) { public List<HostVO> listAllUpAndEnabledHostsInOneZoneByHypervisor(HypervisorType type, long dcId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getHypervisorType(), Op.EQ, type); sc.and(sc.entity().getHypervisorType(), Op.EQ,type);
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.and(sc.entity().getStatus(), Op.EQ,Status.Up);
sc.addAnd(sc.getEntity().getResourceState(), Op.EQ, ResourceState.Enabled); sc.and(sc.entity().getResourceState(), Op.EQ,ResourceState.Enabled);
return sc.list(); return sc.list();
} }

View File

@ -142,10 +142,10 @@ public class OCFS2ManagerImpl extends ManagerBase implements OCFS2Manager, Resou
} }
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, clusterId); sc.and(sc.entity().getClusterId(), Op.EQ, clusterId);
sc.addAnd(sc.getEntity().getPodId(), Op.EQ, cluster.getPodId()); sc.and(sc.entity().getPodId(), Op.EQ, cluster.getPodId());
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, cluster.getDataCenterId()); sc.and(sc.entity().getDataCenterId(), Op.EQ, cluster.getDataCenterId());
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); sc.and(sc.entity().getType(), Op.EQ, Host.Type.Routing);
List<HostVO> hosts = sc.list(); List<HostVO> hosts = sc.list();
if (hosts.isEmpty()) { if (hosts.isEmpty()) {
s_logger.debug("There is no host in cluster " + clusterId + ", no need to prepare OCFS2 nodes"); s_logger.debug("There is no host in cluster " + clusterId + ", no need to prepare OCFS2 nodes");

View File

@ -75,6 +75,7 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.exception.StorageUnavailableException; import com.cloud.exception.StorageUnavailableException;
import com.cloud.host.Host; import com.cloud.host.Host;
import com.cloud.host.HostVO; import com.cloud.host.HostVO;
import com.cloud.host.Status;
import com.cloud.host.dao.HostDao; import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.info.RunningHostCountInfo; import com.cloud.info.RunningHostCountInfo;
@ -114,9 +115,8 @@ import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.utils.component.ManagerBase; import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.GlobalLock;
import com.cloud.utils.db.QueryBuilder;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.db.GenericQueryBuilder;
import com.cloud.utils.events.SubscriptionMgr; import com.cloud.utils.events.SubscriptionMgr;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils; import com.cloud.utils.net.NetUtils;
@ -420,9 +420,9 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
SecStorageFirewallCfgCommand thiscpc = new SecStorageFirewallCfgCommand(true); SecStorageFirewallCfgCommand thiscpc = new SecStorageFirewallCfgCommand(true);
thiscpc.addPortConfig(thisSecStorageVm.getPublicIpAddress(), copyPort, true, TemplateConstants.DEFAULT_TMPLT_COPY_INTF); thiscpc.addPortConfig(thisSecStorageVm.getPublicIpAddress(), copyPort, true, TemplateConstants.DEFAULT_TMPLT_COPY_INTF);
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.SecondaryStorageVM); sc.and(sc.entity().getType(), Op.EQ,Host.Type.SecondaryStorageVM);
sc.addAnd(sc.getEntity().getStatus(), Op.IN, com.cloud.host.Status.Up, com.cloud.host.Status.Connecting); sc.and(sc.entity().getStatus(), Op.IN, Status.Up, Status.Connecting);
List<HostVO> ssvms = sc.list(); List<HostVO> ssvms = sc.list();
for (HostVO ssvm : ssvms) { for (HostVO ssvm : ssvms) {
if (ssvm.getId() == ssAHostId) { if (ssvm.getId() == ssAHostId) {
@ -1345,12 +1345,12 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
@Override @Override
public List<HostVO> listUpAndConnectingSecondaryStorageVmHost(Long dcId) { public List<HostVO> listUpAndConnectingSecondaryStorageVmHost(Long dcId) {
GenericQueryBuilder<HostVO, HostVO> sc = GenericQueryBuilder.create(HostVO.class); QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
if (dcId != null) { if (dcId != null) {
sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.and(sc.entity().getDataCenterId(), Op.EQ,dcId);
} }
sc.addAnd(sc.getEntity().getState(), Op.IN, com.cloud.host.Status.Up, com.cloud.host.Status.Connecting); sc.and(sc.entity().getState(), Op.IN, Status.Up, Status.Connecting);
sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.SecondaryStorageVM); sc.and(sc.entity().getType(), Op.EQ,Host.Type.SecondaryStorageVM);
return sc.list(); return sc.list();
} }