package org.cloudbus.cloudsim.container.hostSelectionPolicies; import org.cloudbus.cloudsim.container.core.ContainerHost; import org.cloudbus.cloudsim.container.utils.RandomGen; import org.cloudbus.cloudsim.core.CloudSim; import java.util.List; import java.util.Set; /** * Created by sareh on 12/08/15. */ public class HostSelectionPolicyRandomSelection extends HostSelectionPolicy { @Override public ContainerHost getHost(List<ContainerHost> hostList, Object obj, Set<? extends ContainerHost> excludedHostList) { ContainerHost host = null; if (CloudSim.clock() > 1.0) { while (true) { if (hostList.size() > 0) { int randomNum = new RandomGen().getNum(hostList.size()); // System.out.format("The Selection Algorithm has chosen: %d from %d%n", randomNum, hostList.size()); host = hostList.get(randomNum); if (excludedHostList.contains(host)) { continue; } } else { System.out.println("Error"); } return host; } } else { // At the simulation start all the VMs by leastFull algorithms. host = new HostSelectionPolicyFirstFit().getHost(hostList,obj ,excludedHostList); return host; } } }