From: Matt Benjamin Date: Wed, 17 Oct 2018 14:43:01 +0000 (-0400) Subject: radosgw-admin: translate reshard status codes (trivial) X-Git-Tag: v14.1.0~975^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F24638%2Fhead;p=ceph.git radosgw-admin: translate reshard status codes (trivial) Fixes: http://tracker.ceph.com/issues/36486 Signed-off-by: Matt Benjamin --- diff --git a/src/cls/rgw/cls_rgw_types.h b/src/cls/rgw/cls_rgw_types.h index 4dd823e37766..6731f00a345a 100644 --- a/src/cls/rgw/cls_rgw_types.h +++ b/src/cls/rgw/cls_rgw_types.h @@ -1,3 +1,6 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + #ifndef CEPH_CLS_RGW_TYPES_H #define CEPH_CLS_RGW_TYPES_H @@ -612,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 047a506248ce..b14aa0f43616 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -1057,6 +1057,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: @@ -6127,8 +6143,7 @@ next: return -r; } - encode_json("status", status, formatter); - formatter->flush(cout); + show_reshard_status(status, formatter); } if (opt_cmd == OPT_RESHARD_PROCESS) {