public VirtualMachine getVM(CloudVmAllocationType request) { VMTypeType.VMType SLA_VM; try { SLA_VM = Util.findVMByName(request.getVmType(), currentVMType); } catch (NoSuchElementException e1) { log.error("VM name " + request.getVmType() + " could not be found in SLA"); return null; } int nbCPUs = SLA_VM.getCapacity().getVCpus().getValue(); // the consumption of a VM if set as a percentage * number of CPU. // it should be demanding a certain CPU power instead. int consumption = (int) (nbCPUs * SLA_VM .getExpectedLoad() .getVCpuLoad() .getValue()); // (int) (SLA_VM.getExpectedLoad().getVCpuLoad().getValue() * // REFERENCE_CPU_SPEED); int memory = (int) (SLA_VM.getCapacity().getVRam().getValue() * 1024); log.debug("creation of an Entropy VM for allocation request"); log.debug("nbCPUs " + nbCPUs); log.debug("consumption " + consumption + " %"); log.debug("memory " + memory + " MB"); VirtualMachine vm = new SimpleVirtualMachine("new VM", nbCPUs, consumption, memory); return vm; }
private VirtualMachine getVM(Node node, VirtualMachineType VM) { // VM type should be set OR some measurements should be present if (VM.getCloudVmType() == null && (VM.getNumberOfCPUs() == null || VM.getActualCPUUsage() == null || VM.getActualMemoryUsage() == null)) { log.error("VM type not set for " + VM.getFrameworkID() + " and no VM measures found"); System.exit(-1); } VMTypeType.VMType SLA_VM = null; if (VM.getCloudVmType() != null) { SLA_VM = Util.findVMByName(VM.getCloudVmType(), currentVMType); } // If the measured values are present in the VM, we take these. // otherwise, we take the specification values from the SLA. int nbCPUs; if (VM.getNumberOfCPUs() != null) { nbCPUs = VM.getNumberOfCPUs().getValue(); } else { nbCPUs = SLA_VM.getCapacity().getVCpus().getValue(); } double CPUUsage; if (VM.getActualCPUUsage() != null) { CPUUsage = VM.getActualCPUUsage().getValue(); } else { CPUUsage = SLA_VM.getExpectedLoad().getVCpuLoad().getValue(); } int memory; if (VM.getActualMemoryUsage() != null) { memory = (int) (VM.getActualMemoryUsage().getValue() * 1024); } else { memory = (int) (SLA_VM.getCapacity().getVRam().getValue() * 1024); } int consumption = (int) (CPUUsage * nbCPUs); log.debug("creation of an Entropy VM with name " + VM.getFrameworkID()); log.debug("nbCPUs " + nbCPUs); log.debug("consumption " + consumption + " %"); log.debug("memory " + memory + " MB"); VirtualMachine vm = new SimpleVirtualMachine(VM.getFrameworkID(), nbCPUs, consumption, memory); return vm; }