From d0811e1ef73adb02806de3471c98da3760b02833 Mon Sep 17 00:00:00 2001 From: Abhishek Lekshmanan Date: Tue, 5 Dec 2017 11:06:42 +0100 Subject: [PATCH] tools/rados: support multiple objs in clearomap api Signed-off-by: Abhishek Lekshmanan --- src/tools/rados/rados.cc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index 03c621d8a46c..24ad400dc245 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -115,7 +115,7 @@ void usage(ostream& out) " in the object's object map\n" " setomapval \n" " rmomapkey \n" -" clearomap clear all the omap keys for this object\n" +" clearomap [obj-name2 obj-name3...] clear all the omap keys for the specified objects\n" " getomapheader [file]\n" " setomapheader \n" " tmap-to-omap convert tmap keys/values to omap\n" @@ -2595,15 +2595,16 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, usage_exit(); } - string oid(nargs[1]); - ret = io_ctx.omap_clear(oid); - if (ret < 0) { - cerr << "error removing omap key " << pool_name << "/" << oid << "/" - << cpp_strerror(ret) << std::endl; - goto out; - } else { - ret = 0; + for (unsigned i=1; i < nargs.size(); i++){ + string oid(nargs[i]); + ret = io_ctx.omap_clear(oid); + if (ret < 0) { + cerr << "error clearing omap keys " << pool_name << "/" << oid << "/" + << cpp_strerror(ret) << std::endl; + goto out; + } } + ret = 0; } else if (strcmp(nargs[0], "listomapvals") == 0) { if (!pool_name || nargs.size() < 2) usage_exit(); -- 2.47.3