From b3471459c11ef33d20cde3fa82141e39f504c003 Mon Sep 17 00:00:00 2001 From: Shinobu Kinjo Date: Fri, 3 Nov 2017 12:57:57 +0900 Subject: [PATCH] mon/OSDMonitor.cc: Add current numbers of objects and bytes The purpose of this PR is that sysadmins know current numbers of objects and bytes when they run `osd pool get-quota`. Signed-off-by: Shinobu Kinjo --- src/mon/OSDMonitor.cc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index cc3cbbaff2e..9755ac53d1c 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -4440,13 +4440,16 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) goto reply; } const pg_pool_t *p = osdmap.get_pg_pool(poolid); - + const pool_stat_t* pstat = mon->mgrstatmon()->get_pool_stat(poolid); + const object_stat_sum_t& sum = pstat->stats.sum; if (f) { f->open_object_section("pool_quotas"); f->dump_string("pool_name", pool_name); f->dump_unsigned("pool_id", poolid); f->dump_unsigned("quota_max_objects", p->quota_max_objects); + f->dump_int("current_num_objects", sum.num_objects); f->dump_unsigned("quota_max_bytes", p->quota_max_bytes); + f->dump_int("current_num_bytes", sum.num_bytes); f->close_section(); f->flush(rdata); } else { @@ -4455,14 +4458,18 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) << " max objects: "; if (p->quota_max_objects == 0) rs << "N/A"; - else - rs << si_t(p->quota_max_objects) << " objects"; + else { + rs << si_t(p->quota_max_objects) << " objects\n"; + rs << " (current num objects: " << sum.num_objects << " objects)"; + } rs << "\n" << " max bytes : "; if (p->quota_max_bytes == 0) rs << "N/A"; - else - rs << si_t(p->quota_max_bytes) << "B"; + else { + rs << si_t(p->quota_max_bytes) << " bytes"; + rs << " (current num bytes: " << sum.num_bytes << " bytes)"; + } rdata.append(rs.str()); } rdata.append("\n"); -- 2.39.5