def test_get_resources_not_found(self):
     for locator in [Locator(vm=VmLocator("1234567")),
                     Locator(disk=DiskLocator("891"))]:
         request = GetResourcesRequest([locator])
         response = rpc_call(self.host_client.get_resources, request)
         assert_that(response.result, is_(GetResourcesResultCode.OK))
         assert_that(response.resources, is_([]))
    def test_batch_get_resources(self):
        """Test that the agent can return resources in batch."""
        vms = []
        for _ in xrange(2):
            vm = VmWrapper(self.host_client)
            image = DiskImage("ttylinux", CloneType.COPY_ON_WRITE)

            disks = [
                Disk(new_id(), self.DEFAULT_DISK_FLAVOR.name, False, True,
                     image=image, capacity_gb=0,
                     flavor_info=self.DEFAULT_DISK_FLAVOR)
            ]

            reservation = vm.place_and_reserve(vm_disks=disks).reservation

            request = vm.create_request(reservation)
            vm.create(request=request)
            vms.append((vm, disks))

        request = GetResourcesRequest()
        response = rpc_call(self.host_client.get_resources, request)
        assert_that(response.result, is_(GetResourcesResultCode.OK))

        assert_that(response.resources, has_len(2))
        resources = {}
        for resource in response.resources:
            resources[resource.vm.id] = resource

        for vm, disks in vms:
            assert_that(resources, has_key(vm.id))
            vm.delete(request=vm.delete_request())
Exemplo n.º 3
0
    def test_get_resources(self):
        hv = Hypervisor(self._config)
        handler = HostHandler(hv)
        request = GetResourcesRequest()

        response = handler.get_resources(request)

        assert_that(response.result, equal_to(GetResourcesResultCode.OK))
 def get_disk(self, disk_id, expect_found=True):
     request = GetResourcesRequest([Locator(disk=DiskLocator(disk_id))])
     response = rpc_call(self.host_client.get_resources, request)
     assert_that(response.result, equal_to(GetResourcesResultCode.OK))
     if expect_found:
         assert_that(len(response.resources), is_(1))
         return response.resources[0].disks[0]
     else:
         assert_that(len(response.resources), is_(0))
         return None
Exemplo n.º 5
0
 def clear(self):
     """Remove all the VMs and disks"""
     for host in self.hosts:
         client = DirectClient("Host", Host.Client, host, 8835)
         client.connect()
         request = GetResourcesRequest()
         response = rpc_call(client.get_resources, request)
         vm_wrapper = VmWrapper(client)
         for resource in response.resources:
             disk_ids = [disk.id for disk in resource.disks]
             delete_request = Host.DeleteVmRequest(resource.vm.id, disk_ids)
             vm_wrapper.delete(request=delete_request)
             vm_wrapper.delete_disks(disk_ids, validate=True)
         client.close()
    def clear(self):
        """Remove all the VMs, disks and images """
        request = GetResourcesRequest()
        response = rpc_call(self.host_client.get_resources, request)
        assert_that(response.result, is_(GetResourcesResultCode.OK))
        for resource in response.resources:
            delete_request = Host.DeleteVmRequest(vm_id=resource.vm.id,
                                                  force=True)
            response = rpc_call(self.host_client.delete_vm, delete_request)

            if response.result == DeleteVmResultCode.VM_NOT_POWERED_OFF:
                poweroff_request = Host.PowerVmOpRequest(vm_id=resource.vm.id,
                                                         op=Host.PowerVmOp.OFF)
                response = rpc_call(self.host_client.power_vm_op,
                                    poweroff_request)
                assert_that(response.result, is_(PowerVmOpResultCode.OK))
                response = rpc_call(self.host_client.delete_vm, delete_request)

            if response.result != DeleteVmResultCode.OK:
                logger.info("Cannot delete vm %s trying vim_client" %
                            resource.vm.id)
                self.vim_delete_vm(resource.vm.id)
        self.clean_images()