package org.occiware.clouddesigner.occi.simulation.cloudsim; import org.occiware.clouddesigner.occi.simulation.cloudsim.core.CloudSim; import org.occiware.clouddesigner.occi.simulation.cloudsim.core.CloudSimTags; import org.occiware.clouddesigner.occi.simulation.cloudsim.core.SimEvent; public class DatacenterBrokerOcci extends DatacenterBroker { public DatacenterBrokerOcci(String name) throws Exception { super(name); } @Override protected void processResourceCharacteristics(SimEvent ev) { DatacenterCharacteristics characteristics = (DatacenterCharacteristics) ev.getData(); getDatacenterCharacteristicsList().put(characteristics.getId(), characteristics); if (getDatacenterCharacteristicsList().size() == getDatacenterIdsList().size()) { bindVmDataCenter(); } } protected void bindVmDataCenter() { int numberOfVmsAllocated = 0; for (Vm vm : getVmList()) { int datacenterId = vm.getHost().getDatacenter().getId(); String datacenterName = CloudSim.getEntityName(datacenterId); 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); numberOfVmsAllocated++; } } setVmsRequested(numberOfVmsAllocated); setVmsAcks(0); } }