]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/rgw/services/svc_cls.cc
import ceph pacific 16.2.5
[ceph.git] / ceph / src / rgw / services / svc_cls.cc
index 984d92a5ee95f7c16c7dc8c202f64c0394018d33..d2aaa6d889d94fef6ba6c0fa7d571425631c3efe 100644 (file)
 
 static string log_lock_name = "rgw_log_lock";
 
-int RGWSI_Cls::do_start(optional_yield y)
+int RGWSI_Cls::do_start(optional_yield y, const DoutPrefixProvider *dpp)
 {
-  int r = mfa.do_start(y);
+  int r = mfa.do_start(y, dpp);
   if (r < 0) {
-    ldout(cct, 0) << "ERROR: failed to start mfa service" << dendl;
+    ldpp_dout(dpp, 0) << "ERROR: failed to start mfa service" << dendl;
     return r;
   }
 
   return 0;
 }
 
-int RGWSI_Cls::MFA::get_mfa_obj(const rgw_user& user, std::optional<RGWSI_RADOS::Obj> *obj)
+int RGWSI_Cls::MFA::get_mfa_obj(const DoutPrefixProvider *dpp, const rgw_user& user, std::optional<RGWSI_RADOS::Obj> *obj)
 {
   string oid = get_mfa_oid(user);
   rgw_raw_obj o(zone_svc->get_zone_params().otp_pool, oid);
 
   obj->emplace(rados_svc->obj(o));
-  int r = (*obj)->open();
+  int r = (*obj)->open(dpp);
   if (r < 0) {
-    ldout(cct, 4) << "failed to open rados context for " << o << dendl;
+    ldpp_dout(dpp, 4) << "failed to open rados context for " << o << dendl;
     return r;
   }
 
   return 0;
 }
 
-int RGWSI_Cls::MFA::get_mfa_ref(const rgw_user& user, rgw_rados_ref *ref)
+int RGWSI_Cls::MFA::get_mfa_ref(const DoutPrefixProvider *dpp, const rgw_user& user, rgw_rados_ref *ref)
 {
   std::optional<RGWSI_RADOS::Obj> obj;
-  int r = get_mfa_obj(user, &obj);
+  int r = get_mfa_obj(dpp, user, &obj);
   if (r < 0) {
     return r;
   }
@@ -54,10 +54,10 @@ int RGWSI_Cls::MFA::get_mfa_ref(const rgw_user& user, rgw_rados_ref *ref)
   return 0;
 }
 
