Search in sources :

Example 21 with StoragePoolType

use of com.cloud.storage.Storage.StoragePoolType in project cloudstack by apache.

the class StorageSystemDataMotionStrategyTest method validateAddSourcePoolToPoolsMapMapDoesNotContainsKey.

@Test
public void validateAddSourcePoolToPoolsMapMapDoesNotContainsKey() {
    List<StoragePoolType> storagePoolTypes = new LinkedList<>(Arrays.asList(StoragePoolType.values()));
    Mockito.doReturn(false).when(destinationStoragePoolVoMock).isManaged();
    Mockito.doReturn(StoragePoolType.NetworkFilesystem).when(destinationStoragePoolVoMock).getPoolType();
    Mockito.doReturn("").when(sourceStoragePoolVoMock).getUuid();
    Mockito.doReturn(false).when(mapStringStoragePoolTypeMock).containsKey(Mockito.anyString());
    Mockito.doReturn(null).when(mapStringStoragePoolTypeMock).put(Mockito.anyString(), Mockito.any());
    storagePoolTypes.forEach(poolType -> {
        Mockito.doReturn(poolType).when(sourceStoragePoolVoMock).getPoolType();
        strategy.addSourcePoolToPoolsMap(mapStringStoragePoolTypeMock, sourceStoragePoolVoMock, destinationStoragePoolVoMock);
    });
    VerificationMode times = Mockito.times(storagePoolTypes.size());
    Mockito.verify(destinationStoragePoolVoMock, never()).getScope();
    Mockito.verify(destinationStoragePoolVoMock, times).isManaged();
    Mockito.verify(destinationStoragePoolVoMock, times).getPoolType();
    Mockito.verify(sourceStoragePoolVoMock, times).getUuid();
    Mockito.verify(mapStringStoragePoolTypeMock, times).containsKey(Mockito.anyString());
    Mockito.verify(sourceStoragePoolVoMock, times).getPoolType();
    Mockito.verify(mapStringStoragePoolTypeMock, times).put(Mockito.anyString(), Mockito.any());
    Mockito.verifyNoMoreInteractions(mapStringStoragePoolTypeMock, sourceStoragePoolVoMock, destinationStoragePoolVoMock);
}
Also used : StoragePoolType(com.cloud.storage.Storage.StoragePoolType) LinkedList(java.util.LinkedList) VerificationMode(org.mockito.verification.VerificationMode) Test(org.junit.Test)

Example 22 with StoragePoolType

use of com.cloud.storage.Storage.StoragePoolType in project cloudstack by apache.

the class StorageSystemDataMotionStrategyTest method isStoragePoolTypeOfFileTest.

@Test
public void isStoragePoolTypeOfFileTest() {
    StoragePoolVO sourceStoragePool = Mockito.spy(new StoragePoolVO());
    StoragePoolType[] storagePoolTypeArray = StoragePoolType.values();
    for (int i = 0; i < storagePoolTypeArray.length; i++) {
        Mockito.doReturn(storagePoolTypeArray[i]).when(sourceStoragePool).getPoolType();
        boolean result = strategy.isStoragePoolTypeOfFile(sourceStoragePool);
        if (sourceStoragePool.getPoolType() == StoragePoolType.Filesystem) {
            Assert.assertTrue(result);
        } else {
            Assert.assertFalse(result);
        }
    }
}
Also used : StoragePoolType(com.cloud.storage.Storage.StoragePoolType) StoragePoolVO(org.apache.cloudstack.storage.datastore.db.StoragePoolVO) Test(org.junit.Test)

Example 23 with StoragePoolType

use of com.cloud.storage.Storage.StoragePoolType in project cloudstack by apache.

the class KvmNonManagedStorageSystemDataMotionTest method internalCanHandleTestNonManaged.

