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());