def test_place_cpu_constraint(self): disk1 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) disk2 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) vm = Vm(new_id(), self._vm_flavor_gb(memory_gb=1, cpu=100), VmPowerState.STARTED, None) vm.disks = [disk1, disk2] manager = PMBuilder(cpu_overcommit=1).build() manager.place(vm, None)
def test_place_storage_constraint(self): disk = Disk(new_id(), DISK_FLAVOR, True, True, 1024) vm = Vm(new_id(), VM_FLAVOR, State.STARTED, None) vm.disks = [disk] ds_map = {"datastore_id_1": (DatastoreInfo(8 * 1024, 7 * 1024), set([]))} manager = PMBuilder(ds_map=ds_map).build() manager.place(vm, None)
def test_place_storage_constraint(self): disk = Disk(new_id(), DISK_FLAVOR, True, True, 1024) vm = Vm(new_id(), VM_FLAVOR, VmPowerState.STARTED, None) vm.disks = [disk] ds_map = { "datastore_id_1": (DatastoreInfo(8 * 1024, 7 * 1024), set([])) } manager = PMBuilder(ds_map=ds_map).build() manager.place(vm, None)
def test_place_cpu_constraint(self): disk1 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) disk2 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) vm = Vm(new_id(), self._vm_flavor_gb(memory_gb=1, cpu=100), State.STARTED, None) vm.disks = [disk1, disk2] manager = PMBuilder(cpu_overcommit=1).build() manager.place(vm, None)
def test_place_memory_constraint(self): # Try to deploy a VM with 64GB memory on a system with 64GB memory # will fail because the memory score is 0. # Actually if memory score is less than 5 (1 - max_usage) will be # rejected. In this case, 60GB is also rejected. disk1 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) disk2 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) vm = Vm(new_id(), self._vm_flavor_gb(64), VmPowerState.STARTED, None) vm.disks = [disk1, disk2] manager = PMBuilder().build() manager.place(vm, None)
def test_place_memory_constraint(self): # Try to deploy a VM with 64GB memory on a system with 64GB memory # will fail because the memory score is 0. # Actually if memory score is less than 5 (1 - max_usage) will be # rejected. In this case, 60GB is also rejected. disk1 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) disk2 = Disk(new_id(), DISK_FLAVOR, True, True, 1024) vm = Vm(new_id(), self._vm_flavor_gb(64), State.STARTED, None) vm.disks = [disk1, disk2] manager = PMBuilder().build() manager.place(vm, None)
def test_place_new_with_reservations(self, disk1_capacity, disk2_capacity, overcommit, expected): disk1 = Disk(new_id(), DISK_FLAVOR, True, True, disk1_capacity) disk2 = Disk(new_id(), DISK_FLAVOR, True, True, disk2_capacity) vm = Vm(new_id(), VM_FLAVOR, VmPowerState.STOPPED, None) vm.disks = [disk1, disk2] manager = PMBuilder(mem_overcommit=overcommit).build() # Disable freespace based admission control. manager.FREESPACE_THRESHOLD = 0 manager.reserve(vm, None) score, placement_list = manager.place(vm, None) assert_that(score, is_(AgentPlacementScore(*expected)))
def test_place_new_with_reservations(self, disk1_capacity, disk2_capacity, overcommit, expected): disk1 = Disk(new_id(), DISK_FLAVOR, True, True, disk1_capacity) disk2 = Disk(new_id(), DISK_FLAVOR, True, True, disk2_capacity) vm = Vm(new_id(), VM_FLAVOR, State.STOPPED, None) vm.disks = [disk1, disk2] manager = PMBuilder(mem_overcommit=overcommit).build() # Disable freespace based admission control. manager.FREESPACE_THRESHOLD = 0 manager.reserve(vm, None) score, placement_list = manager.place(vm, None) assert_that(score, is_(AgentPlacementScore(*expected)))
def test_place_new(self, disk_capacity_1, disk_capacity_2, overcommit, expected): created_disk1 = Disk(new_id(), DISK_FLAVOR, True, True, disk_capacity_1) created_disk2 = Disk(new_id(), DISK_FLAVOR, True, True, disk_capacity_2) vm = Vm(new_id(), VM_FLAVOR, State.STOPPED, None) vm.disks = [created_disk1, created_disk2] manager = PMBuilder(mem_overcommit=overcommit).build() # Disable freespace based admission control. manager.FREESPACE_THRESHOLD = 0 score, placement_list = manager.place(vm, None) assert_that(score, is_(AgentPlacementScore(*expected)))
def test_place_new(self, disk_capacity_1, disk_capacity_2, overcommit, expected): created_disk1 = Disk(new_id(), DISK_FLAVOR, True, True, disk_capacity_1) created_disk2 = Disk(new_id(), DISK_FLAVOR, True, True, disk_capacity_2) vm = Vm(new_id(), VM_FLAVOR, VmPowerState.STOPPED, None) vm.disks = [created_disk1, created_disk2] manager = PMBuilder(mem_overcommit=overcommit).build() # Disable freespace based admission control. manager.FREESPACE_THRESHOLD = 0 score, placement_list = manager.place(vm, None) assert_that(score, is_(AgentPlacementScore(*expected)))
def _get_resource_from_vmcache(self, vmcache): """Translate to vm resource from vm cache """ vm_resource = Vm(vmcache.name) vm_resource.flavor = Flavor("default") # TODO vm_resource.disks = [] for disk in vmcache.disks: disk_id = os.path.splitext(os.path.basename(disk))[0] datastore_name = self._get_datastore_name_from_ds_path(disk) datastore_uuid = self._get_datastore_uuid(datastore_name) if datastore_uuid: disk_resource = Disk(disk_id, Flavor("default"), False, False, -1, None, datastore_uuid) vm_resource.disks.append(disk_resource) vm_resource.state = vmcache.power_state datastore_name = self._get_datastore_name_from_ds_path(vmcache.path) vm_resource.datastore = self._get_datastore_uuid(datastore_name) return vm_resource