@Test
public void internalCanHandleTestNonManaged() {
    StoragePoolType[] storagePoolTypeArray = StoragePoolType.values();
    for (int i = 0; i < storagePoolTypeArray.length; i++) {
        Map<VolumeInfo, DataStore> volumeMap = configureTestInternalCanHandle(false, storagePoolTypeArray[i]);
        StrategyPriority strategyPriority = kvmNonManagedStorageDataMotionStrategy.internalCanHandle(volumeMap, new HostVO("sourceHostUuid"), new HostVO("destHostUuid"));
        if (supportStoragePoolType(storagePoolTypeArray[i])) {
            Assert.assertEquals(StrategyPriority.HYPERVISOR, strategyPriority);
        } else {
            Assert.assertEquals(StrategyPriority.CANT_HANDLE, strategyPriority);
        }
    }
}
Also used : StoragePoolType(com.cloud.storage.Storage.StoragePoolType) StrategyPriority(org.apache.cloudstack.engine.subsystem.api.storage.StrategyPriority) DataStore(org.apache.cloudstack.engine.subsystem.api.storage.DataStore) VolumeInfo(org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo) HostVO(com.cloud.host.HostVO) Test(org.junit.Test)

Example 24 with StoragePoolType

use of com.cloud.storage.Storage.StoragePoolType in project cloudstack by apache.

the class KvmNonManagedStorageSystemDataMotionTest method shouldMigrateVolumeTest.

@Test
public void shouldMigrateVolumeTest() {
    StoragePoolVO sourceStoragePool = Mockito.spy(new StoragePoolVO());
    HostVO destHost = new HostVO("guid");
    StoragePoolVO destStoragePool = new StoragePoolVO();
    StoragePoolType[] storagePoolTypes = StoragePoolType.values();
    for (int i = 0; i < storagePoolTypes.length; i++) {
        Mockito.doReturn(storagePoolTypes[i]).when(sourceStoragePool).getPoolType();
        boolean result = kvmNonManagedStorageDataMotionStrategy.shouldMigrateVolume(sourceStoragePool, destHost, destStoragePool);
        if (supportStoragePoolType(storagePoolTypes[i])) {
            Assert.assertTrue(result);
        } else {
            Assert.assertFalse(result);
        }
    }
}
Also used : StoragePoolType(com.cloud.storage.Storage.StoragePoolType) VMTemplateStoragePoolVO(com.cloud.storage.VMTemplateStoragePoolVO) StoragePoolVO(org.apache.cloudstack.storage.datastore.db.StoragePoolVO) HostVO(com.cloud.host.HostVO) Test(org.junit.Test)

Example 25 with StoragePoolType

use of com.cloud.storage.Storage.StoragePoolType in project cloudstack by apache.

the class KvmNonManagedStorageSystemDataMotionTest method validateSupportStoragePoolType.

@Test
public void validateSupportStoragePoolType() {
    Set<StoragePoolType> supportedTypes = new HashSet<>();
    supportedTypes.add(StoragePoolType.Filesystem);
    supportedTypes.add(StoragePoolType.NetworkFilesystem);
    supportedTypes.add(StoragePoolType.SharedMountPoint);
    for (StoragePoolType poolType : StoragePoolType.values()) {
        boolean isSupported = kvmNonManagedStorageDataMotionStrategy.supportStoragePoolType(poolType);
        if (supportedTypes.contains(poolType)) {
            assertTrue(isSupported);
        } else {
            assertFalse(isSupported);
        }
    }
}
Also used : StoragePoolType(com.cloud.storage.Storage.StoragePoolType) HashSet(java.util.HashSet) Test(org.junit.Test)

Aggregations

StoragePoolType (com.cloud.storage.Storage.StoragePoolType)27 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)13 Test (org.junit.Test)10 URISyntaxException (java.net.URISyntaxException)6 URI (java.net.URI)5 StoragePoolVO (org.apache.cloudstack.storage.datastore.db.StoragePoolVO)5 LibvirtException (org.libvirt.LibvirtException)5 StoragePool (org.libvirt.StoragePool)5 Map (java.util.Map)4 Connect (org.libvirt.Connect)4 HostVO (com.cloud.host.HostVO)3 HashSet (java.util.HashSet)3 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)2 LibvirtStoragePoolDef (com.cloud.hypervisor.kvm.resource.LibvirtStoragePoolDef)2 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2 LinkedList (java.util.LinkedList)2 DataStore (org.apache.cloudstack.engine.subsystem.api.storage.DataStore)2 PrimaryDataStoreParameters (org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreParameters)2 StrategyPriority (org.apache.cloudstack.engine.subsystem.api.storage.StrategyPriority)2 VolumeInfo (org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo)2