package org.occiware.clouddesigner.occi.simulation.cloudsim; import java.util.HashMap; import java.util.List; import java.util.Map; import org.occiware.clouddesigner.occi.simulation.cloudsim.core.CloudSim; public class VmAllocationPolicyOcci extends VmAllocationPolicy{ private Map<String, Host> vmTable; public VmAllocationPolicyOcci(List<? extends Host> list) { super(list); setVmTable(new HashMap<String, Host>()); } @Override public boolean allocateHostForVm(Vm vm) { System.err.println("VM "+vm.getId()+" is not binding with any Host"); return false; } @Override public boolean allocateHostForVm(Vm vm, Host host) { if (host.vmCreate(vm)) { // if vm has been succesfully created in the host getVmTable().put(vm.getUid(), host); Log.formatLine("%.2f: VM #" + vm.getId() + " has been allocated to the host #" + host.getId(), CloudSim.clock()); return true; } return false; } @Override public List<Map<String, Object>> optimizeAllocation(List<? extends Vm> vmList) { // TODO Auto-generated method stub return null; } @Override public void deallocateHostForVm(Vm vm) { Host host = getVmTable().remove(vm.getUid()); if (host != null) { host.vmDestroy(vm); } } @Override public Host getHost(Vm vm) { return getVmTable().get(vm.getUid()); } @Override public Host getHost(int vmId, int userId) { return getVmTable().get(Vm.getUid(userId, vmId)); } public Map<String, Host> getVmTable() { return vmTable; } protected void setVmTable(Map<String, Host> vmTable) { this.vmTable = vmTable; } }