From dcfa6145c4480aa11983ab41797ca89a0d1578fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernardo=20De=20Marco=20Gon=C3=A7alves?= Date: Mon, 3 Aug 2026 10:50:36 -0300 Subject: [PATCH] fix the retrieval of ceph rgw buckets usage information --- .../driver/CephObjectStoreDriverImpl.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/plugins/storage/object/ceph/src/main/java/org/apache/cloudstack/storage/datastore/driver/CephObjectStoreDriverImpl.java b/plugins/storage/object/ceph/src/main/java/org/apache/cloudstack/storage/datastore/driver/CephObjectStoreDriverImpl.java index 2a7b6e1dda6c..eb501599ca3a 100644 --- a/plugins/storage/object/ceph/src/main/java/org/apache/cloudstack/storage/datastore/driver/CephObjectStoreDriverImpl.java +++ b/plugins/storage/object/ceph/src/main/java/org/apache/cloudstack/storage/datastore/driver/CephObjectStoreDriverImpl.java @@ -302,13 +302,20 @@ public void setBucketQuota(BucketTO bucket, long storeId, long size) { public Map getAllBucketsUsage(long storeId) { RgwAdmin rgwAdmin = getRgwAdminClient(storeId); try { - List bucketinfo = rgwAdmin.listBucketInfo(); - Map bucketsusage = new HashMap(); - for (BucketInfo bucket: bucketinfo) { + logger.debug("Fetching statistics for all buckets accessible by the RGW administrator of the provider with ID [{}].", storeId); + List bucketsInfo = rgwAdmin.listBucketInfo(); + Map bucketsUsage = new HashMap<>(); + for (BucketInfo bucket : bucketsInfo) { BucketInfo.Usage usage = bucket.getUsage(); - bucketsusage.put(bucket.getBucket(), usage.getRgwMain().getSize_kb()); + if (usage == null || usage.getRgwMain() == null) { + logger.debug("Skipping bucket [{}] because RGW usage information is unavailable.", bucket.getBucket()); + continue; + } + + bucketsUsage.put(bucket.getBucket(), usage.getRgwMain().getSize_kb()); } - return bucketsusage; + + return bucketsUsage; } catch (Exception e) { throw new CloudRuntimeException(e); }