]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
d4n/filter: Implement `get_bucket` and `load_bucket`
authorSamarah <samarah.uriarte@ibm.com>
Tue, 16 Jul 2024 21:28:29 +0000 (21:28 +0000)
committerPritha Srivastava <prsrivas@redhat.com>
Mon, 21 Apr 2025 04:04:07 +0000 (09:34 +0530)
Signed-off-by: Samarah <samarah.uriarte@ibm.com>
src/rgw/driver/d4n/rgw_sal_d4n.cc
src/rgw/driver/d4n/rgw_sal_d4n.h

index e7fbadea36bd9234813136b0073e21a9000ad46c..c9dbb138e2590befbe33aef10ac909231a8ed78f 100644 (file)
@@ -94,6 +94,20 @@ std::unique_ptr<Object> D4NFilterBucket::get_object(const rgw_obj_key& k)
   return std::make_unique<D4NFilterObject>(std::move(o), this, filter);
 }
 
+std::unique_ptr<Bucket> D4NFilterDriver::get_bucket(const RGWBucketInfo& i)
+{
+  return std::make_unique<D4NFilterBucket>(next->get_bucket(i), this);
+}
+
+int D4NFilterDriver::load_bucket(const DoutPrefixProvider* dpp, const rgw_bucket& b,
+                                std::unique_ptr<Bucket>* bucket, optional_yield y)
+{
+  std::unique_ptr<Bucket> nb;
+  const int ret = next->load_bucket(dpp, b, &nb, y);
+  *bucket = std::make_unique<D4NFilterBucket>(std::move(nb), this);
+  return ret;
+}
+
 int D4NFilterBucket::create(const DoutPrefixProvider* dpp,
                             const CreateParams& params,
                             optional_yield y)
index bdd5bef90a9173e269c770cab0eaef6a8a1aa31f..f433632763fac8959a7661c0658474e6bf0f2268 100644 (file)
@@ -56,6 +56,9 @@ class D4NFilterDriver : public FilterDriver {
     virtual std::unique_ptr<User> get_user(const rgw_user& u) override;
 
     virtual std::unique_ptr<Object> get_object(const rgw_obj_key& k) override;
+    virtual std::unique_ptr<Bucket> get_bucket(const RGWBucketInfo& i) override;
+    int load_bucket(const DoutPrefixProvider* dpp, const rgw_bucket& b,
+                  std::unique_ptr<Bucket>* bucket, optional_yield y) override;
 
     virtual std::unique_ptr<Writer> get_atomic_writer(const DoutPrefixProvider *dpp,
                                  optional_yield y,