From 1efda79fb626777c5b643151a2360f35d3d00556 Mon Sep 17 00:00:00 2001 From: songweibin Date: Wed, 31 Jan 2018 13:44:28 +0800 Subject: [PATCH] rbd: translate pool id into pool name in error msg Signed-off-by: songweibin --- src/tools/rbd/action/Remove.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/tools/rbd/action/Remove.cc b/src/tools/rbd/action/Remove.cc index 67dbae87b31ff..5946ec571dd5b 100644 --- a/src/tools/rbd/action/Remove.cc +++ b/src/tools/rbd/action/Remove.cc @@ -5,6 +5,7 @@ #include "tools/rbd/Shell.h" #include "tools/rbd/Utils.h" #include "common/errno.h" +#include "include/stringify.h" #include #include @@ -78,10 +79,19 @@ int execute(const po::variables_map &vm, if (image_r == 0) { image_r = image.get_group(&group_info, sizeof(group_info)); } - if (image_r == 0) - std::cerr << "rbd: error: image belongs to a group " - << group_info.pool << "." << group_info.name; - else + if (image_r == 0) { + std::string pool_name = ""; + librados::Rados rados(io_ctx); + librados::IoCtx pool_io_ctx; + r = rados.ioctx_create2(group_info.pool, pool_io_ctx); + if (r < 0) { + pool_name = ""; + } else { + pool_name = pool_io_ctx.get_pool_name(); + } + std::cerr << "rbd: error: image belongs to a group " + << pool_name << "/" << group_info.name; + } else std::cerr << "rbd: error: image belongs to a group"; std::cerr << std::endl -- 2.39.5