From 1638d7243c1e4de30e6e2d22baeda2876d2eee78 Mon Sep 17 00:00:00 2001 From: Harikrishna Patnala Date: Tue, 29 Sep 2020 15:06:52 +0530 Subject: [PATCH] Get allocated size for datastoreCluster from its child datastores to show the accumalated value for Datastore cluster --- .../cloud/api/query/dao/StoragePoolJoinDaoImpl.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java index a248d71e72c..d2fe6a55edc 100644 --- a/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java @@ -20,6 +20,7 @@ import com.cloud.api.ApiDBUtils; import com.cloud.api.query.vo.StoragePoolJoinVO; import com.cloud.capacity.CapacityManager; import com.cloud.storage.DataStoreRole; +import com.cloud.storage.Storage; import com.cloud.storage.StoragePool; import com.cloud.storage.StorageStats; import com.cloud.utils.StringUtils; @@ -34,6 +35,7 @@ import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO; import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao; +import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -104,6 +106,15 @@ public class StoragePoolJoinDaoImpl extends GenericDaoBase childDatastores = storagePoolDao.listChildStoragePoolsInDatastoreCluster(pool.getId()); + if (childDatastores != null) { + for (StoragePoolVO childDatastore: childDatastores) { + StoragePoolJoinVO childDSJoinVO = findById(childDatastore.getId()); + allocatedSize += (childDSJoinVO.getUsedCapacity() + childDSJoinVO.getReservedCapacity()); + } + } + } poolResponse.setDiskSizeTotal(pool.getCapacityBytes()); poolResponse.setDiskSizeAllocated(allocatedSize); poolResponse.setCapacityIops(pool.getCapacityIops());