]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/d4n: fix output of binary data to text log and logs cleanup
authorMark Kogan <mkogan@redhat.com>
Mon, 9 Dec 2024 16:23:43 +0000 (16:23 +0000)
committerPritha Srivastava <prsrivas@redhat.com>
Mon, 21 Apr 2025 04:04:07 +0000 (09:34 +0530)
the RGW_ATTR_ACL attr logging requires special handling

Signed-off-by: Mark Kogan <mkogan@redhat.com>
src/rgw/driver/d4n/d4n_policy.cc
src/rgw/rgw_ssd_driver.cc

index 4928b74e328abf0311ad615a0987568b4f7dac60..0bce11753d9d9d072866dc6c9a50c3a3c3a6704d 100644 (file)
@@ -859,7 +859,7 @@ void LFUDAPolicy::cleaning(const DoutPrefixProvider* dpp)
        }
        rgw::d4n::CacheBlock block;
        block.cacheObj.bucketName = c_obj->get_bucket()->get_bucket_id();
-        std::cout << "bucket name: " << block.cacheObj.bucketName  << std::endl;
+        ldpp_dout(dpp, 20) << __func__ << "(): bucket name: " << block.cacheObj.bucketName << dendl;
        block.cacheObj.objName = c_obj->get_name();
        block.size = 0;
        block.blockID = 0;
index 3a3d024cd557ffabbf093fd646de6200ff9449d6..03b50bd40b29077e9b6cbd0f35eebb232adefa05 100644 (file)
@@ -967,7 +967,30 @@ int SSDDriver::set_attr(const DoutPrefixProvider* dpp, const std::string& key, c
 
     ldpp_dout(dpp, 20) << "SSDCache: " << __func__ << "(): location=" << location << dendl;
 
-    ldpp_dout(dpp, 20) << "SSDCache: " << __func__ << "(): set_attr: key: " << attr_name << " val: " << attr_val << dendl;
+    if (attr_name == RGW_ATTR_ACL) {
+      if (dpp->get_cct()->_conf->subsys.should_gather(ceph_subsys_rgw, 20)) {
+        std::string policy_json;
+        RGWAccessControlPolicy policy;
+        bufferlist bl;
+        bl.append(attr_val);
+        auto bliter = bl.cbegin();
+        try {
+          policy.decode(bliter);
+          Formatter *f = Formatter::create("json");
+          policy.dump(f);
+          std::stringstream ss;
+          f->flush(ss);
+          policy_json = ss.str();
+          delete f;
+        } catch (buffer::error& err) {
+          ldpp_dout(dpp, 0) << "ERROR: decode policy failed" << err.what() << dendl;
+          policy_json = "ERROR: decode policy failed";
+        }
+        ldpp_dout(dpp, 20) << "SSDCache: " << __func__ << "(): set_attr: key: " << attr_name << " val: " << policy_json << dendl;
+      }
+    } else {
+      ldpp_dout(dpp, 20) << "SSDCache: " << __func__ << "(): set_attr: key: " << attr_name << " val: " << attr_val << dendl;
+    }
 
     auto ret = setxattr(location.c_str(), attr_name.c_str(), attr_val.c_str(), attr_val.size(), 0);
     if (ret < 0) {