Пример #1
0
 protected void VmDeallocate(Vm vm)
 {
     RamProvisioner.DeallocateRamForVm(vm);
     BwProvisioner.DeallocateBwForVm(vm);
     VmScheduler.DeallocatePesForVm(vm);
     Storage += vm.Size;
 }
Пример #2
0
        public bool VmCreate(Vm vm)
        {
            if (Storage < vm.Size)
            {
                Log.WriteConcatLine(
                    "[VmScheduler.vmCreate] Allocation of VM #", vm.Id,
                    " to Host #", Id, " failed by storage");
                return(false);
            }

            if (!RamProvisioner.AllocateRamForVm(vm, vm.GetCurrentRequestedRam()))
            {
                Log.WriteConcatLine("[VmScheduler.vmCreate] Allocation of VM #", vm.Id, " to Host #", Id,
                                    " failed by RAM");
                return(false);
            }

            if (!BwProvisioner.AllocateBwForVm(vm, vm.GetCurrentRequestedBw()))
            {
                Log.WriteConcatLine("[VmScheduler.vmCreate] Allocation of VM #", vm.Id, " to Host #", Id,
                                    " failed by BW");
                RamProvisioner.DeallocateRamForVm(vm);
                return(false);
            }

            if (!VmScheduler.AllocatePesForVm(vm, vm.GetCurrentRequestedMips()))
            {
                Log.WriteConcatLine("[VmScheduler.vmCreate] Allocation of VM #", vm.Id, " to Host #", Id,
                                    " failed by MIPS");
                RamProvisioner.DeallocateRamForVm(vm);
                BwProvisioner.DeallocateBwForVm(vm);
                return(false);
            }

            Storage = Storage - vm.Size;
            VmList.Add(vm);
            vm.Host = this;
            return(true);
        }