Exemplo n.º 1
0
        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));
        }
Exemplo n.º 5
0
        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));
        }