From 1745c31cf694aa272c0ad4e0855743f5b6fbcd73 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Fri, 24 Jul 2020 23:13:37 +0800 Subject: [PATCH] crimson/osd: print out client caps Signed-off-by: Kefu Chai --- src/crimson/osd/CMakeLists.txt | 1 + src/crimson/osd/osd.cc | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/crimson/osd/CMakeLists.txt b/src/crimson/osd/CMakeLists.txt index 0e85a23f37c..1ee6e4f38ff 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 4fbe00c70d9..6985d26157d 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() -- 2.47.3