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)))
Exemplo n.º 9
0
    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)))
Exemplo n.º 11
0
    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
Exemplo n.º 12
0
    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