public void TestAttachServerVolume() { IComputeProvider provider = new CloudServersProvider(Bootstrapper.Settings.TestIdentity); IBlockStorageProvider blockStorageProvider = new CloudBlockStorageProvider(Bootstrapper.Settings.TestIdentity); VolumeType volumeType = UserBlockStorageTests.GetSsdVolumeTypeOrDefault(blockStorageProvider); string volumeName = UserBlockStorageTests.UnitTestVolumePrefix + Path.GetRandomFileName(); Volume volume = blockStorageProvider.CreateVolume(UserBlockStorageTests.MinimumVolumeSize, displayName: volumeName, volumeType: volumeType != null ? volumeType.Id : null); Assert.AreEqual(VolumeState.Available, blockStorageProvider.WaitForVolumeAvailable(volume.Id).Status); /* AttachServerVolume */ ServerVolume serverVolume = provider.AttachServerVolume(_server.Id, volume.Id); Assert.IsNotNull(serverVolume); Assert.IsFalse(string.IsNullOrEmpty(serverVolume.Id)); Assert.AreEqual(_server.Id, serverVolume.ServerId); Assert.AreEqual(volume.Id, serverVolume.VolumeId); Assert.AreEqual(VolumeState.InUse, blockStorageProvider.WaitForVolumeState(volume.Id, VolumeState.InUse, new[] { VolumeState.Available, VolumeState.Error }).Status); /* ListServerVolumes */ ServerVolume[] serverVolumes = provider.ListServerVolumes(_server.Id).ToArray(); Assert.IsNotNull(serverVolumes); Assert.AreEqual(1, serverVolumes.Length); Assert.AreEqual(serverVolume.Id, serverVolumes[0].Id); Assert.AreEqual(serverVolume.ServerId, serverVolumes[0].ServerId); Assert.AreEqual(serverVolume.VolumeId, serverVolumes[0].VolumeId); /* GetServerVolumeDetails */ ServerVolume volumeDetails = provider.GetServerVolumeDetails(_server.Id, volume.Id); Assert.IsNotNull(volumeDetails); Assert.AreEqual(serverVolume.Id, volumeDetails.Id); Assert.AreEqual(serverVolume.ServerId, volumeDetails.ServerId); Assert.AreEqual(serverVolume.VolumeId, volumeDetails.VolumeId); bool detach = provider.DetachServerVolume(_server.Id, volume.Id); Assert.IsTrue(detach); ServerVolume[] remainingVolumes = provider.ListServerVolumes(_server.Id).ToArray(); Assert.AreEqual(0, remainingVolumes.Length); Assert.AreEqual(VolumeState.Available, blockStorageProvider.WaitForVolumeAvailable(volume.Id).Status); bool deleted = blockStorageProvider.DeleteVolume(volume.Id); Assert.IsTrue(blockStorageProvider.WaitForVolumeDeleted(volume.Id)); }
public void Should_Wait_Until_Volume_Is_Detached_From_The_Server() { var provider = new CloudServersProvider(_testIdentity); var volumeIsInList = false; var count = 0; do { var volumes = provider.ListServerVolumes(_testServer.Id); if (volumes != null) volumeIsInList = volumes.Any(v => v.Id == _testVolume.Id); count += 1; } while (volumeIsInList && count < 600); Assert.IsFalse(volumeIsInList); }
public void Should_List_All_Volumes() { var provider = new CloudServersProvider(_testIdentity); var volumes = provider.ListServerVolumes(_testServer.Id); Assert.IsTrue(volumes.Any()); }
public void Should_Contain_Attached_Volumne_In_Server_Volume_List() { var provider = new CloudServersProvider(_testIdentity); var volumes = provider.ListServerVolumes(_testServer.Id); Assert.IsTrue(volumes.Any(v => v.Id == _testVolume.Id)); }