BUCKET_CHOWN,
BUCKET_RADOS_LIST,
BUCKET_SHARD_OBJECTS,
+ BUCKET_OBJECT_SHARD,
POLICY,
POOL_ADD,
POOL_RM,
{ "bucket rados list", OPT::BUCKET_RADOS_LIST },
{ "bucket shard objects", OPT::BUCKET_SHARD_OBJECTS },
{ "bucket shard object", OPT::BUCKET_SHARD_OBJECTS },
+ { "bucket object shard", OPT::BUCKET_OBJECT_SHARD },
{ "policy", OPT::POLICY },
{ "pool add", OPT::POOL_ADD },
{ "pool rm", OPT::POOL_RM },
OPT::BUCKET_SYNC_STATUS,
OPT::BUCKET_SYNC_MARKERS,
OPT::BUCKET_SHARD_OBJECTS,
+ OPT::BUCKET_OBJECT_SHARD,
OPT::LOG_LIST,
OPT::LOG_SHOW,
OPT::USAGE_SHOW,
}
}
+ if (opt_cmd == OPT::BUCKET_OBJECT_SHARD) {
+ if (!num_shards_specified || object.empty()) {
+ cerr << "ERROR: num-shards and object must be specified."
+ << std::endl;
+ return EINVAL;
+ }
+ auto shard = RGWSI_BucketIndex_RADOS::bucket_shard_index(object, num_shards);
+ formatter->open_object_section("obj_shard");
+ encode_json("shard", shard, formatter.get());
+ formatter->close_section();
+ formatter->flush(cout);
+ }
+
if (opt_cmd == OPT::BUCKET_CHOWN) {
if (bucket_name.empty()) {
cerr << "ERROR: bucket name not specified" << std::endl;