/** * Created a new DatacenterBroker object. * * @param name name to be associated with this entity (as required by {@link SimEntity} class) * @throws Exception the exception * @pre name != null * @post $none */ public DatacenterBroker(String name) throws Exception { super(name); setVmList(new ArrayList<Vm>()); setVmsCreatedList(new ArrayList<Vm>()); setCloudletList(new ArrayList<Cloudlet>()); setCloudletSubmittedList(new ArrayList<Cloudlet>()); setCloudletReceivedList(new ArrayList<Cloudlet>()); cloudletsSubmitted = 0; setVmsRequested(0); setVmsAcks(0); setVmsDestroyed(0); setDatacenterIdsList(new LinkedList<Integer>()); setDatacenterRequestedIdsList(new ArrayList<Integer>()); setVmsToDatacentersMap(new HashMap<Integer, Integer>()); setDatacenterCharacteristicsList(new HashMap<Integer, DatacenterCharacteristics>()); }
/** * Create the submitted virtual machines in a datacenter. * * @param datacenterId Id of the chosen Datacenter * @pre $none * @post $none * @see #submitVmList(java.util.List) */ protected void createVmsInDatacenter(int datacenterId) { // send as much vms as possible for this datacenter before trying the next one int requestedVms = 0; String datacenterName = CloudSim.getEntityName(datacenterId); for (Vm vm : getVmList()) { if (!getVmsToDatacentersMap().containsKey(vm.getId())) { Log.printLine(CloudSim.clock() + ": " + getName() + ": Trying to Create VM #" + vm.getId() + " in " + datacenterName); sendNow(datacenterId, CloudSimTags.VM_CREATE_ACK, vm); requestedVms++; } } getDatacenterRequestedIdsList().add(datacenterId); setVmsRequested(requestedVms); setVmsAcks(0); }