From 7c2a01ef13c1ef96da31793b8854d00511e38d1e Mon Sep 17 00:00:00 2001 From: "Srivastava, Piyush" Date: Tue, 14 Jul 2026 18:59:01 +0530 Subject: [PATCH] feature/CSTACKEX-220: null check for volumeToAttach --- .../storage/lifecycle/OntapPrimaryDatastoreLifecycle.java | 2 +- .../src/main/java/com/cloud/storage/VolumeApiServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/lifecycle/OntapPrimaryDatastoreLifecycle.java b/plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/lifecycle/OntapPrimaryDatastoreLifecycle.java index c1cfb0a4c218..a206eaa053df 100755 --- a/plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/lifecycle/OntapPrimaryDatastoreLifecycle.java +++ b/plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/lifecycle/OntapPrimaryDatastoreLifecycle.java @@ -340,7 +340,7 @@ public boolean attachZone(DataStore dataStore, ZoneScope scope, Hypervisor.Hyper logger.error("attachZone : Storage Pool not found for id: " + dataStore.getId()); throw new CloudRuntimeException("Storage Pool not found for id: " + dataStore.getId()); } - if (!Hypervisor.HypervisorType.KVM.equals(hypervisorType)){ + if (!Hypervisor.HypervisorType.KVM.equals(hypervisorType)) { logger.error("attachZone : ONTAP primary storage is supported only for KVM hypervisor"); throw new CloudRuntimeException("ONTAP primary storage is supported only for KVM hypervisor"); } diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java index 2985deaa8fe3..3bee91bbddb6 100644 --- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java +++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java @@ -4852,7 +4852,7 @@ private VolumeVO sendAttachVolumeCommand(UserVmVO vm, VolumeVO volumeToAttach, L // Reload volume from DB after grantAccess — managed storage drivers (e.g. ONTAP) // may update the volume's path and iScsiName during grantAccess, so the local // volumeToAttach object can be stale. - if(DataStoreProvider.ONTAP_PLUGIN_NAME.equals(volumeToAttachStoragePool.getStorageProviderName())){ + if (volumeToAttachStoragePool != null && DataStoreProvider.ONTAP_PLUGIN_NAME.equals(volumeToAttachStoragePool.getStorageProviderName())) { volumeToAttach = _volsDao.findById(volumeToAttach.getId()); } }