Skip to content

Commit c04e223

Browse files
CSTACKEX-18_2: ensure that ONTAP volume related calls are served by customized class only.
1 parent 776b9a2 commit c04e223

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/KvmFileBasedStorageVmSnapshotStrategy.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ public class KvmFileBasedStorageVmSnapshotStrategy extends StorageVMSnapshotStra
7777

7878
private static final List<Storage.StoragePoolType> supportedStoragePoolTypes = List.of(Storage.StoragePoolType.Filesystem, Storage.StoragePoolType.NetworkFilesystem, Storage.StoragePoolType.SharedMountPoint);
7979

80+
private static final String ONTAP_PROVIDER_NAME = "NetApp ONTAP";
81+
8082
@Inject
8183
protected SnapshotDataStoreDao snapshotDataStoreDao;
8284

@@ -325,6 +327,11 @@ public StrategyPriority canHandle(Long vmId, Long rootPoolId, boolean snapshotMe
325327
List<VolumeVO> volumes = volumeDao.findByInstance(vmId);
326328
for (VolumeVO volume : volumes) {
327329
StoragePoolVO storagePoolVO = storagePool.findById(volume.getPoolId());
330+
if (storagePoolVO.isManaged() && ONTAP_PROVIDER_NAME.equals(storagePoolVO.getStorageProviderName())) {
331+
logger.debug(String.format("%s as the VM has a volume on ONTAP managed storage pool [%s]. " +
332+
"ONTAP managed storage has its own dedicated VM snapshot strategy.", cantHandleLog, storagePoolVO.getName()));
333+
return StrategyPriority.CANT_HANDLE;
334+
}
328335
if (!supportedStoragePoolTypes.contains(storagePoolVO.getPoolType())) {
329336
logger.debug(String.format("%s as the VM has a volume that is in a storage with unsupported type [%s].", cantHandleLog, storagePoolVO.getPoolType()));
330337
return StrategyPriority.CANT_HANDLE;

0 commit comments

Comments
 (0)