package org.cloudbus.cloudsim.container.vmSelectionPolicies;
import org.cloudbus.cloudsim.container.core.ContainerVm;
import org.cloudbus.cloudsim.container.core.PowerContainerHost;
import org.cloudbus.cloudsim.container.core.PowerContainerVm;
import java.util.List;
/**
* Created by sareh on 16/11/15.
*/
public class PowerContainerVmSelectionPolicyMaximumUsage extends PowerContainerVmSelectionPolicy {
/*
* (non-Javadoc)
* @see
* org.cloudbus.cloudsim.experiments.power.PowerVmSelectionPolicy#getVmsToMigrate(org.cloudbus
* .cloudsim.power.PowerHost)
*/
@Override
public ContainerVm getVmToMigrate(PowerContainerHost host) {
List<PowerContainerVm> migratableContainers = getMigratableVms(host);
if (migratableContainers.isEmpty()) {
return null;
}
ContainerVm VmsToMigrate = null;
double maxMetric = Double.MIN_VALUE;
for (ContainerVm vm : migratableContainers) {
if (vm.isInMigration()) {
continue;
}
double metric = vm.getCurrentRequestedTotalMips();
if (maxMetric < metric) {
maxMetric = metric;
VmsToMigrate = vm;
}
}
// Log.formatLine("The Container To migrate is #%d from VmID %d from host %d", containerToMigrate.getId(),containerToMigrate.getVm().getId(), host.getId());
return VmsToMigrate;
}
}