+// -*- 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
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;
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:
return -r;
}
- encode_json("status", status, formatter);
- formatter->flush(cout);
+ show_reshard_status(status, formatter);
}
if (opt_cmd == OPT_RESHARD_PROCESS) {