]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
radosgw-admin: translate reshard status codes (trivial) 25198/head
authorMatt Benjamin <mbenjamin@redhat.com>
Wed, 17 Oct 2018 14:43:01 +0000 (10:43 -0400)
committerPrashant D <pdhange@redhat.com>
Wed, 21 Nov 2018 04:20:51 +0000 (23:20 -0500)
Fixes: http://tracker.ceph.com/issues/36486
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit 731fca4f921e8227e907b204dec9f1016d66b8c3)

src/cls/rgw/cls_rgw_types.h
src/rgw/rgw_admin.cc

index 8cf24dcbcd7395e3ef029b540674639bfc0d45ab..06c0f8b649523e1d1a2e9ece833b491d3f61be68 100644 (file)
@@ -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;
index 64768ee49f53133f93406ad5ade87f5e6d554e7d..9770c3e89d2ff2e33068f012a8768019f85c2914 100644 (file)
@@ -1090,6 +1090,22 @@ static void show_roles_info(vector<RGWRole>& roles, Formatter* formatter)
   formatter->flush(cout);
 }
 
+static void show_reshard_status(
+  const list<cls_rgw_bucket_instance_entry>& 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) {