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,15 +57,15 @@ 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()) {
s_logger.debug("No direct agents in status " + Status.Up + " exist for the management server " + msId + "; so it doesn't participate in agent rebalancing process"); s_logger.debug("No direct agents in status " + Status.Up + " exist for the management server " + msId + "; so it doesn't participate in agent rebalancing process");
return null; return null;
} }
Map<Long, List<HostVO>> hostToClusterMap = new HashMap<Long, List<HostVO>>(); Map<Long, List<HostVO>> hostToClusterMap = new HashMap<Long, List<HostVO>>();
@ -91,7 +89,7 @@ public class ClusterBasedAgentLoadBalancerPlanner extends AdapterBase implements
int hostsLeft = directHosts.size(); int hostsLeft = directHosts.size();
List<HostVO> hostsToReturn = new ArrayList<HostVO>(); List<HostVO> hostsToReturn = new ArrayList<HostVO>();
s_logger.debug("Management server " + msId + " can give away " + hostsToGive + " as it currently owns " + allHosts.size() + s_logger.debug("Management server " + msId + " can give away " + hostsToGive + " as it currently owns " + allHosts.size() +
" and the average agent load in the system is " + avLoad + "; finalyzing list of hosts to give away..."); " and the average agent load in the system is " + avLoad + "; finalyzing list of hosts to give away...");
for (Long cluster : hostToClusterMap.keySet()) { for (Long cluster : hostToClusterMap.keySet()) {
List<HostVO> hostsInCluster = hostToClusterMap.get(cluster); List<HostVO> hostsInCluster = hostToClusterMap.get(cluster);
@ -105,7 +103,7 @@ public class ClusterBasedAgentLoadBalancerPlanner extends AdapterBase implements
continue; continue;
} else { } else {
break; break;
} }
} else { } else {
s_logger.debug("Taking all " + hostsInCluster.size() + " hosts: " + hostsInCluster + " from cluster id=" + cluster); s_logger.debug("Taking all " + hostsInCluster.size() + " hosts: " + hostsInCluster + " from cluster id=" + cluster);
hostsToReturn.addAll(hostsInCluster); hostsToReturn.addAll(hostsInCluster);

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

@ -5,19 +5,28 @@
// to you under the Apache License, Version 2.0 (the // to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance // "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at // with the License. You may obtain a copy of the License at
// //
// http://www.apache.org/licenses/LICENSE-2.0 // http://www.apache.org/licenses/LICENSE-2.0
// //
// Unless required by applicable law or agreed to in writing, // Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an // software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the // KIND, either express or implied. See the License for the
// specific language governing permissions and limitations // specific language governing permissions and limitations
// under the License. // under the License.
// //
// 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,244 +48,214 @@ 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 protected String _publicNetworkDevice;
.getLogger(OvmDiscoverer.class); protected String _privateNetworkDevice;
protected String _publicNetworkDevice; protected String _guestNetworkDevice;
protected String _privateNetworkDevice;
protected String _guestNetworkDevice;
@Inject @Inject
ClusterDao _clusterDao; ClusterDao _clusterDao;
@Inject @Inject
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().getSimpleName(), this);
_resourceMgr.registerResourceStateAdapter(this.getClass() return true;
.getSimpleName(), this); }
return true;
}
protected OvmDiscoverer() { protected OvmDiscoverer() {
} }
@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; }
} if (clusterId == null) {
if (clusterId == null) { String msg = "must specify cluster Id when add host";
String msg = "must specify cluster Id when add host"; s_logger.debug(msg);
s_logger.debug(msg); throw new CloudRuntimeException(msg);
throw new CloudRuntimeException(msg); }
}
if (podId == null) { if (podId == null) {
String msg = "must specify pod Id when add host"; String msg = "must specify pod Id when add host";
s_logger.debug(msg); s_logger.debug(msg);
throw new CloudRuntimeException(msg); throw new CloudRuntimeException(msg);
} }
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; }
}
String agentUsername = _params.get("agentusername"); String agentUsername = _params.get("agentusername");
if (agentUsername == null) { if (agentUsername == null) {
throw new CloudRuntimeException("Agent user name must be specified"); throw new CloudRuntimeException("Agent user name must be specified");
} }
String agentPassword = _params.get("agentpassword"); String agentPassword = _params.get("agentpassword");
if (agentPassword == null) { if (agentPassword == null) {
throw new CloudRuntimeException("Agent password must be specified"); throw new CloudRuntimeException("Agent password must be specified");
} }
try { try {
String hostname = url.getHost(); String hostname = url.getHost();
InetAddress ia = InetAddress.getByName(hostname); InetAddress ia = InetAddress.getByName(hostname);
String hostIp = ia.getHostAddress(); String hostIp = ia.getHostAddress();
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) {
clu.setGuid(UUID.randomUUID().toString()); clu.setGuid(UUID.randomUUID().toString());
_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, username, password);
sshConnection = SSHCmdHelper.acquireAuthorizedConnection(hostIp, if (sshConnection == null) {
username, password); throw new DiscoveryException(String.format("Cannot connect to ovm host(IP=%1$s, username=%2$s, password=%3$s, discover failed", hostIp, username, password));
if (sshConnection == null) { }
throw new DiscoveryException(
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>();
OvmResourceBase ovmResource = new OvmResourceBase(); OvmResourceBase ovmResource = new OvmResourceBase();
details.put("ip", hostIp); details.put("ip", hostIp);
details.put("username", username); details.put("username", username);
details.put("password", password); details.put("password", password);
details.put("zone", Long.toString(dcId)); details.put("zone", Long.toString(dcId));
details.put("guid", guid); details.put("guid", guid);
details.put("pod", Long.toString(podId)); details.put("pod", Long.toString(podId));
details.put("cluster", Long.toString(clusterId)); details.put("cluster", Long.toString(clusterId));
details.put("agentusername", agentUsername); details.put("agentusername", agentUsername);
details.put("agentpassword", agentPassword); details.put("agentpassword", agentPassword);
if (_publicNetworkDevice != null) { if (_publicNetworkDevice != null) {
details.put("public.network.device", _publicNetworkDevice); details.put("public.network.device", _publicNetworkDevice);
} }
if (_privateNetworkDevice != null) { if (_privateNetworkDevice != null) {
details.put("private.network.device", _privateNetworkDevice); details.put("private.network.device", _privateNetworkDevice);
} }
if (_guestNetworkDevice != null) { if (_guestNetworkDevice != null) {
details.put("guest.network.device", _guestNetworkDevice); details.put("guest.network.device", _guestNetworkDevice);
} }
Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params = new HashMap<String, Object>();
params.putAll(details); params.putAll(details);
ovmResource.configure("Ovm Server", params); ovmResource.configure("Ovm Server", params);
ovmResource.start(); ovmResource.start();
conn = new Connection(hostIp, "oracle", agentPassword); conn = new Connection(hostIp, "oracle", agentPassword);
/* After resource start, we are able to execute our agent api */ /* After resource start, we are able to execute our agent api */
OvmHost.Details d = OvmHost.getDetails(conn); OvmHost.Details d = OvmHost.getDetails(conn);
details.put("agentVersion", d.agentVersion); details.put("agentVersion", d.agentVersion);
details.put(HostInfo.HOST_OS_KERNEL_VERSION, d.dom0KernelVersion); details.put(HostInfo.HOST_OS_KERNEL_VERSION, d.dom0KernelVersion);
details.put(HostInfo.HYPERVISOR_VERSION, d.hypervisorVersion); details.put(HostInfo.HYPERVISOR_VERSION, d.hypervisorVersion);
Map<OvmResourceBase, Map<String, String>> resources = new HashMap<OvmResourceBase, Map<String, String>>(); Map<OvmResourceBase, Map<String, String>> resources = new HashMap<OvmResourceBase, Map<String, String>>();
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("Host name resolve failed exception, Unable to discover OVM: " + url, e);
s_logger.debug( return null;
"Host name resolve failed exception, Unable to discover OVM: " } catch (ConfigurationException e) {
+ url, e); s_logger.debug("Configure resource failed, Unable to discover OVM: " + url, e);
return null; return null;
} catch (ConfigurationException e) { } catch (Exception e) {
s_logger.debug( s_logger.debug("Unable to discover OVM: " + url, e);
"Configure resource failed, Unable to discover OVM: " + url, return null;
e); }
return null; }
} catch (Exception e) {
s_logger.debug("Unable to discover OVM: " + url, e);
return null;
}
}
@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
} }
@Override @Override
public boolean matchHypervisor(String hypervisor) { public boolean matchHypervisor(String hypervisor) {
return HypervisorType.Ovm.toString().equalsIgnoreCase(hypervisor); return HypervisorType.Ovm.toString().equalsIgnoreCase(hypervisor);
} }
@Override @Override
public HypervisorType getHypervisorType() { public HypervisorType getHypervisorType() {
return HypervisorType.Ovm; return HypervisorType.Ovm;
} }
@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, StartupCommand firstCmd = startup[0];
Map<String, String> details, List<String> hostTags) { if (!(firstCmd instanceof StartupRoutingCommand)) {
StartupCommand firstCmd = startup[0]; return null;
if (!(firstCmd instanceof StartupRoutingCommand)) { }
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 return null;
|| host.getHypervisorType() != HypervisorType.Ovm) { }
return null;
}
_resourceMgr.deleteRoutingHost(host, isForced, isForceDeleteStorage); _resourceMgr.deleteRoutingHost(host, isForced, isForceDeleteStorage);
return new DeleteHostAnswer(true); return new DeleteHostAnswer(true);
} }
} }

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

@ -5,7 +5,7 @@
// to you under the Apache License, Version 2.0 (the // to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance // "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at // with the License. You may obtain a copy of the License at
// //
// http://www.apache.org/licenses/LICENSE-2.0 // http://www.apache.org/licenses/LICENSE-2.0
// //
// Unless required by applicable law or agreed to in writing, // Unless required by applicable law or agreed to in writing,
@ -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,19 +91,16 @@ 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,
DhcpServiceProvider.class, UserDataServiceProvider.class,
@Local(value = {NetworkElement.class, FirewallServiceProvider.class,
DhcpServiceProvider.class, UserDataServiceProvider.class,
StaticNatServiceProvider.class, LoadBalancingServiceProvider.class, StaticNatServiceProvider.class, LoadBalancingServiceProvider.class,
PortForwardingServiceProvider.class, IpDeployer.class, PortForwardingServiceProvider.class, IpDeployer.class,
RemoteAccessVPNServiceProvider.class, NetworkMigrationResponder.class} ) RemoteAccessVPNServiceProvider.class, NetworkMigrationResponder.class} )
public class VirtualRouterElement extends AdapterBase implements VirtualRouterElementService, DhcpServiceProvider, public class VirtualRouterElement extends AdapterBase implements VirtualRouterElementService, DhcpServiceProvider,
UserDataServiceProvider, SourceNatServiceProvider, StaticNatServiceProvider, FirewallServiceProvider, UserDataServiceProvider, SourceNatServiceProvider, StaticNatServiceProvider, FirewallServiceProvider,
LoadBalancingServiceProvider, PortForwardingServiceProvider, RemoteAccessVPNServiceProvider, IpDeployer, LoadBalancingServiceProvider, PortForwardingServiceProvider, RemoteAccessVPNServiceProvider, IpDeployer,
NetworkMigrationResponder { NetworkMigrationResponder {
@ -166,7 +163,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
} else { } else {
if (!_networkMgr.isProviderSupportServiceInNetwork(network.getId(), service, getProvider())) { if (!_networkMgr.isProviderSupportServiceInNetwork(network.getId(), service, getProvider())) {
s_logger.trace("Element " + getProvider().getName() + " doesn't support service " + service.getName() s_logger.trace("Element " + getProvider().getName() + " doesn't support service " + service.getName()
+ " in the network " + network); + " in the network " + network);
return false; return false;
} }
@ -187,19 +184,19 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
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 = _routerMgr.deployVirtualRouterInGuestNetwork(network, dest, List<DomainRouterVO> routers = _routerMgr.deployVirtualRouterInGuestNetwork(network, dest,
_accountMgr.getAccount(network.getAccountId()), params, _accountMgr.getAccount(network.getAccountId()), params,
offering.getRedundantRouter()); offering.getRedundantRouter());
if ((routers == null) || (routers.size() == 0)) { if ((routers == null) || (routers.size() == 0)) {
throw new ResourceUnavailableException("Can't find at least one running router!", throw new ResourceUnavailableException("Can't find at least one running router!",
DataCenter.class, network.getDataCenterId()); DataCenter.class, network.getDataCenterId());
} }
return true; return true;
} }
@Override @Override
public boolean prepare(Network network, NicProfile nic, VirtualMachineProfile vm, public boolean prepare(Network network, NicProfile nic, VirtualMachineProfile vm,
DeployDestination dest, ReservationContext context) DeployDestination dest, ReservationContext context)
throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException { throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
if (vm.getType() != VirtualMachine.Type.User || vm.getHypervisorType() == HypervisorType.BareMetal) { if (vm.getType() != VirtualMachine.Type.User || vm.getHypervisorType() == HypervisorType.BareMetal) {
@ -219,15 +216,15 @@ 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());
if ((routers == null) || (routers.size() == 0)) { if ((routers == null) || (routers.size() == 0)) {
throw new ResourceUnavailableException("Can't find at least one running router!", throw new ResourceUnavailableException("Can't find at least one running router!",
DataCenter.class, network.getDataCenterId()); DataCenter.class, network.getDataCenterId());
} }
return true; return true;
} }
@Override @Override
@ -306,11 +303,11 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
expire = value; expire = value;
} }
if ((expire != null) && !containsOnlyNumbers(expire, timeEndChar)) { if ((expire != null) && !containsOnlyNumbers(expire, timeEndChar)) {
throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() + throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() +
" Cause: expire is not in timeformat: " + expire); " Cause: expire is not in timeformat: " + expire);
} }
if ((tablesize != null) && !containsOnlyNumbers(tablesize, "kmg")) { if ((tablesize != null) && !containsOnlyNumbers(tablesize, "kmg")) {
throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() + throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() +
" Cause: tablesize is not in size format: " + tablesize); " Cause: tablesize is not in size format: " + tablesize);
} }
@ -337,11 +334,11 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
if ((length != null) && (!containsOnlyNumbers(length, null))) { if ((length != null) && (!containsOnlyNumbers(length, null))) {
throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() + throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() +
" Cause: length is not a number: " + length); " Cause: length is not a number: " + length);
} }
if ((holdTime != null) && (!containsOnlyNumbers(holdTime, timeEndChar) && !containsOnlyNumbers(holdTime, null))) { if ((holdTime != null) && (!containsOnlyNumbers(holdTime, timeEndChar) && !containsOnlyNumbers(holdTime, null))) {
throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() + throw new InvalidParameterValueException("Failed LB in validation rule id: " + rule.getId() +
" Cause: holdtime is not in timeformat: " + holdTime); " Cause: holdtime is not in timeformat: " + holdTime);
} }
} }
@ -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,13 +429,13 @@ 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;
} }
} }
@Override @Override
public boolean applyIps(Network network, List<? extends PublicIpAddress> ipAddress, Set<Service> services) public boolean applyIps(Network network, List<? extends PublicIpAddress> ipAddress, Set<Service> services)
throws ResourceUnavailableException { throws ResourceUnavailableException {
boolean canHandle = true; boolean canHandle = true;
for (Service service : services) { for (Service service : services) {
@ -636,7 +633,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@Override @Override
public boolean shutdown(Network network, ReservationContext context, boolean cleanup) public boolean shutdown(Network network, ReservationContext context, boolean cleanup)
throws ConcurrentOperationException, ResourceUnavailableException { throws ConcurrentOperationException, ResourceUnavailableException {
List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
if (routers == null || routers.isEmpty()) { if (routers == null || routers.isEmpty()) {
@ -672,7 +669,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@Override @Override
public boolean savePassword(Network network, NicProfile nic, VirtualMachineProfile vm) public boolean savePassword(Network network, NicProfile nic, VirtualMachineProfile vm)
throws ResourceUnavailableException { throws ResourceUnavailableException {
if (!canHandle(network, null)) { if (!canHandle(network, null)) {
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) {
@ -786,7 +783,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
@Override @Override
public boolean isReady(PhysicalNetworkServiceProvider provider) { public boolean isReady(PhysicalNetworkServiceProvider provider) {
VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(), VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(),
getVirtualRouterProvider()); getVirtualRouterProvider());
if (element == null) { if (element == null) {
return false; return false;
@ -795,10 +792,10 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@Override @Override
public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider provider, ReservationContext context) public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider provider, ReservationContext context)
throws ConcurrentOperationException, throws ConcurrentOperationException,
ResourceUnavailableException { ResourceUnavailableException {
VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(), VirtualRouterProviderVO element = _vrProviderDao.findByNspIdAndType(provider.getId(),
getVirtualRouterProvider()); getVirtualRouterProvider());
if (element == null) { if (element == null) {
return true; return true;
@ -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);
@ -880,7 +877,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
} }
@Override @Override
public boolean addDhcpEntry(Network network, NicProfile nic, VirtualMachineProfile vm, public boolean addDhcpEntry(Network network, NicProfile nic, VirtualMachineProfile vm,
DeployDestination dest, ReservationContext context) DeployDestination dest, ReservationContext context)
throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException { throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
if (canHandle(network, Service.Dhcp)) { if (canHandle(network, Service.Dhcp)) {
@ -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);
@ -935,7 +932,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
if (_networkMgr.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, getProvider())) { if (_networkMgr.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, getProvider())) {
publicNetwork = true; publicNetwork = true;
} }
boolean isPodBased = (dest.getDataCenter().getNetworkType() == NetworkType.Basic boolean isPodBased = (dest.getDataCenter().getNetworkType() == NetworkType.Basic
|| _networkMgr.isSecurityGroupSupportedInNetwork(network)) && || _networkMgr.isSecurityGroupSupportedInNetwork(network)) &&
network.getTrafficType() == TrafficType.Guest; network.getTrafficType() == TrafficType.Guest;
@ -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();
} }
@ -989,7 +986,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
@Override @Override
public boolean verifyServicesCombination(Set<Service> services) { public boolean verifyServicesCombination(Set<Service> services) {
if (!services.contains(Service.SourceNat)) { if (!services.contains(Service.SourceNat)) {
if (services.contains(Service.StaticNat) || services.contains(Service.Firewall) || services.contains(Service.Lb) || if (services.contains(Service.StaticNat) || services.contains(Service.Firewall) || services.contains(Service.Lb) ||
services.contains(Service.PortForwarding) || services.contains(Service.Vpn)) { services.contains(Service.PortForwarding) || services.contains(Service.Vpn)) {
String servicesList = "["; String servicesList = "[";
for (Service service : services) { for (Service service : services) {
@ -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();
} }