From: Matt Benjamin Date: Wed, 17 Oct 2018 14:43:01 +0000 (-0400) Subject: radosgw-admin: translate reshard status codes (trivial) X-Git-Tag: v13.2.5~144^2~5^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f105ec14e69c5db91c4535a4b953a4d237c42d64;p=ceph.git radosgw-admin: translate reshard status codes (trivial) Fixes: http://tracker.ceph.com/issues/36486 Signed-off-by: Matt Benjamin (cherry picked from commit 731fca4f921e8227e907b204dec9f1016d66b8c3) --- diff --git a/src/cls/rgw/cls_rgw_types.h b/src/cls/rgw/cls_rgw_types.h index 8cf24dcbcd73..06c0f8b64952 100644 --- a/src/cls/rgw/cls_rgw_types.h +++ b/src/cls/rgw/cls_rgw_types.h @@ -615,6 +615,24 @@ enum cls_rgw_reshard_status { CLS_RGW_RESHARD_DONE = 2, }; +static inline std::string to_string(const enum cls_rgw_reshard_status status) +{ + switch (status) { + case CLS_RGW_RESHARD_NONE: + return "CLS_RGW_RESHARD_NONE"; + break; + case CLS_RGW_RESHARD_IN_PROGRESS: + return "CLS_RGW_RESHARD_IN_PROGRESS"; + break; + case CLS_RGW_RESHARD_DONE: + return "CLS_RGW_RESHARD_DONE"; + break; + default: + break; + }; + return "Unknown reshard status"; +} + struct cls_rgw_bucket_instance_entry { cls_rgw_reshard_status reshard_status{CLS_RGW_RESHARD_NONE}; string new_bucket_instance_id; diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 64768ee49f53..9770c3e89d2f 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -1090,6 +1090,22 @@ static void show_roles_info(vector& roles, Formatter* formatter) formatter->flush(cout); } +static void show_reshard_status( + const list& status, Formatter *formatter) +{ + formatter->open_array_section("status"); + for (const auto& entry : status) { + formatter->open_object_section("entry"); + formatter->dump_string("reshard_status", to_string(entry.reshard_status)); + formatter->dump_string("new_bucket_instance_id", + entry.new_bucket_instance_id); + formatter->dump_unsigned("num_shards", entry.num_shards); + formatter->close_section(); + } + formatter->close_section(); + formatter->flush(cout); +} + class StoreDestructor { RGWRados *store; public: @@ -6200,8 +6216,7 @@ next: return -r; } - encode_json("status", status, formatter); - formatter->flush(cout); + show_reshard_status(status, formatter); } if (opt_cmd == OPT_RESHARD_PROCESS) {