From 6dfcae2b7db7fae87695bfe4476c0cc896593b09 Mon Sep 17 00:00:00 2001 From: Shilpa Jagannath Date: Tue, 9 Jun 2020 08:35:27 +0530 Subject: [PATCH] rgw: use BucketReshardState states in appropriate places This replaces cls_rgw_reshard_status. Remove unused parameters in cls_rgw_bucket_instance_entry. Other minor cleanup fixes. Signed-off-by: Shilpa Jagannath --- src/cls/rgw/cls_rgw.cc | 2 +- src/cls/rgw/cls_rgw_types.cc | 4 ---- src/cls/rgw/cls_rgw_types.h | 22 +++++++++------------- src/rgw/rgw_admin.cc | 3 --- src/rgw/rgw_reshard.cc | 11 ++--------- src/rgw/rgw_reshard.h | 12 +++--------- src/rgw/services/svc_bi_rados.cc | 2 +- 7 files changed, 16 insertions(+), 40 deletions(-) diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index acb464bfa935c..4100dcfbc91d4 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -4263,7 +4263,7 @@ static int rgw_set_bucket_resharding(cls_method_context_t hctx, bufferlist *in, 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); } diff --git a/src/cls/rgw/cls_rgw_types.cc b/src/cls/rgw/cls_rgw_types.cc index 76186c60ab6f3..b49666187aa22 100644 --- a/src/cls/rgw/cls_rgw_types.cc +++ b/src/cls/rgw/cls_rgw_types.cc @@ -738,9 +738,6 @@ void cls_rgw_reshard_entry::generate_test_instances(list 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( @@ -749,7 +746,6 @@ 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_obj_head::dump(Formatter *f) const diff --git a/src/cls/rgw/cls_rgw_types.h b/src/cls/rgw/cls_rgw_types.h index e67650b781ea4..5edff485228a2 100644 --- a/src/cls/rgw/cls_rgw_types.h +++ b/src/cls/rgw/cls_rgw_types.h @@ -793,24 +793,24 @@ struct cls_rgw_bucket_instance_entry { 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); } @@ -821,12 +821,8 @@ struct cls_rgw_bucket_instance_entry { 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 { diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 1bb7fbd27a0f1..d9b0e3f4654ef 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -1151,9 +1151,6 @@ static void show_reshard_status( 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(); diff --git a/src/rgw/rgw_reshard.cc b/src/rgw/rgw_reshard.cc index 9eb22ef746e99..d0104951da301 100644 --- a/src/rgw/rgw_reshard.cc +++ b/src/rgw/rgw_reshard.cc @@ -264,12 +264,10 @@ RGWBucketReshard::RGWBucketReshard(rgw::sal::RadosStore* _store, 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) { @@ -313,8 +311,6 @@ int RGWBucketReshard::clear_index_shard_reshard_status(const DoutPrefixProvider if (num_shards < std::numeric_limits::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__ << @@ -404,8 +400,6 @@ public: 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); } } @@ -709,8 +703,7 @@ int RGWBucketReshard::execute(int num_shards, int max_op_entries, // 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; diff --git a/src/rgw/rgw_reshard.h b/src/rgw/rgw_reshard.h index a33af8f378392..02c097331f3fd 100644 --- a/src/rgw/rgw_reshard.h +++ b/src/rgw/rgw_reshard.h @@ -120,15 +120,9 @@ public: 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() { diff --git a/src/rgw/services/svc_bi_rados.cc b/src/rgw/services/svc_bi_rados.cc index 7d2cea00e64df..ed4bb39cc4ca5 100644 --- a/src/rgw/services/svc_bi_rados.cc +++ b/src/rgw/services/svc_bi_rados.cc @@ -406,7 +406,7 @@ int RGWSI_BucketIndex_RADOS::clean_index(const DoutPrefixProvider *dpp, RGWBucke dir_oid.append(bucket_info.bucket.bucket_id); std::map 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, -- 2.39.5