From: Radoslaw Zarzynski Date: Fri, 5 Feb 2021 18:47:29 +0000 (+0000) Subject: tools/rados: replace omap_key_valid with std::optional. X-Git-Tag: v14.2.17~25^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9af1feda40a28f9c7834d09c5a731e8f507ceb10;p=ceph.git tools/rados: replace omap_key_valid with std::optional. Signed-off-by: Radoslaw Zarzynski (cherry picked from commit eb87a0646a3635a7a35b6326e6d26e4b0b5b9d37) --- diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index c386bf9c3a42..af69c73759e9 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -1886,8 +1886,7 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, unique_ptr formatter = nullptr; bool pretty_format = false; const char *output = NULL; - bool omap_key_valid = false; - std::string omap_key; + std::optional omap_key; std::optional obj_name; bool with_reference = false; @@ -2099,8 +2098,6 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, cerr << err << std::endl; return 1; } - - omap_key_valid = true; omap_key = std::string(indata.c_str(), indata.length()); } i = opts.find("obj-name-file"); @@ -2810,14 +2807,14 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, ret = 0; } } else if (strcmp(nargs[0], "setomapval") == 0) { - uint32_t min_args = (omap_key_valid ? 2 : 3); + uint32_t min_args = (omap_key ? 2 : 3); if (!pool_name || nargs.size() < min_args || nargs.size() > min_args + 1) { usage(cerr); return 1; } string oid(nargs[1]); - if (!omap_key_valid) { + if (!omap_key) { omap_key = nargs[2]; } @@ -2835,30 +2832,30 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, } map values; - values[omap_key] = bl; + values[*omap_key] = bl; ret = io_ctx.omap_set(oid, values); if (ret < 0) { cerr << "error setting omap value " << pool_name << "/" << oid << "/" - << prettify(omap_key) << ": " << cpp_strerror(ret) << std::endl; + << prettify(*omap_key) << ": " << cpp_strerror(ret) << std::endl; return 1; } else { ret = 0; } } else if (strcmp(nargs[0], "getomapval") == 0) { - uint32_t min_args = (omap_key_valid ? (obj_name ? 1 : 2) - : (obj_name ? 2 : 3)); + uint32_t min_args = (omap_key ? (obj_name ? 1 : 2) + : (obj_name ? 2 : 3)); if (!pool_name || nargs.size() < min_args || nargs.size() > min_args + 1) { usage(cerr); return 1; } - if (!omap_key_valid) { + if (!omap_key) { omap_key = nargs[obj_name ? 1 : 2]; } set keys; - keys.insert(omap_key); + keys.insert(*omap_key); std::string outfile; if (nargs.size() > min_args) { @@ -2872,13 +2869,13 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, ret = io_ctx.omap_get_vals_by_keys(*obj_name, keys, &values); if (ret < 0) { cerr << "error getting omap value " << pool_name << "/" << prettify(*obj_name) << "/" - << prettify(omap_key) << ": " << cpp_strerror(ret) << std::endl; + << prettify(*omap_key) << ": " << cpp_strerror(ret) << std::endl; return 1; } else { ret = 0; } - if (values.size() && values.begin()->first == omap_key) { + if (values.size() && values.begin()->first == *omap_key) { if (!outfile.empty()) { cerr << "Writing to " << outfile << std::endl; dump_data(outfile, values.begin()->second); @@ -2890,30 +2887,30 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, ret = 0; } else { cout << "No such key: " << pool_name << "/" << prettify(*obj_name) << "/" - << prettify(omap_key) << std::endl; + << prettify(*omap_key) << std::endl; return 1; } } else if (strcmp(nargs[0], "rmomapkey") == 0) { - uint32_t num_args = (omap_key_valid ? (obj_name ? 1 : 2) - : (obj_name ? 2 : 3)); + uint32_t num_args = (omap_key ? (obj_name ? 1 : 2) + : (obj_name ? 2 : 3)); if (!pool_name || nargs.size() != num_args) { usage(cerr); return 1; } - if (!omap_key_valid) { + if (!omap_key) { omap_key = nargs[obj_name ? 1 : 2]; } if (!obj_name) { obj_name = nargs[1]; } set keys; - keys.insert(omap_key); + keys.insert(*omap_key); ret = io_ctx.omap_rm_keys(*obj_name, keys); if (ret < 0) { cerr << "error removing omap key " << pool_name << "/" << prettify(*obj_name) << "/" - << prettify(omap_key) << ": " << cpp_strerror(ret) << std::endl; + << prettify(*omap_key) << ": " << cpp_strerror(ret) << std::endl; return 1; } else { ret = 0;