From: Daniel Gryniewicz Date: Tue, 18 Aug 2020 19:22:21 +0000 (-0400) Subject: Zipper - More getRados removal X-Git-Tag: v16.1.0~1144^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=be1e8e69e7d89de141213688f3e564adc86714b0;p=ceph.git Zipper - More getRados removal - read_usage Signed-off-by: Daniel Gryniewicz --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 6bebdb1df042..05bfa419df24 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -2408,9 +2408,8 @@ void RGWGetUsage::execute() RGWUsageIter usage_iter; while (is_truncated) { - op_ret = store->getRados()->read_usage(s->user->get_id(), s->bucket_name, start_epoch, end_epoch, max_entries, - &is_truncated, usage_iter, usage); - + op_ret = s->bucket->read_usage(start_epoch, end_epoch, max_entries, &is_truncated, + usage_iter, usage); if (op_ret == -ENOENT) { op_ret = 0; is_truncated = false; @@ -5754,13 +5753,13 @@ void RGWSetRequestPayment::execute() return; s->bucket->get_info().requester_pays = requester_pays; - op_ret = store->getRados()->put_bucket_instance_info(s->bucket->get_info(), false, real_time(), - &s->bucket_attrs); + op_ret = s->bucket->put_instance_info(false, real_time()); if (op_ret < 0) { ldpp_dout(this, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket->get_name() << " returned err=" << op_ret << dendl; return; } + s->bucket_attrs = s->bucket->get_attrs(); } int RGWInitMultipart::verify_permission() @@ -7355,12 +7354,13 @@ void RGWConfigBucketMetaSearch::execute() s->bucket->get_info().mdsearch_config = mdsearch_config; - op_ret = store->getRados()->put_bucket_instance_info(s->bucket->get_info(), false, real_time(), &s->bucket_attrs); + op_ret = s->bucket->put_instance_info(false, real_time()); if (op_ret < 0) { ldpp_dout(this, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket->get_name() << " returned err=" << op_ret << dendl; return; } + s->bucket_attrs = s->bucket->get_attrs(); } int RGWGetBucketMetaSearch::verify_permission() @@ -7395,12 +7395,13 @@ void RGWDelBucketMetaSearch::execute() { s->bucket->get_info().mdsearch_config.clear(); - op_ret = store->getRados()->put_bucket_instance_info(s->bucket->get_info(), false, real_time(), &s->bucket_attrs); + op_ret = s->bucket->put_instance_info(false, real_time()); if (op_ret < 0) { ldpp_dout(this, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket->get_name() << " returned err=" << op_ret << dendl; return; } + s->bucket_attrs = s->bucket->get_attrs(); } diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 30ba3e38dc8b..5bd30e374e92 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -26,6 +26,7 @@ #include "rgw_sync_module.h" #include "rgw_trim_bilog.h" #include "rgw_service.h" +#include "rgw_sal.h" #include "services/svc_rados.h" #include "services/svc_bi_rados.h" @@ -137,13 +138,6 @@ struct RGWUsageBatch { } }; -struct RGWUsageIter { - string read_iter; - uint32_t index; - - RGWUsageIter() : index(0) {} -}; - class RGWGetDataCB { public: virtual int handle_data(bufferlist& bl, off_t bl_ofs, off_t bl_len) = 0; diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 3344f8a72e79..7f5e371af70c 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -22,6 +22,13 @@ class RGWGetDataCB; struct RGWObjState; class RGWAccessListFilter; +struct RGWUsageIter { + string read_iter; + uint32_t index; + + RGWUsageIter() : index(0) {} +}; + namespace rgw { namespace sal { #define RGW_SAL_VERSION 1 @@ -198,6 +205,9 @@ class RGWBucket { virtual int check_quota(RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, bool check_size_only = false) = 0; virtual int set_instance_attrs(RGWAttrs& attrs, optional_yield y) = 0; virtual int try_refresh_info(ceph::real_time *pmtime) = 0; + virtual int read_usage(uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries, + bool *is_truncated, RGWUsageIter& usage_iter, + map& usage) = 0; bool empty() const { return info.bucket.name.empty(); } const std::string& get_name() const { return info.bucket.name; } diff --git a/src/rgw/rgw_sal_rados.cc b/src/rgw/rgw_sal_rados.cc index 2e75b3e1a101..4902e72a84c5 100644 --- a/src/rgw/rgw_sal_rados.cc +++ b/src/rgw/rgw_sal_rados.cc @@ -312,6 +312,16 @@ int RGWRadosBucket::try_refresh_info(ceph::real_time *pmtime) return store->getRados()->try_refresh_bucket_info(info, pmtime, &attrs); } +int RGWRadosBucket::read_usage(uint64_t start_epoch, uint64_t end_epoch, + uint32_t max_entries, bool *is_truncated, + RGWUsageIter& usage_iter, + map& usage) +{ + return store->getRados()->read_usage(owner->get_id(), get_name(), start_epoch, + end_epoch, max_entries, is_truncated, + usage_iter, usage); +} + int RGWRadosBucket::set_acl(RGWAccessControlPolicy &acl, optional_yield y) { bufferlist aclbl; diff --git a/src/rgw/rgw_sal_rados.h b/src/rgw/rgw_sal_rados.h index 5f0253f5c016..439d74abfd58 100644 --- a/src/rgw/rgw_sal_rados.h +++ b/src/rgw/rgw_sal_rados.h @@ -206,6 +206,9 @@ class RGWRadosBucket : public RGWBucket { virtual int check_quota(RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, bool check_size_only = false) override; virtual int set_instance_attrs(RGWAttrs& attrs, optional_yield y) override; virtual int try_refresh_info(ceph::real_time *pmtime) override; + virtual int read_usage(uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries, + bool *is_truncated, RGWUsageIter& usage_iter, + map& usage) override; virtual std::unique_ptr clone() { return std::unique_ptr(new RGWRadosBucket(*this)); }