package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.common.businessentities.*;
/**
* This comparer chose Vds with less vms running regarding if vds will be
* overcommited after its will run vm.
*/
public class EvenlyDistributeVDComparer extends VdsComparer {
@Override
public boolean IsBetter(VDS x, VDS y, VM vm) {
if (x.getvms_cores_count() == null || y.getvms_cores_count() == null) {
return false;
}
// bool isXoverCommited = isVdsGoingToBeOverCommited(x, vm);
// bool isYoverCommited = isVdsGoingToBeOverCommited(y, vm);
boolean returnValue;
// if (isYoverCommited^isXoverCommited)
// {
// returnValue = isXoverCommited;
// }
// else
// {
// VB & C# TO JAVA CONVERTER TODO TASK: Arithmetic operations involving
// nullable type instances are not converted to null-value logic:
returnValue = ((double) x.getvms_cores_count() / x.getcpu_cores()) > ((double) y.getvms_cores_count() / y
.getcpu_cores());
// }
return returnValue;
}
private boolean isVdsGoingToBeOverCommited(VDS vds, VM vm) {
Integer mem_commited = vds.getmem_commited();
Integer guest_overhead = vds.getguest_overhead();
Integer reserved_mem = vds.getreserved_mem();
Integer physical_mem_mb = vds.getphysical_mem_mb();
if (mem_commited == null || guest_overhead == null || reserved_mem == null || physical_mem_mb == null) {
return false;
}
return (mem_commited + vm.getvm_mem_size_mb() + guest_overhead + reserved_mem) > physical_mem_mb;
}
@Override
public void BestVdsProcedure(VDS x) {
// VB & C# TO JAVA CONVERTER TODO TASK: Arithmetic operations involving
// nullable type instances are not converted to null-value logic:
x.setvm_count(x.getvm_count() + 1);
}
}