mirror of https://github.com/apache/cloudstack.git
changes for host reqrieval from db
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
This commit is contained in:
parent
d2075415ac
commit
a5d02665b4
|
|
@ -146,12 +146,12 @@ public interface CapacityManager {
|
|||
|
||||
/**
|
||||
* Check if specified host has capability to support cpu cores and speed freq
|
||||
* @param hostId the host to be checked
|
||||
* @param host the host to be checked
|
||||
* @param cpuNum cpu number to check
|
||||
* @param cpuSpeed cpu Speed to check
|
||||
* @return true if the count of host's running VMs >= hypervisor limit
|
||||
*/
|
||||
boolean checkIfHostHasCpuCapability(long hostId, Integer cpuNum, Integer cpuSpeed);
|
||||
boolean checkIfHostHasCpuCapability(Host host, Integer cpuNum, Integer cpuSpeed);
|
||||
|
||||
/**
|
||||
* Check if cluster will cross threshold if the cpu/memory requested are accommodated
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ public interface ResourceManager extends ResourceService, Configurable {
|
|||
|
||||
public HostVO findHostByName(String name);
|
||||
|
||||
HostStats getHostStatistics(long hostId);
|
||||
HostStats getHostStatistics(Host host);
|
||||
|
||||
Long getGuestOSCategoryId(long hostId);
|
||||
|
||||
|
|
|
|||
|
|
@ -250,14 +250,13 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
|
|||
return new ClusteredAgentHandler(type, link, data);
|
||||
}
|
||||
|
||||
protected AgentAttache createAttache(final long id) {
|
||||
s_logger.debug("create forwarding ClusteredAgentAttache for " + id);
|
||||
final HostVO host = _hostDao.findById(id);
|
||||
final AgentAttache attache = new ClusteredAgentAttache(this, id, host.getName());
|
||||
protected AgentAttache createAttache(final Host host) {
|
||||
s_logger.debug("create forwarding ClusteredAgentAttache for " + host.getId());
|
||||
final AgentAttache attache = new ClusteredAgentAttache(this, host.getId(), host.getName());
|
||||
AgentAttache old = null;
|
||||
synchronized (_agents) {
|
||||
old = _agents.get(id);
|
||||
_agents.put(id, attache);
|
||||
old = _agents.get(host.getId());
|
||||
_agents.put(host.getId(), attache);
|
||||
}
|
||||
if (old != null) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
|
|
@ -567,12 +566,12 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
|
|||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Host " + hostId + " has switched to another management server, need to update agent map with a forwarding agent attache");
|
||||
}
|
||||
agent = createAttache(hostId);
|
||||
agent = createAttache(host);
|
||||
}
|
||||
}
|
||||
if (agent == null) {
|
||||
final AgentUnavailableException ex = new AgentUnavailableException("Host with specified id is not in the right state: " + host.getStatus(), hostId);
|
||||
ex.addProxyObject(_entityMgr.findById(Host.class, hostId).getUuid());
|
||||
ex.addProxyObject(host.getUuid());
|
||||
throw ex;
|
||||
}
|
||||
|
||||
|
|
@ -1169,7 +1168,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
|
|||
final ClusteredDirectAgentAttache attache = (ClusteredDirectAgentAttache)_agents.get(hostId);
|
||||
if (attache != null && attache.getQueueSize() == 0 && attache.getNonRecurringListenersSize() == 0) {
|
||||
handleDisconnectWithoutInvestigation(attache, Event.StartAgentRebalance, true, true);
|
||||
final ClusteredAgentAttache forwardAttache = (ClusteredAgentAttache)createAttache(hostId);
|
||||
final ClusteredAgentAttache forwardAttache = (ClusteredAgentAttache)createAttache(host);
|
||||
if (forwardAttache == null) {
|
||||
s_logger.warn("Unable to create a forward attache for the host " + hostId + " as a part of rebalance process");
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -177,4 +177,6 @@ public interface HostDao extends GenericDao<HostVO, Long>, StateDao<Status, Stat
|
|||
List<Long> listAllIds();
|
||||
|
||||
List<HypervisorType> listDistinctHypervisorTypes(final Long zoneId);
|
||||
|
||||
List<HostVO> listByIds(final List<Long> ids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@ public class HostDaoImpl extends GenericDaoBase<HostVO, Long> implements HostDao
|
|||
|
||||
protected SearchBuilder<HostVO> TypePodDcStatusSearch;
|
||||
|
||||
protected SearchBuilder<HostVO> IdsSearch;
|
||||
protected SearchBuilder<HostVO> IdStatusSearch;
|
||||
protected SearchBuilder<HostVO> TypeDcSearch;
|
||||
protected SearchBuilder<HostVO> TypeDcStatusSearch;
|
||||
|
|
@ -246,6 +247,10 @@ public class HostDaoImpl extends GenericDaoBase<HostVO, Long> implements HostDao
|
|||
TypeClusterStatusSearch.and("resourceState", TypeClusterStatusSearch.entity().getResourceState(), SearchCriteria.Op.EQ);
|
||||
TypeClusterStatusSearch.done();
|
||||
|
||||
IdsSearch = createSearchBuilder();
|
||||
IdsSearch.and("id", IdsSearch.entity().getId(), SearchCriteria.Op.IN);
|
||||
IdsSearch.done();
|
||||
|
||||
IdStatusSearch = createSearchBuilder();
|
||||
IdStatusSearch.and("id", IdStatusSearch.entity().getId(), SearchCriteria.Op.EQ);
|
||||
IdStatusSearch.and("states", IdStatusSearch.entity().getStatus(), SearchCriteria.Op.IN);
|
||||
|
|
@ -1605,4 +1610,11 @@ public class HostDaoImpl extends GenericDaoBase<HostVO, Long> implements HostDao
|
|||
sc.setParameters("type", Type.Routing);
|
||||
return customSearch(sc, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HostVO> listByIds(List<Long> ids) {
|
||||
SearchCriteria<HostVO> sc = IdsSearch.create();
|
||||
sc.setParameters("id", ids.toArray());
|
||||
return search(sc, null);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -227,8 +227,8 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
long reservedMem = capacityMemory.getReservedCapacity();
|
||||
long reservedCpuCore = capacityCpuCore.getReservedCapacity();
|
||||
long actualTotalCpu = capacityCpu.getTotalCapacity();
|
||||
float cpuOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterIdFinal, "cpuOvercommitRatio").getValue());
|
||||
float memoryOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterIdFinal, "memoryOvercommitRatio").getValue());
|
||||
float cpuOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterIdFinal, VmDetailConstants.CPU_OVER_COMMIT_RATIO).getValue());
|
||||
float memoryOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterIdFinal, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO).getValue());
|
||||
int vmCPU = svo.getCpu() * svo.getSpeed();
|
||||
int vmCPUCore = svo.getCpu();
|
||||
long vmMem = svo.getRamSize() * 1024L * 1024L;
|
||||
|
|
@ -302,8 +302,8 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
final long hostId = vm.getHostId();
|
||||
final HostVO host = _hostDao.findById(hostId);
|
||||
final long clusterId = host.getClusterId();
|
||||
final float cpuOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterId, "cpuOvercommitRatio").getValue());
|
||||
final float memoryOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterId, "memoryOvercommitRatio").getValue());
|
||||
final float cpuOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterId, VmDetailConstants.CPU_OVER_COMMIT_RATIO).getValue());
|
||||
final float memoryOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(clusterId, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO).getValue());
|
||||
|
||||
final ServiceOfferingVO svo = _offeringsDao.findById(vm.getId(), vm.getServiceOfferingId());
|
||||
|
||||
|
|
@ -389,13 +389,13 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
",alloc_from_last:" + fromLastHost);
|
||||
|
||||
long cluster_id = host.getClusterId();
|
||||
ClusterDetailsVO cluster_detail_cpu = _clusterDetailsDao.findDetail(cluster_id, "cpuOvercommitRatio");
|
||||
ClusterDetailsVO cluster_detail_ram = _clusterDetailsDao.findDetail(cluster_id, "memoryOvercommitRatio");
|
||||
ClusterDetailsVO cluster_detail_cpu = _clusterDetailsDao.findDetail(cluster_id, VmDetailConstants.CPU_OVER_COMMIT_RATIO);
|
||||
ClusterDetailsVO cluster_detail_ram = _clusterDetailsDao.findDetail(cluster_id, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
||||
Float cpuOvercommitRatio = Float.parseFloat(cluster_detail_cpu.getValue());
|
||||
Float memoryOvercommitRatio = Float.parseFloat(cluster_detail_ram.getValue());
|
||||
|
||||
boolean hostHasCpuCapability, hostHasCapacity = false;
|
||||
hostHasCpuCapability = checkIfHostHasCpuCapability(host.getId(), cpucore, cpuspeed);
|
||||
hostHasCpuCapability = checkIfHostHasCpuCapability(host, cpucore, cpuspeed);
|
||||
|
||||
if (hostHasCpuCapability) {
|
||||
// first check from reserved capacity
|
||||
|
|
@ -425,22 +425,20 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkIfHostHasCpuCapability(long hostId, Integer cpuNum, Integer cpuSpeed) {
|
||||
|
||||
public boolean checkIfHostHasCpuCapability(Host host, Integer cpuNum, Integer cpuSpeed) {
|
||||
// Check host can support the Cpu Number and Speed.
|
||||
Host host = _hostDao.findById(hostId);
|
||||
boolean isCpuNumGood = host.getCpus().intValue() >= cpuNum;
|
||||
boolean isCpuSpeedGood = host.getSpeed().intValue() >= cpuSpeed;
|
||||
if (isCpuNumGood && isCpuSpeedGood) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Host: " + hostId + " has cpu capability (cpu:" + host.getCpus() + ", speed:" + host.getSpeed() +
|
||||
") to support requested CPU: " + cpuNum + " and requested speed: " + cpuSpeed);
|
||||
s_logger.debug("Host: " + host.getId() + " has cpu capability (cpu:" + host.getCpus() + ", speed:" + host.getSpeed() +
|
||||
") to support requested CPU: " + cpuNum + " and requested speed: " + cpuSpeed);
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Host: " + hostId + " doesn't have cpu capability (cpu:" + host.getCpus() + ", speed:" + host.getSpeed() +
|
||||
") to support requested CPU: " + cpuNum + " and requested speed: " + cpuSpeed);
|
||||
s_logger.debug("Host: " + host.getId() + " doesn't have cpu capability (cpu:" + host.getCpus() + ", speed:" + host.getSpeed() +
|
||||
") to support requested CPU: " + cpuNum + " and requested speed: " + cpuSpeed);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -655,8 +653,8 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
}
|
||||
|
||||
protected Pair<ClusterDetailsVO, ClusterDetailsVO> getClusterValues(long clusterId) {
|
||||
return new Pair<>(_clusterDetailsDao.findDetail(clusterId, "cpuOvercommitRatio"),
|
||||
_clusterDetailsDao.findDetail(clusterId, "memoryOvercommitRatio"));
|
||||
return new Pair<>(_clusterDetailsDao.findDetail(clusterId, VmDetailConstants.CPU_OVER_COMMIT_RATIO),
|
||||
_clusterDetailsDao.findDetail(clusterId, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1077,8 +1075,8 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
capacityCPU.addAnd("podId", SearchCriteria.Op.EQ, server.getPodId());
|
||||
capacityCPU.addAnd("capacityType", SearchCriteria.Op.EQ, Capacity.CAPACITY_TYPE_CPU);
|
||||
List<CapacityVO> capacityVOCpus = _capacityDao.search(capacitySC, null);
|
||||
Float cpuovercommitratio = Float.parseFloat(_clusterDetailsDao.findDetail(server.getClusterId(), "cpuOvercommitRatio").getValue());
|
||||
Float memoryOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(server.getClusterId(), "memoryOvercommitRatio").getValue());
|
||||
Float cpuovercommitratio = Float.parseFloat(_clusterDetailsDao.findDetail(server.getClusterId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO).getValue());
|
||||
Float memoryOvercommitRatio = Float.parseFloat(_clusterDetailsDao.findDetail(server.getClusterId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO).getValue());
|
||||
|
||||
if (capacityVOCpus != null && !capacityVOCpus.isEmpty()) {
|
||||
CapacityVO CapacityVOCpu = capacityVOCpus.get(0);
|
||||
|
|
@ -1135,9 +1133,9 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
|
||||
String capacityOverProvisioningName = "";
|
||||
if (capacityType == Capacity.CAPACITY_TYPE_CPU) {
|
||||
capacityOverProvisioningName = "cpuOvercommitRatio";
|
||||
capacityOverProvisioningName = VmDetailConstants.CPU_OVER_COMMIT_RATIO;
|
||||
} else if (capacityType == Capacity.CAPACITY_TYPE_MEMORY) {
|
||||
capacityOverProvisioningName = "memoryOvercommitRatio";
|
||||
capacityOverProvisioningName = VmDetailConstants.MEMORY_OVER_COMMIT_RATIO;
|
||||
} else {
|
||||
throw new CloudRuntimeException("Invalid capacityType - " + capacityType);
|
||||
}
|
||||
|
|
@ -1179,12 +1177,12 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||
int cpu_requested = offering.getCpu() * offering.getSpeed();
|
||||
long ram_requested = offering.getRamSize() * 1024L * 1024L;
|
||||
Cluster cluster = _clusterDao.findById(host.getClusterId());
|
||||
ClusterDetailsVO clusterDetailsCpuOvercommit = _clusterDetailsDao.findDetail(cluster.getId(), "cpuOvercommitRatio");
|
||||
ClusterDetailsVO clusterDetailsRamOvercommmt = _clusterDetailsDao.findDetail(cluster.getId(), "memoryOvercommitRatio");
|
||||
ClusterDetailsVO clusterDetailsCpuOvercommit = _clusterDetailsDao.findDetail(cluster.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO);
|
||||
ClusterDetailsVO clusterDetailsRamOvercommmt = _clusterDetailsDao.findDetail(cluster.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
||||
Float cpuOvercommitRatio = Float.parseFloat(clusterDetailsCpuOvercommit.getValue());
|
||||
Float memoryOvercommitRatio = Float.parseFloat(clusterDetailsRamOvercommmt.getValue());
|
||||
|
||||
boolean hostHasCpuCapability = checkIfHostHasCpuCapability(host.getId(), offering.getCpu(), offering.getSpeed());
|
||||
boolean hostHasCpuCapability = checkIfHostHasCpuCapability(host, offering.getCpu(), offering.getSpeed());
|
||||
boolean hostHasCapacity = checkIfHostHasCapacity(host.getId(), cpu_requested, ram_requested, false, cpuOvercommitRatio, memoryOvercommitRatio,
|
||||
considerReservedCapacity);
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import java.util.Optional;
|
|||
import java.util.Set;
|
||||
import java.util.Timer;
|
||||
import java.util.TreeSet;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
|
@ -143,6 +144,7 @@ import com.cloud.vm.VirtualMachine;
|
|||
import com.cloud.vm.VirtualMachine.Event;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
|
|
@ -443,14 +445,14 @@ StateListener<State, VirtualMachine.Event, VirtualMachine>, Configurable {
|
|||
if (checkVmProfileAndHost(vmProfile, host)) {
|
||||
long cluster_id = host.getClusterId();
|
||||
ClusterDetailsVO cluster_detail_cpu = _clusterDetailsDao.findDetail(cluster_id,
|
||||
"cpuOvercommitRatio");
|
||||
VmDetailConstants.CPU_OVER_COMMIT_RATIO);
|
||||
ClusterDetailsVO cluster_detail_ram = _clusterDetailsDao.findDetail(cluster_id,
|
||||
"memoryOvercommitRatio");
|
||||
VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
||||
Float cpuOvercommitRatio = Float.parseFloat(cluster_detail_cpu.getValue());
|
||||
Float memoryOvercommitRatio = Float.parseFloat(cluster_detail_ram.getValue());
|
||||
|
||||
boolean hostHasCpuCapability, hostHasCapacity = false;
|
||||
hostHasCpuCapability = _capacityMgr.checkIfHostHasCpuCapability(host.getId(), offering.getCpu(), offering.getSpeed());
|
||||
hostHasCpuCapability = _capacityMgr.checkIfHostHasCpuCapability(host, offering.getCpu(), offering.getSpeed());
|
||||
|
||||
if (hostHasCpuCapability) {
|
||||
// first check from reserved capacity
|
||||
|
|
@ -1063,11 +1065,13 @@ StateListener<State, VirtualMachine.Event, VirtualMachine>, Configurable {
|
|||
|
||||
private void checkHostReservations() {
|
||||
List<PlannerHostReservationVO> reservedHosts = _plannerHostReserveDao.listAllReservedHosts();
|
||||
|
||||
for (PlannerHostReservationVO hostReservation : reservedHosts) {
|
||||
HostVO host = _hostDao.findById(hostReservation.getHostId());
|
||||
List<HostVO> hosts = _hostDao.listByIds(reservedHosts
|
||||
.stream()
|
||||
.map(PlannerHostReservationVO::getHostId)
|
||||
.collect(Collectors.toList()));
|
||||
for (HostVO host : hosts) {
|
||||
if (host != null && host.getManagementServerId() != null && host.getManagementServerId() == _nodeId) {
|
||||
checkHostReservationRelease(hostReservation.getHostId());
|
||||
checkHostReservationRelease(host.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1254,7 +1258,7 @@ StateListener<State, VirtualMachine.Event, VirtualMachine>, Configurable {
|
|||
Pair<Host, Map<Volume, StoragePool>> potentialResources = findPotentialDeploymentResources(suitableHosts, suitableVolumeStoragePools, avoid,
|
||||
resourceUsageRequired, readyAndReusedVolumes, plan.getPreferredHosts(), vmProfile.getVirtualMachine());
|
||||
if (potentialResources != null) {
|
||||
Host host = _hostDao.findById(potentialResources.first().getId());
|
||||
Host host = potentialResources.first();
|
||||
Map<Volume, StoragePool> storageVolMap = potentialResources.second();
|
||||
// remove the reused vol<->pool from destination, since
|
||||
// we don't have to prepare this volume.
|
||||
|
|
|
|||
|
|
@ -2707,7 +2707,7 @@ public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManage
|
|||
return vmStatsById;
|
||||
}
|
||||
try {
|
||||
vmStatsById = virtualMachineManager.getVirtualMachineStatistics(host.getId(), host.getName(), vmIds);
|
||||
vmStatsById = virtualMachineManager.getVirtualMachineStatistics(host, vmIds);
|
||||
if (MapUtils.isEmpty(vmStatsById)) {
|
||||
s_logger.warn("Got empty result for virtual machine statistics from host: " + host);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -547,8 +547,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
details.put("ovm3pool", allParams.get("ovm3pool"));
|
||||
details.put("ovm3cluster", allParams.get("ovm3cluster"));
|
||||
}
|
||||
details.put("cpuOvercommitRatio", CapacityManager.CpuOverprovisioningFactor.value().toString());
|
||||
details.put("memoryOvercommitRatio", CapacityManager.MemOverprovisioningFactor.value().toString());
|
||||
details.put(VmDetailConstants.CPU_OVER_COMMIT_RATIO, CapacityManager.CpuOverprovisioningFactor.value().toString());
|
||||
details.put(VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, CapacityManager.MemOverprovisioningFactor.value().toString());
|
||||
_clusterDetailsDao.persist(cluster.getId(), details);
|
||||
return result;
|
||||
}
|
||||
|
|
@ -558,8 +558,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
details.put("url", url);
|
||||
details.put("username", StringUtils.defaultString(username));
|
||||
details.put("password", StringUtils.defaultString(password));
|
||||
details.put("cpuOvercommitRatio", CapacityManager.CpuOverprovisioningFactor.value().toString());
|
||||
details.put("memoryOvercommitRatio", CapacityManager.MemOverprovisioningFactor.value().toString());
|
||||
details.put(VmDetailConstants.CPU_OVER_COMMIT_RATIO, CapacityManager.CpuOverprovisioningFactor.value().toString());
|
||||
details.put(VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, CapacityManager.MemOverprovisioningFactor.value().toString());
|
||||
_clusterDetailsDao.persist(cluster.getId(), details);
|
||||
|
||||
boolean success = false;
|
||||
|
|
@ -778,9 +778,9 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
}
|
||||
}
|
||||
clusterId = cluster.getId();
|
||||
if (_clusterDetailsDao.findDetail(clusterId, "cpuOvercommitRatio") == null) {
|
||||
final ClusterDetailsVO cluster_cpu_detail = new ClusterDetailsVO(clusterId, "cpuOvercommitRatio", "1");
|
||||
final ClusterDetailsVO cluster_memory_detail = new ClusterDetailsVO(clusterId, "memoryOvercommitRatio", "1");
|
||||
if (_clusterDetailsDao.findDetail(clusterId, VmDetailConstants.CPU_OVER_COMMIT_RATIO) == null) {
|
||||
final ClusterDetailsVO cluster_cpu_detail = new ClusterDetailsVO(clusterId, VmDetailConstants.CPU_OVER_COMMIT_RATIO, "1");
|
||||
final ClusterDetailsVO cluster_memory_detail = new ClusterDetailsVO(clusterId, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, "1");
|
||||
_clusterDetailsDao.persist(cluster_cpu_detail);
|
||||
_clusterDetailsDao.persist(cluster_memory_detail);
|
||||
}
|
||||
|
|
@ -3287,15 +3287,15 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
}
|
||||
|
||||
@Override
|
||||
public HostStats getHostStatistics(final long hostId) {
|
||||
final Answer answer = _agentMgr.easySend(hostId, new GetHostStatsCommand(_hostDao.findById(hostId).getGuid(), _hostDao.findById(hostId).getName(), hostId));
|
||||
public HostStats getHostStatistics(final Host host) {
|
||||
final Answer answer = _agentMgr.easySend(host.getId(), new GetHostStatsCommand(host.getGuid(), host.getName(), host.getId()));
|
||||
|
||||
if (answer != null && answer instanceof UnsupportedAnswer) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (answer == null || !answer.getResult()) {
|
||||
final String msg = "Unable to obtain host " + hostId + " statistics. ";
|
||||
final String msg = "Unable to obtain host " + host.getId() + " statistics. ";
|
||||
s_logger.warn(msg);
|
||||
return null;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -637,7 +637,7 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
|
|||
continue;
|
||||
}
|
||||
boolean maxGuestLimit = capacityManager.checkIfHostReachMaxGuestLimit(host);
|
||||
boolean hostHasCPUCapacity = capacityManager.checkIfHostHasCpuCapability(hostInCluster.getId(), serviceOffering.getCpu(), serviceOffering.getSpeed());
|
||||
boolean hostHasCPUCapacity = capacityManager.checkIfHostHasCpuCapability(hostInCluster, serviceOffering.getCpu(), serviceOffering.getSpeed());
|
||||
int cpuRequested = serviceOffering.getCpu() * serviceOffering.getSpeed();
|
||||
long ramRequested = serviceOffering.getRamSize() * 1024L * 1024L;
|
||||
ClusterDetailsVO clusterDetailsCpuOvercommit = clusterDetailsDao.findDetail(cluster.getId(), "cpuOvercommitRatio");
|
||||
|
|
|
|||
|
|
@ -2010,7 +2010,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||
|
||||
// #1 Check existing host has capacity & and the correct tags
|
||||
if (!excludes.shouldAvoid(ApiDBUtils.findHostById(vmInstance.getHostId()))) {
|
||||
existingHostHasCapacity = _capacityMgr.checkIfHostHasCpuCapability(vmInstance.getHostId(), newCpu, newSpeed)
|
||||
existingHostHasCapacity = _capacityMgr.checkIfHostHasCpuCapability(host, newCpu, newSpeed)
|
||||
&& _capacityMgr.checkIfHostHasCapacity(vmInstance.getHostId(), cpuDiff, ByteScaleUtils.mebibytesToBytes(memoryDiff), false,
|
||||
_capacityMgr.getClusterOverProvisioningFactor(host.getClusterId(), Capacity.CAPACITY_TYPE_CPU),
|
||||
_capacityMgr.getClusterOverProvisioningFactor(host.getClusterId(), Capacity.CAPACITY_TYPE_MEMORY), false)
|
||||
|
|
|
|||
|
|
@ -864,7 +864,7 @@ public class DeploymentPlanningManagerImplTest {
|
|||
Pair<Host, Map<Volume, StoragePool>> potentialResources = new Pair<>(host, suitableVolumeStoragePoolMap);
|
||||
|
||||
Mockito.when(capacityMgr.checkIfHostReachMaxGuestLimit(host)).thenReturn(false);
|
||||
Mockito.when(capacityMgr.checkIfHostHasCpuCapability(ArgumentMatchers.anyLong(), ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt())).thenReturn(true);
|
||||
Mockito.when(capacityMgr.checkIfHostHasCpuCapability(ArgumentMatchers.any(Host.class), ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt())).thenReturn(true);
|
||||
Mockito.when(capacityMgr.checkIfHostHasCapacity(
|
||||
ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.anyInt(),
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@ import com.cloud.exception.OperationTimedoutException;
|
|||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.exception.ResourceInUseException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.network.Network;
|
||||
|
|
@ -2279,13 +2280,13 @@ public class AutoScaleManagerImplTest {
|
|||
public void getVmStatsByIdFromHost() {
|
||||
List<Long> vmIds = Mockito.mock(ArrayList.class);
|
||||
Map<Long, VmStatsEntry> vmStatsById = Mockito.mock(HashMap.class);
|
||||
Mockito.doReturn(vmStatsById).when(virtualMachineManager).getVirtualMachineStatistics(anyLong(), anyString(), anyList());
|
||||
Mockito.doReturn(vmStatsById).when(virtualMachineManager).getVirtualMachineStatistics(Mockito.any(Host.class), anyList());
|
||||
|
||||
Map<Long, ? extends VmStats> result = autoScaleManagerImplSpy.getVmStatsByIdFromHost(-1L, vmIds);
|
||||
|
||||
Assert.assertEquals(0, result.size());
|
||||
|
||||
Mockito.verify(virtualMachineManager, never()).getVirtualMachineStatistics(anyLong(), anyString(), anyList());
|
||||
Mockito.verify(virtualMachineManager, never()).getVirtualMachineStatistics(Mockito.any(Host.class), anyList());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -2297,13 +2298,13 @@ public class AutoScaleManagerImplTest {
|
|||
when(hostDao.findById(hostId)).thenReturn(hostMock);
|
||||
when(hostMock.getId()).thenReturn(hostId);
|
||||
when(hostMock.getName()).thenReturn(hostName);
|
||||
Mockito.doReturn(vmStatsById).when(virtualMachineManager).getVirtualMachineStatistics(anyLong(), anyString(), anyList());
|
||||
Mockito.doReturn(vmStatsById).when(virtualMachineManager).getVirtualMachineStatistics(Mockito.any(Host.class), anyList());
|
||||
|
||||
Map<Long, ? extends VmStats> result = autoScaleManagerImplSpy.getVmStatsByIdFromHost(hostId, vmIds);
|
||||
|
||||
Assert.assertEquals(vmStatsById, result);
|
||||
|
||||
Mockito.verify(virtualMachineManager).getVirtualMachineStatistics(anyLong(), anyString(), anyList());
|
||||
Mockito.verify(virtualMachineManager).getVirtualMachineStatistics(Mockito.any(Host.class), anyList());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -465,7 +465,7 @@ public class MockResourceManagerImpl extends ManagerBase implements ResourceMana
|
|||
* @see com.cloud.resource.ResourceManager#getHostStatistics(long)
|
||||
*/
|
||||
@Override
|
||||
public HostStats getHostStatistics(final long hostId) {
|
||||
public HostStats getHostStatistics(final Host host) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue