This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.19 by this push:
new b6cebe22f9e Fixed VMware import issue - check and update pools in the
order of the disks (do not update by position) (#10409)
b6cebe22f9e is described below
commit b6cebe22f9ee5e07e16bf4213336be650b8ad48f
Author: Suresh Kumar Anaparti <[email protected]>
AuthorDate: Tue Feb 18 13:17:05 2025 +0530
Fixed VMware import issue - check and update pools in the order of the
disks (do not update by position) (#10409)
---
.../java/com/cloud/storage/VolumeApiService.java | 6 +-
.../com/cloud/storage/VolumeApiServiceImpl.java | 20 ++---
.../volume/VolumeImportUnmanageManagerImpl.java | 2 +-
.../cloudstack/vm/UnmanagedVMsManagerImpl.java | 92 +++++++++++-----------
.../cloud/storage/VolumeApiServiceImplTest.java | 20 ++---
.../VolumeImportUnmanageManagerImplTest.java | 2 +-
.../cloudstack/vm/UnmanagedVMsManagerImplTest.java | 6 +-
7 files changed, 72 insertions(+), 76 deletions(-)
diff --git a/api/src/main/java/com/cloud/storage/VolumeApiService.java
b/api/src/main/java/com/cloud/storage/VolumeApiService.java
index 4f09702b7db..833ba442888 100644
--- a/api/src/main/java/com/cloud/storage/VolumeApiService.java
+++ b/api/src/main/java/com/cloud/storage/VolumeApiService.java
@@ -133,13 +133,13 @@ public interface VolumeApiService {
Snapshot allocSnapshotForVm(Long vmId, Long volumeId, String snapshotName)
throws ResourceAllocationException;
/**
- * Checks if the target storage supports the disk offering.
+ * Checks if the storage pool supports the disk offering tags.
* This validation is consistent with the mechanism used to select a
storage pool to deploy a volume when a virtual machine is deployed or when a
data disk is allocated.
*
* The scenarios when this method returns true or false is presented in
the following table.
* <table border="1">
* <tr>
- * <th>#</th><th>Disk offering tags</th><th>Storage
tags</th><th>Does the storage support the disk offering?</th>
+ * <th>#</th><th>Disk offering diskOfferingTags</th><th>Storage
diskOfferingTags</th><th>Does the storage support the disk offering?</th>
* </tr>
* <body>
* <tr>
@@ -163,7 +163,7 @@ public interface VolumeApiService {
* </body>
* </table>
*/
- boolean doesTargetStorageSupportDiskOffering(StoragePool destPool, String
diskOfferingTags);
+ boolean doesStoragePoolSupportDiskOfferingTags(StoragePool destPool,
String diskOfferingTags);
Volume destroyVolume(long volumeId, Account caller, boolean expunge,
boolean forceExpunge);
diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
index 3ea8116764a..e2babeacc71 100644
--- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
@@ -3519,7 +3519,7 @@ public class VolumeApiServiceImpl extends ManagerBase
implements VolumeApiServic
if ((destPool.isShared() && newDiskOffering.isUseLocalStorage()) ||
destPool.isLocal() && newDiskOffering.isShared()) {
throw new InvalidParameterValueException("You cannot move the
volume to a shared storage and assign a disk offering for local storage and
vice versa.");
}
- if (!doesTargetStorageSupportDiskOffering(destPool, newDiskOffering)) {
+ if (!doesStoragePoolSupportDiskOffering(destPool, newDiskOffering)) {
throw new InvalidParameterValueException(String.format("Migration
failed: target pool [%s, tags:%s] has no matching tags for volume [%s, uuid:%s,
tags:%s]", destPool.getName(),
storagePoolTagsDao.getStoragePoolTags(destPool.getId()),
volume.getName(), volume.getUuid(), newDiskOffering.getTags()));
}
@@ -3546,7 +3546,7 @@ public class VolumeApiServiceImpl extends ManagerBase
implements VolumeApiServic
}
/**
- * Checks if the target storage supports the new disk offering.
+ * Checks if the storage pool supports the new disk offering.
* This validation is consistent with the mechanism used to select a
storage pool to deploy a volume when a virtual machine is deployed or when a
new data disk is allocated.
*
* The scenarios when this method returns true or false is presented in
the following table.
@@ -3577,9 +3577,9 @@ public class VolumeApiServiceImpl extends ManagerBase
implements VolumeApiServic
* </body>
* </table>
*/
- protected boolean doesTargetStorageSupportDiskOffering(StoragePool
destPool, DiskOfferingVO diskOffering) {
- String targetStoreTags = diskOffering.getTags();
- return doesTargetStorageSupportDiskOffering(destPool, targetStoreTags);
+ protected boolean doesStoragePoolSupportDiskOffering(StoragePool destPool,
DiskOfferingVO diskOffering) {
+ String offeringTags = diskOffering.getTags();
+ return doesStoragePoolSupportDiskOfferingTags(destPool, offeringTags);
}
public static boolean
doesNewDiskOfferingHasTagsAsOldDiskOffering(DiskOfferingVO oldDO,
DiskOfferingVO newDO) {
@@ -3595,18 +3595,18 @@ public class VolumeApiServiceImpl extends ManagerBase
implements VolumeApiServic
}
@Override
- public boolean doesTargetStorageSupportDiskOffering(StoragePool destPool,
String diskOfferingTags) {
+ public boolean doesStoragePoolSupportDiskOfferingTags(StoragePool
destPool, String diskOfferingTags) {
Pair<List<String>, Boolean> storagePoolTags =
getStoragePoolTags(destPool);
if ((storagePoolTags == null || !storagePoolTags.second()) &&
org.apache.commons.lang.StringUtils.isBlank(diskOfferingTags)) {
if (storagePoolTags == null) {
- s_logger.debug(String.format("Destination storage pool [%s]
does not have any tags, and so does the disk offering. Therefore, they are
compatible", destPool.getUuid()));
+ s_logger.debug(String.format("Storage pool [%s] does not have
any tags, and so does the disk offering. Therefore, they are compatible",
destPool.getUuid()));
} else {
- s_logger.debug("Destination storage pool has tags [%s], and
the disk offering has no tags. Therefore, they are compatible.");
+ s_logger.debug("Storage pool has tags [%s], and the disk
offering has no tags. Therefore, they are compatible.");
}
return true;
}
if (storagePoolTags == null ||
CollectionUtils.isEmpty(storagePoolTags.first())) {
- s_logger.debug(String.format("Destination storage pool [%s] has no
tags, while disk offering has tags [%s]. Therefore, they are not compatible",
destPool.getUuid(),
+ s_logger.debug(String.format("Storage pool [%s] has no tags, while
disk offering has tags [%s]. Therefore, they are not compatible",
destPool.getUuid(),
diskOfferingTags));
return false;
}
@@ -3619,7 +3619,7 @@ public class VolumeApiServiceImpl extends ManagerBase
implements VolumeApiServic
} else {
result =
CollectionUtils.isSubCollection(Arrays.asList(newDiskOfferingTagsAsStringArray),
storageTagsList);
}
- s_logger.debug(String.format("Destination storage pool [%s] accepts
tags [%s]? %s", destPool.getUuid(), diskOfferingTags, result));
+ s_logger.debug(String.format("Storage pool [%s] accepts tags [%s]?
%s", destPool.getUuid(), diskOfferingTags, result));
return result;
}
diff --git
a/server/src/main/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImpl.java
b/server/src/main/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImpl.java
index b3b164395f6..e48a6d413ad 100644
---
a/server/src/main/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImpl.java
+++
b/server/src/main/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImpl.java
@@ -205,7 +205,7 @@ public class VolumeImportUnmanageManagerImpl implements
VolumeImportUnmanageServ
if (diskOffering.isCustomized()) {
volumeApiService.validateCustomDiskOfferingSizeRange(volume.getVirtualSize() /
ByteScaleUtils.GiB);
}
- if (!volumeApiService.doesTargetStorageSupportDiskOffering(pool,
diskOffering.getTags())) {
+ if (!volumeApiService.doesStoragePoolSupportDiskOfferingTags(pool,
diskOffering.getTags())) {
logFailureAndThrowException(String.format("Disk offering: %s
storage tags are not compatible with selected storage pool: %s",
diskOffering.getUuid(), pool.getUuid()));
}
diff --git
a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
index 187afece84f..f70a26f33c7 100644
--- a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java
@@ -456,7 +456,7 @@ public class UnmanagedVMsManagerImpl implements
UnmanagedVMsManager {
if (diskOffering == null) {
return false;
}
- return volumeApiService.doesTargetStorageSupportDiskOffering(pool,
diskOffering.getTags());
+ return volumeApiService.doesStoragePoolSupportDiskOfferingTags(pool,
diskOffering.getTags());
}
private ServiceOfferingVO getUnmanagedInstanceServiceOffering(final
UnmanagedInstanceTO instance, ServiceOfferingVO serviceOffering, final Account
owner, final DataCenter zone, final Map<String, String> details,
Hypervisor.HypervisorType hypervisorType)
@@ -547,7 +547,7 @@ public class UnmanagedVMsManagerImpl implements
UnmanagedVMsManager {
for (StoragePool pool : pools) {
if (pool.getDataCenterId() == zone.getId() &&
(pool.getClusterId() == null ||
pool.getClusterId().equals(cluster.getId())) &&
-
volumeApiService.doesTargetStorageSupportDiskOffering(pool, diskOfferingTags)) {
+
volumeApiService.doesStoragePoolSupportDiskOfferingTags(pool,
diskOfferingTags)) {
storagePool = pool;
break;
}
@@ -560,7 +560,7 @@ public class UnmanagedVMsManagerImpl implements
UnmanagedVMsManager {
for (StoragePool pool : pools) {
String searchPoolParam = StringUtils.isNotBlank(dsPath) ?
dsPath : dsName;
if (StringUtils.contains(pool.getPath(), searchPoolParam) &&
-
volumeApiService.doesTargetStorageSupportDiskOffering(pool, diskOfferingTags)) {
+
volumeApiService.doesStoragePoolSupportDiskOfferingTags(pool,
diskOfferingTags)) {
storagePool = pool;
break;
}
@@ -1732,9 +1732,9 @@ public class UnmanagedVMsManagerImpl implements
UnmanagedVMsManager {
convertedInstance.setPowerState(UnmanagedInstanceTO.PowerState.PowerOff);
List<UnmanagedInstanceTO.Disk> convertedInstanceDisks =
convertedInstance.getDisks();
List<UnmanagedInstanceTO.Disk> sourceVMwareInstanceDisks =
sourceVMwareInstance.getDisks();
- for (UnmanagedInstanceTO.Disk sourceVMwareInstanceDisk :
sourceVMwareInstanceDisks) {
- UnmanagedInstanceTO.Disk convertedDisk =
convertedInstanceDisks.get(sourceVMwareInstanceDisk.getPosition());
- convertedDisk.setDiskId(sourceVMwareInstanceDisk.getDiskId());
+ for (int i = 0; i < convertedInstanceDisks.size(); i++) {
+ UnmanagedInstanceTO.Disk disk = convertedInstanceDisks.get(i);
+ disk.setDiskId(sourceVMwareInstanceDisks.get(i).getDiskId());
}
List<UnmanagedInstanceTO.Nic> convertedInstanceNics =
convertedInstance.getNics();
List<UnmanagedInstanceTO.Nic> sourceVMwareInstanceNics =
sourceVMwareInstance.getNics();
@@ -2018,7 +2018,25 @@ public class UnmanagedVMsManagerImpl implements
UnmanagedVMsManager {
List<StoragePoolVO> pools = new ArrayList<>();
pools.addAll(primaryDataStoreDao.findClusterWideStoragePoolsByHypervisorAndPoolType(destinationCluster.getId(),
Hypervisor.HypervisorType.KVM, Storage.StoragePoolType.NetworkFilesystem));
pools.addAll(primaryDataStoreDao.findZoneWideStoragePoolsByHypervisorAndPoolType(destinationCluster.getDataCenterId(),
Hypervisor.HypervisorType.KVM, Storage.StoragePoolType.NetworkFilesystem));
- List<String> diskOfferingTags = new ArrayList<>();
+ if (pools.isEmpty()) {
+ String msg = String.format("Cannot find suitable storage pools in
the cluster %s for the conversion", destinationCluster.getName());
+ LOGGER.error(msg);
+ throw new CloudRuntimeException(msg);
+ }
+
+ if (serviceOffering.getDiskOfferingId() != null) {
+ DiskOfferingVO diskOffering =
diskOfferingDao.findById(serviceOffering.getDiskOfferingId());
+ if (diskOffering == null) {
+ String msg = String.format("Cannot find disk offering with ID
%s that belongs to the service offering %s",
serviceOffering.getDiskOfferingId(), serviceOffering.getName());
+ LOGGER.error(msg);
+ throw new CloudRuntimeException(msg);
+ }
+ if (getStoragePoolWithTags(pools, diskOffering.getTags()) == null)
{
+ String msg = String.format("Cannot find suitable storage pool
for disk offering %s that belongs to the service offering %s",
diskOffering.getName(), serviceOffering.getName());
+ LOGGER.error(msg);
+ throw new CloudRuntimeException(msg);
+ }
+ }
for (Long diskOfferingId : dataDiskOfferingMap.values()) {
DiskOfferingVO diskOffering =
diskOfferingDao.findById(diskOfferingId);
if (diskOffering == null) {
@@ -2026,44 +2044,26 @@ public class UnmanagedVMsManagerImpl implements
UnmanagedVMsManager {
LOGGER.error(msg);
throw new CloudRuntimeException(msg);
}
- diskOfferingTags.add(diskOffering.getTags());
- }
- if (serviceOffering.getDiskOfferingId() != null) {
- DiskOfferingVO diskOffering =
diskOfferingDao.findById(serviceOffering.getDiskOfferingId());
- if (diskOffering != null) {
- diskOfferingTags.add(diskOffering.getTags());
+ if (getStoragePoolWithTags(pools, diskOffering.getTags()) == null)
{
+ String msg = String.format("Cannot find suitable storage pool
for disk offering %s", diskOffering.getName());
+ LOGGER.error(msg);
+ throw new CloudRuntimeException(msg);
}
}
- pools = getPoolsWithMatchingTags(pools, diskOfferingTags);
- if (pools.isEmpty()) {
- String msg = String.format("Cannot find suitable storage pools in
cluster %s for the conversion", destinationCluster.getName());
- LOGGER.error(msg);
- throw new CloudRuntimeException(msg);
- }
return pools;
}
- private List<StoragePoolVO> getPoolsWithMatchingTags(List<StoragePoolVO>
pools, List<String> diskOfferingTags) {
- if (diskOfferingTags.isEmpty()) {
- return pools;
+ private StoragePoolVO getStoragePoolWithTags(List<StoragePoolVO> pools,
String tags) {
+ if (StringUtils.isEmpty(tags)) {
+ return pools.get(0);
}
- List<StoragePoolVO> poolsSupportingTags = new ArrayList<>(pools);
- for (String tags : diskOfferingTags) {
- boolean tagsMatched = false;
- for (StoragePoolVO pool : pools) {
- if
(volumeApiService.doesTargetStorageSupportDiskOffering(pool, tags)) {
- poolsSupportingTags.add(pool);
- tagsMatched = true;
- }
- }
- if (!tagsMatched) {
- String msg = String.format("Cannot find suitable storage pools
for the conversion with disk offering tags %s", tags);
- LOGGER.error(msg);
- throw new CloudRuntimeException(msg);
+ for (StoragePoolVO pool : pools) {
+ if (volumeApiService.doesStoragePoolSupportDiskOfferingTags(pool,
tags)) {
+ return pool;
}
}
- return poolsSupportingTags;
+ return null;
}
private List<String> selectInstanceConversionStoragePools(
@@ -2071,26 +2071,22 @@ public class UnmanagedVMsManagerImpl implements
UnmanagedVMsManager {
ServiceOfferingVO serviceOffering, Map<String, Long>
dataDiskOfferingMap
) {
List<String> storagePools = new ArrayList<>(disks.size());
- for (int i = 0; i < disks.size(); i++) {
- storagePools.add(null);
- }
Set<String> dataDiskIds = dataDiskOfferingMap.keySet();
for (UnmanagedInstanceTO.Disk disk : disks) {
- Long diskOfferingId = dataDiskOfferingMap.get(disk.getDiskId());
- if (diskOfferingId == null &&
!dataDiskIds.contains(disk.getDiskId())) {
+ Long diskOfferingId = null;
+ if (dataDiskIds.contains(disk.getDiskId())) {
+ diskOfferingId = dataDiskOfferingMap.get(disk.getDiskId());
+ } else {
diskOfferingId = serviceOffering.getDiskOfferingId();
}
+
//TODO: Choose pools by capacity
if (diskOfferingId == null) {
- storagePools.set(disk.getPosition(), pools.get(0).getUuid());
+ storagePools.add(pools.get(0).getUuid());
} else {
DiskOfferingVO diskOffering =
diskOfferingDao.findById(diskOfferingId);
- for (StoragePoolVO pool : pools) {
- if
(volumeApiService.doesTargetStorageSupportDiskOffering(pool,
diskOffering.getTags())) {
- storagePools.set(disk.getPosition(), pool.getUuid());
- break;
- }
- }
+ StoragePoolVO pool = getStoragePoolWithTags(pools,
diskOffering.getTags());
+ storagePools.add(pool.getUuid());
}
}
return storagePools;
diff --git
a/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java
b/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java
index 9b087bd384b..db74a004580 100644
--- a/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java
+++ b/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java
@@ -1164,7 +1164,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of("A"),
false)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertFalse(result);
}
@@ -1177,7 +1177,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of("A","B","C","D","X","Y"),
false)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertTrue(result);
}
@@ -1190,7 +1190,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.lenient().doReturn(new Pair<>(List.of("A,B,C,D,X,Y"),
false)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertTrue(result);
}
@@ -1203,7 +1203,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of(""),
false)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertFalse(result);
}
@@ -1216,7 +1216,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.lenient().doReturn(new Pair<>(List.of(""),
false)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertTrue(result);
}
@@ -1229,7 +1229,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of("C,D"),
false)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertFalse(result);
}
@@ -1242,7 +1242,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of("A"),
false)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertTrue(result);
}
@@ -1255,7 +1255,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of("tags[0] == 'A'"),
true)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertTrue(result);
}
@@ -1268,7 +1268,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of("tags[0] == 'A'"),
true)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertFalse(result);
}
@@ -1281,7 +1281,7 @@ public class VolumeApiServiceImplTest {
StoragePool storagePoolMock = Mockito.mock(StoragePool.class);
Mockito.doReturn(new Pair<>(List.of("tags[0] == 'A'"),
true)).when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock);
- boolean result =
volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
+ boolean result =
volumeApiServiceImpl.doesStoragePoolSupportDiskOffering(storagePoolMock,
diskOfferingVoMock);
Assert.assertFalse(result);
}
diff --git
a/server/src/test/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImplTest.java
b/server/src/test/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImplTest.java
index dab46595438..aed8f6a291b 100644
---
a/server/src/test/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImplTest.java
+++
b/server/src/test/java/org/apache/cloudstack/storage/volume/VolumeImportUnmanageManagerImplTest.java
@@ -275,7 +275,7 @@ public class VolumeImportUnmanageManagerImplTest {
when(diskOffering.isCustomized()).thenReturn(true);
doReturn(diskOffering).when(volumeImportUnmanageManager).getOrCreateDiskOffering(account,
diskOfferingId, zoneId, isLocal);
doNothing().when(volumeApiService).validateCustomDiskOfferingSizeRange(anyLong());
-
doReturn(true).when(volumeApiService).doesTargetStorageSupportDiskOffering(any(),
isNull());
+
doReturn(true).when(volumeApiService).doesStoragePoolSupportDiskOfferingTags(any(),
isNull());
doReturn(diskProfile).when(volumeManager).importVolume(any(),
anyString(), any(), eq(virtualSize), isNull(), isNull(), anyLong(),
any(), isNull(), isNull(), any(), isNull(), anyLong(),
anyString(), isNull());
when(diskProfile.getVolumeId()).thenReturn(volumeId);
diff --git
a/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
b/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
index 85402c0e254..9bdc05fe95c 100644
---
a/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
+++
b/server/src/test/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImplTest.java
@@ -424,7 +424,7 @@ public class UnmanagedVMsManagerImplTest {
ImportUnmanagedInstanceCmd importUnmanageInstanceCmd =
Mockito.mock(ImportUnmanagedInstanceCmd.class);
when(importUnmanageInstanceCmd.getName()).thenReturn("TestInstance");
when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null);
-
when(volumeApiService.doesTargetStorageSupportDiskOffering(any(StoragePool.class),
any())).thenReturn(true);
+
when(volumeApiService.doesStoragePoolSupportDiskOfferingTags(any(StoragePool.class),
any())).thenReturn(true);
try (MockedStatic<UsageEventUtils> ignored =
Mockito.mockStatic(UsageEventUtils.class)) {
unmanagedVMsManager.importUnmanagedInstance(importUnmanageInstanceCmd);
}
@@ -704,7 +704,7 @@ public class UnmanagedVMsManagerImplTest {
when(agentManager.send(Mockito.eq(convertHostId),
Mockito.any(CheckConvertInstanceCommand.class))).thenReturn(checkConvertInstanceAnswer);
}
-
when(volumeApiService.doesTargetStorageSupportDiskOffering(any(StoragePool.class),
any())).thenReturn(true);
+
when(volumeApiService.doesStoragePoolSupportDiskOfferingTags(any(StoragePool.class),
any())).thenReturn(true);
ConvertInstanceAnswer convertInstanceAnswer =
mock(ConvertInstanceAnswer.class);
ImportConvertedInstanceAnswer convertImportedInstanceAnswer =
mock(ImportConvertedInstanceAnswer.class);
@@ -769,7 +769,7 @@ public class UnmanagedVMsManagerImplTest {
storagePools.add(storagePool);
when(primaryDataStoreDao.findLocalStoragePoolsByHostAndTags(anyLong(),
any())).thenReturn(storagePools);
when(primaryDataStoreDao.findById(anyLong())).thenReturn(storagePool);
-
when(volumeApiService.doesTargetStorageSupportDiskOffering(any(StoragePool.class),
any())).thenReturn(true);
+
when(volumeApiService.doesStoragePoolSupportDiskOfferingTags(any(StoragePool.class),
any())).thenReturn(true);
StoragePoolHostVO storagePoolHost =
Mockito.mock(StoragePoolHostVO.class);
when(storagePoolHostDao.findByPoolHost(anyLong(),
anyLong())).thenReturn(storagePoolHost);
try (MockedStatic<UsageEventUtils> ignored =
Mockito.mockStatic(UsageEventUtils.class)) {