-int RGWSI_Cls::MFA::check_mfa(const rgw_user& user, const string& otp_id, const string& pin, optional_yield y)
+int RGWSI_Cls::MFA::check_mfa(const DoutPrefixProvider *dpp, const rgw_user& user, const string& otp_id, const string& pin, optional_yield y)
 {
   rgw_rados_ref ref;
-  int r = get_mfa_ref(user, &ref);
+  int r = get_mfa_ref(dpp, user, &ref);
   if (r < 0) {
     return r;
   }
@@ -68,7 +68,7 @@ int RGWSI_Cls::MFA::check_mfa(const rgw_user& user, const string& otp_id, const
   if (r < 0)
     return r;
 
-  ldout(cct, 20) << "OTP check, otp_id=" << otp_id << " result=" << (int)result.result << dendl;
+  ldpp_dout(dpp, 20) << "OTP check, otp_id=" << otp_id << " result=" << (int)result.result << dendl;
 
   return (result.result == rados::cls::otp::OTP_CHECK_SUCCESS ? 0 : -EACCES);
 }
@@ -97,11 +97,11 @@ void RGWSI_Cls::MFA::prepare_mfa_write(librados::ObjectWriteOperation *op,
   op->mtime2(&mtime_ts);
 }
 
-int RGWSI_Cls::MFA::create_mfa(const rgw_user& user, const rados::cls::otp::otp_info_t& config,
+int RGWSI_Cls::MFA::create_mfa(const DoutPrefixProvider *dpp, const rgw_user& user, const rados::cls::otp::otp_info_t& config,
                          RGWObjVersionTracker *objv_tracker, const ceph::real_time& mtime, optional_yield y)
 {
   std::optional<RGWSI_RADOS::Obj> obj;
-  int r = get_mfa_obj(user, &obj);
+  int r = get_mfa_obj(dpp, user, &obj);
   if (r < 0) {
     return r;
   }
@@ -109,22 +109,23 @@ int RGWSI_Cls::MFA::create_mfa(const rgw_user& user, const rados::cls::otp::otp_
   librados::ObjectWriteOperation op;
   prepare_mfa_write(&op, objv_tracker, mtime);
   rados::cls::otp::OTP::create(&op, config);
-  r = obj->operate(&op, y);
+  r = obj->operate(dpp, &op, y);
   if (r < 0) {
-    ldout(cct, 20) << "OTP create, otp_id=" << config.id << " result=" << (int)r << dendl;
+    ldpp_dout(dpp, 20) << "OTP create, otp_id=" << config.id << " result=" << (int)r << dendl;
     return r;
   }
 
   return 0;
 }
 
-int RGWSI_Cls::MFA::remove_mfa(const rgw_user& user, const string& id,
+int RGWSI_Cls::MFA::remove_mfa(const DoutPrefixProvider *dpp, 
+                         const rgw_user& user, const string& id,
                          RGWObjVersionTracker *objv_tracker,
                          const ceph::real_time& mtime,
                          optional_yield y)
 {
   std::optional<RGWSI_RADOS::Obj> obj;
-  int r = get_mfa_obj(user, &obj);
+  int r = get_mfa_obj(dpp, user, &obj);
   if (r < 0) {
     return r;
   }
@@ -132,21 +133,21 @@ int RGWSI_Cls::MFA::remove_mfa(const rgw_user& user, const string& id,
   librados::ObjectWriteOperation op;
   prepare_mfa_write(&op, objv_tracker, mtime);
   rados::cls::otp::OTP::remove(&op, id);
-  r = obj->operate(&op, y);
+  r = obj->operate(dpp, &op, y);
   if (r < 0) {
-    ldout(cct, 20) << "OTP remove, otp_id=" << id << " result=" << (int)r << dendl;
+    ldpp_dout(dpp, 20) << "OTP remove, otp_id=" << id << " result=" << (int)r << dendl;
     return r;
   }
 
   return 0;
 }
 
-int RGWSI_Cls::MFA::get_mfa(const rgw_user& user, const string& id, rados::cls::otp::otp_info_t *result,
+int RGWSI_Cls::MFA::get_mfa(const DoutPrefixProvider *dpp, const rgw_user& user, const string& id, rados::cls::otp::otp_info_t *result,
                            optional_yield y)
 {
   rgw_rados_ref ref;
 
-  int r = get_mfa_ref(user, &ref);
+  int r = get_mfa_ref(dpp, user, &ref);
   if (r < 0) {
     return r;
   }
@@ -159,12 +160,12 @@ int RGWSI_Cls::MFA::get_mfa(const rgw_user& user, const string& id, rados::cls::
   return 0;
 }
 
-int RGWSI_Cls::MFA::list_mfa(const rgw_user& user, list<rados::cls::otp::otp_info_t> *result,
+int RGWSI_Cls::MFA::list_mfa(const DoutPrefixProvider *dpp, const rgw_user& user, list<rados::cls::otp::otp_info_t> *result,
                             optional_yield y)
 {
   rgw_rados_ref ref;
 
-  int r = get_mfa_ref(user, &ref);
+  int r = get_mfa_ref(dpp, user, &ref);
   if (r < 0) {
     return r;
   }
@@ -177,12 +178,12 @@ int RGWSI_Cls::MFA::list_mfa(const rgw_user& user, list<rados::cls::otp::otp_inf
   return 0;
 }
 
-int RGWSI_Cls::MFA::otp_get_current_time(const rgw_user& user, ceph::real_time *result,
+int RGWSI_Cls::MFA::otp_get_current_time(const DoutPrefixProvider *dpp, const rgw_user& user, ceph::real_time *result,
                                         optional_yield y)
 {
   rgw_rados_ref ref;
 
-  int r = get_mfa_ref(user, &ref);
+  int r = get_mfa_ref(dpp, user, &ref);
   if (r < 0) {
     return r;
   }
@@ -195,16 +196,16 @@ int RGWSI_Cls::MFA::otp_get_current_time(const rgw_user& user, ceph::real_time *
   return 0;
 }
 
-int RGWSI_Cls::MFA::set_mfa(const string& oid, const list<rados::cls::otp::otp_info_t>& entries,
+int RGWSI_Cls::MFA::set_mfa(const DoutPrefixProvider *dpp, const string& oid, const list<rados::cls::otp::otp_info_t>& entries,
                            bool reset_obj, RGWObjVersionTracker *objv_tracker,
                            const real_time& mtime,
                            optional_yield y)
 {
   rgw_raw_obj o(zone_svc->get_zone_params().otp_pool, oid);
   auto obj = rados_svc->obj(o);
-  int r = obj.open();
+  int r = obj.open(dpp);
   if (r < 0) {
-    ldout(cct, 4) << "failed to open rados context for " << o << dendl;
+    ldpp_dout(dpp, 4) << "failed to open rados context for " << o << dendl;
     return r;
   }
   librados::ObjectWriteOperation op;
@@ -215,24 +216,24 @@ int RGWSI_Cls::MFA::set_mfa(const string& oid, const list<rados::cls::otp::otp_i
   }
   prepare_mfa_write(&op, objv_tracker, mtime);
   rados::cls::otp::OTP::set(&op, entries);
-  r = obj.operate(&op, y);
+  r = obj.operate(dpp, &op, y);
   if (r < 0) {
-    ldout(cct, 20) << "OTP set entries.size()=" << entries.size() << " result=" << (int)r << dendl;
+    ldpp_dout(dpp, 20) << "OTP set entries.size()=" << entries.size() << " result=" << (int)r << dendl;
     return r;
   }
 
   return 0;
 }
 
-int RGWSI_Cls::MFA::list_mfa(const string& oid, list<rados::cls::otp::otp_info_t> *result,
+int RGWSI_Cls::MFA::list_mfa(const DoutPrefixProvider *dpp, const string& oid, list<rados::cls::otp::otp_info_t> *result,
                             RGWObjVersionTracker *objv_tracker, ceph::real_time *pmtime,
                             optional_yield y)
 {
   rgw_raw_obj o(zone_svc->get_zone_params().otp_pool, oid);
   auto obj = rados_svc->obj(o);
-  int r = obj.open();
+  int r = obj.open(dpp);
   if (r < 0) {
-    ldout(cct, 4) << "failed to open rados context for " << o << dendl;
+    ldpp_dout(dpp, 4) << "failed to open rados context for " << o << dendl;
     return r;
   }
   auto& ref = obj.get_ref();
@@ -262,14 +263,15 @@ void RGWSI_Cls::TimeLog::prepare_entry(cls_log_entry& entry,
   cls_log_add_prepare_entry(entry, utime_t(ut), section, key, bl);
 }
 
-int RGWSI_Cls::TimeLog::init_obj(const string& oid, RGWSI_RADOS::Obj& obj)
+int RGWSI_Cls::TimeLog::init_obj(const DoutPrefixProvider *dpp, const string& oid, RGWSI_RADOS::Obj& obj)
 {
   rgw_raw_obj o(zone_svc->get_zone_params().log_pool, oid);
   obj = rados_svc->obj(o);
-  return obj.open();
+  return obj.open(dpp);
 
 }
-int RGWSI_Cls::TimeLog::add(const string& oid,
+int RGWSI_Cls::TimeLog::add(const DoutPrefixProvider *dpp, 
+                            const string& oid,
                             const real_time& ut,
                             const string& section,
                             const string& key,
@@ -278,7 +280,7 @@ int RGWSI_Cls::TimeLog::add(const string& oid,
 {
   RGWSI_RADOS::Obj obj;
 
-  int r = init_obj(oid, obj);
+  int r = init_obj(dpp, oid, obj);
   if (r < 0) {
     return r;
   }
@@ -287,10 +289,11 @@ int RGWSI_Cls::TimeLog::add(const string& oid,
   utime_t t(ut);
   cls_log_add(op, t, section, key, bl);
 
-  return obj.operate(&op, y);
+  return obj.operate(dpp, &op, y);
 }
 
-int RGWSI_Cls::TimeLog::add(const string& oid,
+int RGWSI_Cls::TimeLog::add(const DoutPrefixProvider *dpp, 
+                            const string& oid,
                             std::list<cls_log_entry>& entries,
                             librados::AioCompletion *completion,
                             bool monotonic_inc,
@@ -298,7 +301,7 @@ int RGWSI_Cls::TimeLog::add(const string& oid,
 {
   RGWSI_RADOS::Obj obj;
 
-  int r = init_obj(oid, obj);
+  int r = init_obj(dpp, oid, obj);
   if (r < 0) {
     return r;
   }
@@ -307,14 +310,15 @@ int RGWSI_Cls::TimeLog::add(const string& oid,
   cls_log_add(op, entries, monotonic_inc);
 
   if (!completion) {
-    r = obj.operate(&op, y);
+    r = obj.operate(dpp, &op, y);
   } else {
     r = obj.aio_operate(completion, &op);
   }
   return r;
 }
 
-int RGWSI_Cls::TimeLog::list(const string& oid,
+int RGWSI_Cls::TimeLog::list(const DoutPrefixProvider *dpp, 
+                             const string& oid,
                              const real_time& start_time,
                              const real_time& end_time,
                              int max_entries, std::list<cls_log_entry>& entries,
@@ -325,7 +329,7 @@ int RGWSI_Cls::TimeLog::list(const string& oid,
 {
   RGWSI_RADOS::Obj obj;
 
-  int r = init_obj(oid, obj);
+  int r = init_obj(dpp, oid, obj);
   if (r < 0) {
     return r;
   }
@@ -340,20 +344,21 @@ int RGWSI_Cls::TimeLog::list(const string& oid,
 
   bufferlist obl;
 
-  int ret = obj.operate(&op, &obl, y);
+  int ret = obj.operate(dpp, &op, &obl, y);
   if (ret < 0)
     return ret;
 
   return 0;
 }
 
-int RGWSI_Cls::TimeLog::info(const string& oid,
+int RGWSI_Cls::TimeLog::info(const DoutPrefixProvider *dpp, 
+                             const string& oid,
                              cls_log_header *header,
                              optional_yield y)
 {
   RGWSI_RADOS::Obj obj;
 
-  int r = init_obj(oid, obj);
+  int r = init_obj(dpp, oid, obj);
   if (r < 0) {
     return r;
   }
@@ -364,19 +369,20 @@ int RGWSI_Cls::TimeLog::info(const string& oid,
 
   bufferlist obl;
 
-  int ret = obj.operate(&op, &obl, y);
+  int ret = obj.operate(dpp, &op, &obl, y);
   if (ret < 0)
     return ret;
 
   return 0;
 }
 
-int RGWSI_Cls::TimeLog::info_async(RGWSI_RADOS::Obj& obj,
+int RGWSI_Cls::TimeLog::info_async(const DoutPrefixProvider *dpp,
+                                   RGWSI_RADOS::Obj& obj,
                                    const string& oid,
                                    cls_log_header *header,
                                    librados::AioCompletion *completion)
 {
-  int r = init_obj(oid, obj);
+  int r = init_obj(dpp, oid, obj);
   if (r < 0) {
     return r;
   }
@@ -392,7 +398,8 @@ int RGWSI_Cls::TimeLog::info_async(RGWSI_RADOS::Obj& obj,
   return 0;
 }
 
-int RGWSI_Cls::TimeLog::trim(const string& oid,
+int RGWSI_Cls::TimeLog::trim(const DoutPrefixProvider *dpp, 
+                             const string& oid,
                              const real_time& start_time,
                              const real_time& end_time,
                              const string& from_marker,
@@ -402,7 +409,7 @@ int RGWSI_Cls::TimeLog::trim(const string& oid,
 {
   RGWSI_RADOS::Obj obj;
 
-  int r = init_obj(oid, obj);
+  int r = init_obj(dpp, oid, obj);
   if (r < 0) {
     return r;
   }
@@ -414,14 +421,15 @@ int RGWSI_Cls::TimeLog::trim(const string& oid,
   cls_log_trim(op, st, et, from_marker, to_marker);
 
   if (!completion) {
-    r = obj.operate(&op, y);
+    r = obj.operate(dpp, &op, y);
   } else {
     r = obj.aio_operate(completion, &op);
   }
   return r;
 }
 
-int RGWSI_Cls::Lock::lock_exclusive(const rgw_pool& pool,
+int RGWSI_Cls::Lock::lock_exclusive(const DoutPrefixProvider *dpp,
+                                    const rgw_pool& pool,
                                     const string& oid,
                                     timespan& duration,
                                     string& zone_id,
@@ -429,7 +437,7 @@ int RGWSI_Cls::Lock::lock_exclusive(const rgw_pool& pool,
                                     std::optional<string> lock_name)
 {
   auto p = rados_svc->pool(pool);
-  int r = p.open();
+  int r = p.open(dpp);
   if (r < 0) {
     return r;
   }
@@ -446,14 +454,15 @@ int RGWSI_Cls::Lock::lock_exclusive(const rgw_pool& pool,
   return l.lock_exclusive(&p.ioctx(), oid);
 }
 
-int RGWSI_Cls::Lock::unlock(const rgw_pool& pool,
+int RGWSI_Cls::Lock::unlock(const DoutPrefixProvider *dpp,
+                            const rgw_pool& pool,
                             const string& oid,
                             string& zone_id,
                             string& owner_id,
                             std::optional<string> lock_name)
 {
   auto p = rados_svc->pool(pool);
-  int r = p.open();
+  int r = p.open(dpp);
   if (r < 0) {
     return r;
   }