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())
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
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()