This replaces cls_rgw_reshard_status.
Remove unused parameters in cls_rgw_bucket_instance_entry.
Other minor cleanup fixes.
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
return rc;
}
- header.new_instance.set_status(op.entry.bucket_instance_id, op.entry.num_shards, op.entry.reshard_status);
+ header.new_instance.set_status(op.entry.reshard_status);
return write_bucket_header(hctx, &header);
}
void cls_rgw_bucket_instance_entry::dump(Formatter *f) const
{
encode_json("reshard_status", to_string(reshard_status), f);
- encode_json("bucket_instance_id", bucket_instance_id, f);
- encode_json("num_shards", num_shards, f);
-
}
void cls_rgw_bucket_instance_entry::generate_test_instances(
ls.push_back(new cls_rgw_bucket_instance_entry);
ls.push_back(new cls_rgw_bucket_instance_entry);
ls.back()->reshard_status = RESHARD_STATUS::IN_PROGRESS;
- ls.back()->bucket_instance_id = "instance_id";
}
void cls_rgw_lc_entry::dump(Formatter *f) const
using RESHARD_STATUS = cls_rgw_reshard_status;
cls_rgw_reshard_status reshard_status{RESHARD_STATUS::NOT_RESHARDING};
- std::string bucket_instance_id;
- int32_t num_shards{-1};
void encode(ceph::buffer::list& bl) const {
- ENCODE_START(1, 1, bl);
+ ENCODE_START(2, 1, bl);
encode((uint8_t)reshard_status, bl);
- encode(bucket_instance_id, bl);
- encode(num_shards, bl);
ENCODE_FINISH(bl);
}
void decode(ceph::buffer::list::const_iterator& bl) {
- DECODE_START(1, bl);
+ DECODE_START(2, bl);
uint8_t s;
decode(s, bl);
reshard_status = (cls_rgw_reshard_status)s;
- decode(bucket_instance_id, bl);
- decode(num_shards, bl);
+ if (struct_v < 2) { // fields removed from v2
+ std::string bucket_instance_id;
+ decode(bucket_instance_id, bl);
+ int32_t num_shards{-1};
+ decode(num_shards, bl);
+ }
DECODE_FINISH(bl);
}
reshard_status = RESHARD_STATUS::NOT_RESHARDING;
}
- void set_status(const std::string& instance_id,
- int32_t new_num_shards,
- cls_rgw_reshard_status s) {
+ void set_status(cls_rgw_reshard_status s) {
reshard_status = s;
- bucket_instance_id = instance_id;
- num_shards = new_num_shards;
}
bool resharding() const {
for (const auto& entry : status) {
formatter->open_object_section("entry");
formatter->dump_string("reshard_status", to_string(entry.reshard_status));
- formatter->dump_string("bucket_instance_id",
- entry.bucket_instance_id);
- formatter->dump_int("num_shards", entry.num_shards);
formatter->close_section();
}
formatter->close_section();
int RGWBucketReshard::set_resharding_status(const DoutPrefixProvider *dpp,
rgw::sal::RadosStore* store,
const RGWBucketInfo& bucket_info,
- const string& instance_id,
- int32_t num_shards,
cls_rgw_reshard_status status)
{
cls_rgw_bucket_instance_entry instance_entry;
- instance_entry.set_status(instance_id, num_shards, status);
+ instance_entry.set_status(status);
int ret = store->getRados()->bucket_set_reshard(dpp, bucket_info, instance_entry);
if (ret < 0) {
if (num_shards < std::numeric_limits<uint32_t>::max()) {
int ret = set_resharding_status(dpp, store, bucket_info,
- bucket_info.bucket.bucket_id,
- (num_shards < 1 ? 1 : num_shards),
cls_rgw_reshard_status::NOT_RESHARDING);
if (ret < 0) {
ldpp_dout(dpp, 0) << "RGWBucketReshard::" << __func__ <<
ldpp_dout(dpp, -1) << "Error: " << __func__ <<
" clear_index_shard_status returned " << ret << dendl;
}
-
- // clears new_bucket_instance as well
set_status(rgw::BucketReshardState::None, dpp);
}
}
// set resharding status of current bucket_info & shards with
// information about planned resharding
- ret = set_resharding_status(dpp, bucket_info.bucket.bucket_id,
- num_shards, cls_rgw_reshard_status::IN_PROGRESS);
+ ret = set_resharding_status(dpp, cls_rgw_reshard_status::IN_PROGRESS);
if (ret < 0) {
return ret;
goto error_out;
static int set_resharding_status(const DoutPrefixProvider *dpp,
rgw::sal::RadosStore* store,
const RGWBucketInfo& bucket_info,
- const std::string& instance_id,
- int32_t num_shards,
- cls_rgw_reshard_status status);
- int set_resharding_status(const DoutPrefixProvider *dpp,
- const std::string& instance_id,
- int32_t num_shards,
- cls_rgw_reshard_status status) {
- return set_resharding_status(dpp, store, bucket_info,
- instance_id, num_shards, status);
+ cls_rgw_reshard_status status);
+ int set_resharding_status(const DoutPrefixProvider *dpp, cls_rgw_reshard_status status) {
+ return set_resharding_status(dpp, store, bucket_info, status);
}
static uint32_t get_max_prime_shards() {
dir_oid.append(bucket_info.bucket.bucket_id);
std::map<int, std::string> bucket_objs;
- get_bucket_index_objects(dir_oid, bucket_info.layout.current_index.layout.normal.num_shards, gen.value_or(0), &bucket_objs);
+ get_bucket_index_objects(dir_oid, bucket_info.layout.current_index.layout.normal.num_shards, gen, &bucket_objs);
return CLSRGWIssueBucketIndexClean(index_pool.ioctx(),
bucket_objs,