From: Kefu Chai Date: Fri, 24 Jul 2020 15:13:37 +0000 (+0800) Subject: crimson/osd: print out client caps X-Git-Tag: v16.1.0~1619^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1745c31cf694aa272c0ad4e0855743f5b6fbcd73;p=ceph.git crimson/osd: print out client caps Signed-off-by: Kefu Chai --- diff --git a/src/crimson/osd/CMakeLists.txt b/src/crimson/osd/CMakeLists.txt index 0e85a23f37c4..1ee6e4f38ff1 100644 --- a/src/crimson/osd/CMakeLists.txt +++ b/src/crimson/osd/CMakeLists.txt @@ -31,6 +31,7 @@ add_executable(crimson-osd ${PROJECT_SOURCE_DIR}/src/objclass/class_api.cc ${PROJECT_SOURCE_DIR}/src/osd/ClassHandler.cc ${PROJECT_SOURCE_DIR}/src/osd/osd_op_util.cc + ${PROJECT_SOURCE_DIR}/src/osd/OSDCap.cc ${PROJECT_SOURCE_DIR}/src/osd/PeeringState.cc ${PROJECT_SOURCE_DIR}/src/osd/PGPeeringEvent.cc ${PROJECT_SOURCE_DIR}/src/osd/PGStateUtils.cc diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index 4fbe00c70d95..6985d26157db 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -32,6 +32,7 @@ #include "os/Transaction.h" #include "osd/ClassHandler.h" +#include "osd/OSDCap.h" #include "osd/PGPeeringEvent.h" #include "osd/PeeringState.h" @@ -662,9 +663,29 @@ void OSD::ms_handle_remote_reset(crimson::net::ConnectionRef conn) } void OSD::handle_authentication(const EntityName& name, - const AuthCapsInfo& caps) + const AuthCapsInfo& caps_info) { - // todo + // TODO: store the parsed cap and associate it with the connection + if (caps_info.allow_all) { + logger().debug("{} {} has all caps", __func__, name); + return; + } + if (caps_info.caps.length() > 0) { + auto p = caps_info.caps.cbegin(); + string str; + try { + decode(str, p); + } catch (ceph::buffer::error& e) { + logger().warn("{} {} failed to decode caps string", __func__, name); + return; + } + OSDCap caps; + if (caps.parse(str)) { + logger().debug("{} {} has caps {}", __func__, name, str); + } else { + logger().warn("{} {} failed to parse caps {}", __func__, name, str); + } + } } void OSD::update_stats()