This is an automated email from the ASF dual-hosted git repository.

weizhou pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.20 by this push:
     new 89d2b17461f storage: change storage pool to Up state when cancel 
storage migration (#11773)
89d2b17461f is described below

commit 89d2b17461f72c09d28301d2995aa5ff1ba29489
Author: Wei Zhou <[email protected]>
AuthorDate: Wed Oct 8 15:34:59 2025 +0200

    storage: change storage pool to Up state when cancel storage migration 
(#11773)
    
    * storage: change storage pool to Up state when cancel storage migration
    
    * Update 11773: connect host to shared pool after cancelling storage 
migration
    
    * Update 11773: update db only
    
    * Update 11773: skip capacity update for storpool
---
 .../src/main/java/com/cloud/storage/StorageManager.java          | 2 ++
 .../lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java       | 2 +-
 server/src/main/java/com/cloud/storage/StorageManagerImpl.java   | 9 ++++++---
 .../main/java/com/cloud/storage/StoragePoolAutomationImpl.java   | 1 +
 4 files changed, 10 insertions(+), 4 deletions(-)

diff --git 
a/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java 
b/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java
index 529e506e8a0..95e44bbb7b3 100644
--- a/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java
+++ b/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java
@@ -294,6 +294,8 @@ public interface StorageManager extends StorageService {
 
     Answer sendToPool(StoragePool pool, long[] hostIdsToTryFirst, Command cmd) 
throws StorageUnavailableException;
 
+    void updateStoragePoolHostVOAndBytes(StoragePool pool, long hostId, 
ModifyStoragePoolAnswer mspAnswer);
+
     CapacityVO getSecondaryStorageUsedStats(Long hostId, Long zoneId);
 
     CapacityVO getStoragePoolUsedStats(Long poolId, Long clusterId, Long 
podId, Long zoneId);
diff --git 
a/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
 
b/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
index e5ff0ab5873..30996b0020a 100644
--- 
a/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
+++ 
b/plugins/storage/volume/default/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java
@@ -448,8 +448,8 @@ public class CloudStackPrimaryDataStoreLifeCycleImpl 
extends BasePrimaryDataStor
 
     @Override
     public boolean cancelMaintain(DataStore store) {
-        storagePoolAutmation.cancelMaintain(store);
         dataStoreHelper.cancelMaintain(store);
+        storagePoolAutmation.cancelMaintain(store);
         return true;
     }
 
diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java 
b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
index 90113f66aaf..323c0eb3ee4 100644
--- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
@@ -2688,7 +2688,8 @@ public class StorageManagerImpl extends ManagerBase 
implements StorageManager, C
 
     }
 
-    private void updateStoragePoolHostVOAndBytes(StoragePool pool, long 
hostId, ModifyStoragePoolAnswer mspAnswer) {
+    @Override
+    public void updateStoragePoolHostVOAndBytes(StoragePool pool, long hostId, 
ModifyStoragePoolAnswer mspAnswer) {
         StoragePoolHostVO poolHost = 
_storagePoolHostDao.findByPoolHost(pool.getId(), hostId);
         if (poolHost == null) {
             poolHost = new StoragePoolHostVO(pool.getId(), hostId, 
mspAnswer.getPoolInfo().getLocalPath().replaceAll("//", "/"));
@@ -2698,8 +2699,10 @@ public class StorageManagerImpl extends ManagerBase 
implements StorageManager, C
         }
 
         StoragePoolVO poolVO = _storagePoolDao.findById(pool.getId());
-        poolVO.setUsedBytes(mspAnswer.getPoolInfo().getCapacityBytes() - 
mspAnswer.getPoolInfo().getAvailableBytes());
-        poolVO.setCapacityBytes(mspAnswer.getPoolInfo().getCapacityBytes());
+        if (!Storage.StoragePoolType.StorPool.equals(poolVO.getPoolType())) {
+            poolVO.setUsedBytes(mspAnswer.getPoolInfo().getCapacityBytes() - 
mspAnswer.getPoolInfo().getAvailableBytes());
+            
poolVO.setCapacityBytes(mspAnswer.getPoolInfo().getCapacityBytes());
+        }
 
         _storagePoolDao.update(pool.getId(), poolVO);
     }
diff --git 
a/server/src/main/java/com/cloud/storage/StoragePoolAutomationImpl.java 
b/server/src/main/java/com/cloud/storage/StoragePoolAutomationImpl.java
index 60494dcb05c..3ce23a0bd3b 100644
--- a/server/src/main/java/com/cloud/storage/StoragePoolAutomationImpl.java
+++ b/server/src/main/java/com/cloud/storage/StoragePoolAutomationImpl.java
@@ -346,6 +346,7 @@ public class StoragePoolAutomationImpl implements 
StoragePoolAutomation {
                 if (logger.isDebugEnabled()) {
                     logger.debug("ModifyStoragePool add succeeded");
                 }
+                storageManager.updateStoragePoolHostVOAndBytes(pool, 
host.getId(), (ModifyStoragePoolAnswer) answer);
                 if (pool.getPoolType() == 
Storage.StoragePoolType.DatastoreCluster) {
                     logger.debug("Started synchronising datastore cluster 
storage pool {} with vCenter", pool);
                     
storageManager.syncDatastoreClusterStoragePool(pool.getId(), 
((ModifyStoragePoolAnswer) answer).getDatastoreClusterChildren(), host.getId());

Reply via email to