]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix the "empty" interface for sal Bucket and Object 47010/head
authorYuval Lifshitz <ylifshit@redhat.com>
Sun, 10 Jul 2022 08:50:33 +0000 (11:50 +0300)
committerYuval Lifshitz <ylifshit@redhat.com>
Sun, 7 Aug 2022 18:58:59 +0000 (21:58 +0300)
the interface was originaly added in: 9c07fe8f56657428525cd78d380140ca20e786fc

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
src/rgw/rgw_process.cc
src/rgw/rgw_sal.h
src/rgw/rgw_sal_filter.h
src/rgw/rgw_sal_store.h

index a05903bc4c2da2544f529628e8213e95b77fa368..5f6bda5d228a2fe0373c51da142cf3917b296726 100644 (file)
@@ -404,13 +404,13 @@ done:
   if (op) {
     if (s->trace) {
       s->trace->SetAttribute(tracing::rgw::RETURN, op->get_ret());
-      if (s->user) {
+      if (!rgw::sal::User::empty(s->user)) {
         s->trace->SetAttribute(tracing::rgw::USER_ID, s->user->get_id().id);
       }
-      if (s->bucket) {
+      if (!rgw::sal::Bucket::empty(s->bucket)) {
         s->trace->SetAttribute(tracing::rgw::BUCKET_NAME, s->bucket->get_name());
       }
-      if (s->object) {
+      if (!rgw::sal::Object::empty(s->object)) {
         s->trace->SetAttribute(tracing::rgw::OBJECT_NAME, s->object->get_name());
       }
     }
index 90ccdc165eb08b0a1c006c0016aa63112cf9d2a7..b6904c766e9d93ee36f1f78b3db701be01b1e215 100644 (file)
@@ -521,11 +521,11 @@ class User {
     /** Set the cached attributes fro this User */
     virtual void set_attrs(Attrs& _attrs) = 0;
     /** Check if a User is empty */
-    virtual bool empty() = 0;
+    virtual bool empty() const = 0;
     /** Check if a User pointer is empty */
-    static bool empty(User* u) { return (!u || u->empty()); }
+    static bool empty(const User* u) { return (!u || u->empty()); }
     /** Check if a User unique_pointer is empty */
-    static bool empty(std::unique_ptr<User>& u) { return (!u || u->empty()); }
+    static bool empty(const std::unique_ptr<User>& u) { return (!u || u->empty()); }
     /** Read the User attributes from the backing Store */
     virtual int read_attrs(const DoutPrefixProvider* dpp, optional_yield y) = 0;
     /** Set the attributes in attrs, leaving any other existing attrs set, and
@@ -1080,9 +1080,9 @@ class Object {
                                    bool must_exist, optional_yield y) = 0;
 
     /** Check to see if the given object pointer is uninitialized */
-    static bool empty(Object* o) { return (!o || o->empty()); }
+    static bool empty(const Object* o) { return (!o || o->empty()); }
     /** Check to see if the given object unique pointer is uninitialized */
-    static bool empty(std::unique_ptr<Object> o) { return (!o || o->empty()); }
+    static bool empty(const std::unique_ptr<Object>& o) { return (!o || o->empty()); }
     /** Get a unique copy of this object */
     virtual std::unique_ptr<Object> clone() = 0;
 
index 88e92a356a8ece9a96de3e255d4a7411d8ff66c1..01e347a8d021d6bcfbabf9a5d96155dd91a12b05 100644 (file)
@@ -347,7 +347,7 @@ public:
   }
   virtual Attrs& get_attrs() override { return next->get_attrs(); }
   virtual void set_attrs(Attrs& _attrs) override { next->set_attrs(_attrs); }
-  virtual bool empty() override { return next->empty(); }
+  virtual bool empty() const override { return next->empty(); }
   virtual int read_attrs(const DoutPrefixProvider* dpp, optional_yield y) override;
   virtual int merge_and_store_attrs(const DoutPrefixProvider* dpp, Attrs&
                                    new_attrs, optional_yield y) override;
index 214c83fe9c7e3dd73a9c4b95d31c5b724050b307..fbdb2d9815b7ae23b46c0c1ce51eb21c0e6fcd3e 100644 (file)
@@ -55,7 +55,7 @@ class StoreUser : public User {
     virtual RGWObjVersionTracker& get_version_tracker() override { return objv_tracker; }
     virtual Attrs& get_attrs() override { return attrs; }
     virtual void set_attrs(Attrs& _attrs) override { attrs = _attrs; }
-    virtual bool empty() override { return info.user_id.id.empty(); }
+    virtual bool empty() const override { return info.user_id.id.empty(); }
     virtual RGWUserInfo& get_info() override { return info; }
     virtual void print(std::ostream& out) const override { out << info.user_id; }