From 6f3d2d1c718cf189e2b6bf2ff490e0af16dce7ea Mon Sep 17 00:00:00 2001 From: sandeeplocharla Date: Thu, 22 Oct 2026 08:49:46 +0530 Subject: [PATCH] Addressed the comments received on upstream PR for refactoring the fix for NFS Cancel maintenance --- .../com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java | 6 ++++++ .../hypervisor/kvm/storage/KVMStoragePoolManager.java | 9 +++++---- .../hypervisor/kvm/storage/LibvirtStorageAdaptor.java | 5 ----- .../main/java/com/cloud/storage/StorageManagerImpl.java | 4 ++-- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java index 9f1b849e9727..a5bea90903d0 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java @@ -50,6 +50,12 @@ public void addStoragePool(HAStoragePool pool) { } } + public void unregisterStoragePool(String uuid) { + synchronized (haStoragePools) { + haStoragePools.remove(uuid); + } + } + public void removeStoragePool(String uuid) { synchronized (haStoragePools) { HAStoragePool pool = haStoragePools.get(uuid); diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java index e2f41c6a78c5..3c1318dbec51 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java @@ -457,11 +457,12 @@ public synchronized boolean deleteStoragePool(StoragePoolType type, String uuid) public boolean deleteStoragePool(StoragePoolType type, String uuid, Map details) { StorageAdaptor adaptor = getStorageAdaptor(type); - // For NetworkFilesystem, libvirt will take care of unmounting the nfs mount. If nfs mount has been removed before libvirt's pool - // delete, libvirt will throw an error. - boolean deleteStatus = adaptor.deleteStoragePool(uuid, details); + boolean deleteStatus; if (type == StoragePoolType.NetworkFilesystem) { - _haMonitor.removeStoragePool(uuid); + _haMonitor.unregisterStoragePool(uuid); + deleteStatus = adaptor.deleteStoragePool(uuid); + } else { + deleteStatus = adaptor.deleteStoragePool(uuid, details); } synchronized (_storagePools) { _storagePools.remove(uuid); diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java index 31b001f485e3..8a1a7b5bbe2e 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java @@ -891,11 +891,6 @@ private boolean destroyStoragePoolHandleException(Connect conn, String uuid) return false; } - @Override - public boolean deleteStoragePool(String uuid, Map details) { - return deleteStoragePool(uuid); - } - @Override public boolean deleteStoragePool(String uuid) { logger.info("Attempting to remove storage pool " + uuid + " from libvirt"); diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java index f28ac491def1..73085980a410 100644 --- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java @@ -1276,7 +1276,7 @@ public PrimaryDataStoreInfo updateStoragePool(UpdateStoragePoolCmd cmd) throws I if (capacityBytes != null) { if (capacityBytes != pool.getCapacityBytes()) { updatedCapacityBytes = capacityBytes; - details.put(PrimaryDataStoreLifeCycle.CAPACITY_BYTES, String.valueOf(updatedCapacityBytes)); + details.put(PrimaryDataStoreLifeCycle.CAPACITY_BYTES, String.valueOf(updatedCapacityBytes)); changes = true; } } @@ -1286,7 +1286,7 @@ public PrimaryDataStoreInfo updateStoragePool(UpdateStoragePoolCmd cmd) throws I if (capacityIops != null) { if (!capacityIops.equals(pool.getCapacityIops())) { updatedCapacityIops = capacityIops; - details.put(PrimaryDataStoreLifeCycle.CAPACITY_IOPS, String.valueOf(updatedCapacityIops)); + details.put(PrimaryDataStoreLifeCycle.CAPACITY_IOPS, String.valueOf(updatedCapacityIops)); changes = true; } }