/** * Process a cloudlet return event. * * @param ev a SimEvent object * @pre ev != $null * @post $none */ protected void processCloudletReturn(SimEvent ev) { Cloudlet cloudlet = (Cloudlet) ev.getData(); getCloudletReceivedList().add(cloudlet); Log.printConcatLine(CloudSim.clock(), ": ", getName(), ": Cloudlet ", cloudlet.getCloudletId(), " received"); cloudletsSubmitted--; if (getCloudletList().size() == 0 && cloudletsSubmitted == 0) { // all cloudlets executed Log.printConcatLine(CloudSim.clock(), ": ", getName(), ": All Cloudlets executed. Finishing..."); clearDatacenters(); finishExecution(); } else { // some cloudlets haven't finished yet if (getCloudletList().size() > 0 && cloudletsSubmitted == 0) { // all the cloudlets sent finished. It means that some bount // cloudlet is waiting its VM be created clearDatacenters(); createVmsInDatacenter(0); } } }
Log.printLine(CloudSim.clock() + ": " + getName() + ": none of the required VMs could be created. Aborting"); finishExecution();