]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Zipper - More getRados removal 36798/head
authorDaniel Gryniewicz <dang@redhat.com>
Tue, 18 Aug 2020 19:22:21 +0000 (15:22 -0400)
committerDaniel Gryniewicz <dang@redhat.com>
Tue, 8 Sep 2020 15:51:29 +0000 (11:51 -0400)
- read_usage

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
src/rgw/rgw_op.cc
src/rgw/rgw_rados.h
src/rgw/rgw_sal.h
src/rgw/rgw_sal_rados.cc
src/rgw/rgw_sal_rados.h

index 6bebdb1df042de49ccbf2feec43e18370bfd8aa1..05bfa419df2439ccee9b531bf2f808f9d44a1ae0 100644 (file)
@@ -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();
 }
 
 
index 30ba3e38dc8bd78d579deb752b34048c226cc19f..5bd30e374e92654b65c52f664699ec19b1c60e85 100644 (file)
@@ -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;
index 3344f8a72e796eef95ebbc42c044dcfc59ab7dc4..7f5e371af70ccbda5fd9d39b222c8616cad5da55 100644 (file)
@@ -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<rgw_user_bucket, rgw_usage_log_entry>& usage) = 0;
 
     bool empty() const { return info.bucket.name.empty(); }
     const std::string& get_name() const { return info.bucket.name; }
index 2e75b3e1a101533b19e422ddf0a0937a6d0497b8..4902e72a84c531b3e1153bc5748834d39adf9f19 100644 (file)
@@ -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<rgw_user_bucket, rgw_usage_log_entry>& 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;
index 5f0253f5c016a5717910e01d9149fc37955089f3..439d74abfd58a6db5e63f56977a9ce2493108837 100644 (file)
@@ -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<rgw_user_bucket, rgw_usage_log_entry>& usage) override;
     virtual std::unique_ptr<RGWBucket> clone() {
       return std::unique_ptr<RGWBucket>(new RGWRadosBucket(*this));
     }