public async Task create_delete_volume(string hostName, string storageName, string volumeName) { var host = await Fixture.GetHypervHostAsync(hostName); var filter = new HypervVolumeFilter { Name = volumeName, Storage = storageName, }; { var info = await host.GetVolumesAsync(filter).FirstOrDefaultAsync(); if (info != default) { Assert.Equal(volumeName, info.Name); Assert.Equal(storageName, info.Storage); var detail = await host.GetVolumeAsync(info.Path); Assert.Equal(volumeName, detail.Name); Assert.Equal(storageName, detail.Storage); await host.DeleteVolumeAsync(new HypervDeleteVolumeRequest { Id = detail.Id, Path = detail.Path }); } } var volume = await host.CreateVolumeAsync(new HypervCreateVolumeRequest { Name = volumeName, Storage = storageName }); Assert.Equal(volumeName, volume.Name); Assert.Equal(storageName, volume.Storage); Assert.Equal(10UL * 1024UL * 1024UL, volume.SizeBytes); //10GB Assert.True(volume.FileSizeBytes <= volume.SizeBytes); Assert.True(volume.FileSizeBytes > 0); Assert.NotEqual(Guid.Empty, volume.Id); await host.DeleteVolumeAsync(new HypervDeleteVolumeRequest { Id = volume.Id, Path = volume.Path }); var notFound = await host.GetVolumesAsync(filter).FirstOrDefaultAsync(); Assert.Null(notFound); }
public async Task create_and_attach_and_mount_volume(string hostName, string storageName, string volumeName, string vmName) { var service = await Fixture.GetHypervVolumeSerivceAsync(hostName); var filter = new HypervVolumeFilter { Name = volumeName, Storage = storageName, }; var volume = await service.GetVolumesAsync(filter).FirstOrDefaultAsync(); if (volume == default) { var detail = await service.CreateVolumeAsync(new HypervCreateVolumeRequest { Name = volumeName, Storage = storageName }); Assert.Equal(volumeName, detail.Name); Assert.Equal(storageName, detail.Storage); volume = await service.GetVolumesAsync(filter).FirstAsync(); } var vm = await service.GetVirtualMachinesAsync(new HypervVirtualMachineFilter { Name = vmName }).FirstAsync(); Assert.Equal(vmName, vm.Name, true); Assert.Equal(volumeName, volume.Name, true); var vmVolume = await service.GetVirtualMachineVolumesAsync(vm.Id, new HypervVirtualMachineVolumeFilter { VolumePath = volume.Path, Host = vm.Host }) .FirstOrDefaultAsync(); vmVolume ??= await service.AttachVolumeAsync(new HypervAttachVolumeRequest { VMId = vm.Id, VolumePath = volume.Path, Host = vm.Host }); Assert.Equal(vm.Id, vmVolume.VMId); Assert.Equal(vm.Name, vmVolume.VMName, true); Assert.Equal(volume.Name, vmVolume.VolumeName, true); Assert.Equal(volume.Path, vmVolume.VolumePath, true); }
public async Task query_volumes_filtered(string hostName, string storageName, string volumeName) { var host = await Fixture.GetHypervHostAsync(hostName); var filter = new HypervVolumeFilter { Name = volumeName, Storage = storageName, }; var volumes = await host.GetVolumesAsync(filter).ToListAsync(); Assert.NotEmpty(volumes); if (!string.IsNullOrEmpty(volumeName)) { Assert.All(volumes, n => StringComparer.OrdinalIgnoreCase.Equals(n.Name, volumeName)); } if (!string.IsNullOrEmpty(storageName)) { Assert.All(volumes, n => StringComparer.OrdinalIgnoreCase.Equals(n.Storage, storageName)); } }