You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2024/02/29 09:57:03 UTC
(cloudstack) branch 4.19 updated: Sync the pool stats in DB with the actual stats from stats collector (#8686)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.19 by this push:
new 813d53d031a Sync the pool stats in DB with the actual stats from stats collector (#8686)
813d53d031a is described below
commit 813d53d031a0b2a9b551b27e1ba17ae96f32f277
Author: Suresh Kumar Anaparti <su...@shapeblue.com>
AuthorDate: Thu Feb 29 15:26:32 2024 +0530
Sync the pool stats in DB with the actual stats from stats collector (#8686)
---
server/src/main/java/com/cloud/server/StatsCollector.java | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/server/src/main/java/com/cloud/server/StatsCollector.java b/server/src/main/java/com/cloud/server/StatsCollector.java
index 96eeb5bc33c..2467416155a 100644
--- a/server/src/main/java/com/cloud/server/StatsCollector.java
+++ b/server/src/main/java/com/cloud/server/StatsCollector.java
@@ -1712,17 +1712,21 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc
storagePoolStats.put(pool.getId(), (StorageStats)answer);
boolean poolNeedsUpdating = false;
+ long capacityBytes = ((StorageStats)answer).getCapacityBytes();
+ long usedBytes = ((StorageStats)answer).getByteUsed();
// Seems like we have dynamically updated the pool size since the prev. size and the current do not match
- if (_storagePoolStats.get(poolId) != null && _storagePoolStats.get(poolId).getCapacityBytes() != ((StorageStats)answer).getCapacityBytes()) {
- if (((StorageStats)answer).getCapacityBytes() > 0) {
- pool.setCapacityBytes(((StorageStats)answer).getCapacityBytes());
+ if ((_storagePoolStats.get(poolId) != null && _storagePoolStats.get(poolId).getCapacityBytes() != capacityBytes)
+ || pool.getCapacityBytes() != capacityBytes) {
+ if (capacityBytes > 0) {
+ pool.setCapacityBytes(capacityBytes);
poolNeedsUpdating = true;
} else {
LOGGER.warn("Not setting capacity bytes, received " + ((StorageStats)answer).getCapacityBytes() + " capacity for pool ID " + poolId);
}
}
- if (pool.getUsedBytes() != ((StorageStats)answer).getByteUsed() && (pool.getStorageProviderName().equalsIgnoreCase(DataStoreProvider.DEFAULT_PRIMARY) || _storageManager.canPoolProvideStorageStats(pool))) {
- pool.setUsedBytes(((StorageStats) answer).getByteUsed());
+ if (((_storagePoolStats.get(poolId) != null && _storagePoolStats.get(poolId).getByteUsed() != usedBytes)
+ || pool.getUsedBytes() != usedBytes) && (pool.getStorageProviderName().equalsIgnoreCase(DataStoreProvider.DEFAULT_PRIMARY) || _storageManager.canPoolProvideStorageStats(pool))) {
+ pool.setUsedBytes(usedBytes);
poolNeedsUpdating = true;
}
if (poolNeedsUpdating) {