From 07ad8df2dd74f2fb4bbde6332a04cc5453bff435 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 23 Oct 2021 17:32:11 -0500 Subject: [PATCH] common/admin_socket: pass inbl to sync call() method Only the async_call got this before. Signed-off-by: Sage Weil Signed-off-by: Radoslaw Zarzynski --- src/client/Client.cc | 1 + src/client/Client.h | 1 + src/common/admin_socket.cc | 3 +++ src/common/admin_socket.h | 3 ++- src/common/ceph_context.cc | 2 ++ src/librbd/LibrbdAdminSocketHook.cc | 1 + src/librbd/LibrbdAdminSocketHook.h | 1 + src/mds/MDSDaemon.cc | 1 + src/mgr/ClusterState.cc | 2 ++ src/mgr/Mgr.cc | 1 + src/mgr/Mgr.h | 1 + src/mon/Monitor.cc | 1 + src/os/bluestore/Allocator.cc | 1 + src/os/bluestore/BlueFS.cc | 1 + src/osd/OSD.cc | 2 ++ src/osdc/Objecter.cc | 2 ++ src/rgw/rgw_coroutine.cc | 1 + src/rgw/rgw_coroutine.h | 1 + src/rgw/rgw_sync_trace.cc | 1 + src/rgw/rgw_sync_trace.h | 1 + src/rgw/services/svc_sys_obj_cache.cc | 2 ++ src/test/admin_socket.cc | 3 +++ src/tools/cephfs_mirror/FSMirror.cc | 1 + src/tools/cephfs_mirror/PeerReplayer.cc | 1 + src/tools/rbd_mirror/ImageDeleter.cc | 1 + src/tools/rbd_mirror/ImageReplayer.cc | 1 + src/tools/rbd_mirror/Mirror.cc | 1 + src/tools/rbd_mirror/PoolReplayer.cc | 1 + src/tools/rbd_wnbd/wnbd_handler.cc | 19 +++++++++++-------- src/tools/rbd_wnbd/wnbd_handler.h | 3 ++- 30 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 313ec59c29e84..82e66c4f13fd2 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -211,6 +211,7 @@ Client::CommandHook::CommandHook(Client *client) : int Client::CommandHook::call( std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) diff --git a/src/client/Client.h b/src/client/Client.h index db493136a1f06..d452c46bb9704 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -269,6 +269,7 @@ public: public: explicit CommandHook(Client *client); int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override; diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index 1f3b38649cca3..8a7e0c7219710 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -623,6 +623,7 @@ void AdminSocket::unregister_commands(const AdminSocketHook *hook) class VersionHook : public AdminSocketHook { public: int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { @@ -649,6 +650,7 @@ class HelpHook : public AdminSocketHook { public: explicit HelpHook(AdminSocket *as) : m_as(as) {} int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { @@ -667,6 +669,7 @@ class GetdescsHook : public AdminSocketHook { public: explicit GetdescsHook(AdminSocket *as) : m_as(as) {} int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/common/admin_socket.h b/src/common/admin_socket.h index c5d2b48e563bf..3f364a5b711c7 100644 --- a/src/common/admin_socket.h +++ b/src/common/admin_socket.h @@ -60,6 +60,7 @@ public: virtual int call( std::string_view command, const cmdmap_t& cmdmap, + const ceph::buffer::list& inbl, ceph::Formatter *f, std::ostream& errss, ceph::buffer::list& out) = 0; @@ -96,7 +97,7 @@ public: // by default, call the synchronous handler and then finish ceph::buffer::list out; std::ostringstream errss; - int r = call(command, cmdmap, f, errss, out); + int r = call(command, cmdmap, inbl, f, errss, out); on_finish(r, errss.str(), out); } virtual ~AdminSocketHook() {} diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index 029f9b9496e3b..fe71ea4ccc49e 100644 --- a/src/common/ceph_context.cc +++ b/src/common/ceph_context.cc @@ -182,6 +182,7 @@ public: // AdminSocketHook int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist& inbl, ceph::Formatter *f, std::ostream& errss, bufferlist& out) override { @@ -442,6 +443,7 @@ public: explicit CephContextHook(CephContext *cct) : m_cct(cct) {} int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist& inbl, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/librbd/LibrbdAdminSocketHook.cc b/src/librbd/LibrbdAdminSocketHook.cc index f91bda3f0d2fb..159c9eda570bb 100644 --- a/src/librbd/LibrbdAdminSocketHook.cc +++ b/src/librbd/LibrbdAdminSocketHook.cc @@ -80,6 +80,7 @@ LibrbdAdminSocketHook::~LibrbdAdminSocketHook() { int LibrbdAdminSocketHook::call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) { diff --git a/src/librbd/LibrbdAdminSocketHook.h b/src/librbd/LibrbdAdminSocketHook.h index d07a9280e5833..98ff06abb3000 100644 --- a/src/librbd/LibrbdAdminSocketHook.h +++ b/src/librbd/LibrbdAdminSocketHook.h @@ -18,6 +18,7 @@ namespace librbd { ~LibrbdAdminSocketHook() override; int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override; diff --git a/src/mds/MDSDaemon.cc b/src/mds/MDSDaemon.cc index a0a1843e5a124..824be24198440 100644 --- a/src/mds/MDSDaemon.cc +++ b/src/mds/MDSDaemon.cc @@ -116,6 +116,7 @@ public: int call( std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, ceph::buffer::list& out) override { diff --git a/src/mgr/ClusterState.cc b/src/mgr/ClusterState.cc index 2d7efe4dfd866..7f811a5e41597 100644 --- a/src/mgr/ClusterState.cc +++ b/src/mgr/ClusterState.cc @@ -198,6 +198,7 @@ class ClusterSocketHook : public AdminSocketHook { public: explicit ClusterSocketHook(ClusterState *o) : cluster_state(o) {} int call(std::string_view admin_command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { @@ -239,6 +240,7 @@ bool ClusterState::asok_command( ostream& ss) { std::lock_guard l(lock); + if (admin_command == "dump_osd_network") { int64_t value = 0; // Default to health warning level if nothing specified diff --git a/src/mgr/Mgr.cc b/src/mgr/Mgr.cc index 32c92466bbce5..7dc158fe152e0 100644 --- a/src/mgr/Mgr.cc +++ b/src/mgr/Mgr.cc @@ -806,6 +806,7 @@ std::map Mgr::get_services() const int Mgr::call( std::string_view admin_command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) diff --git a/src/mgr/Mgr.h b/src/mgr/Mgr.h index 28a7da93de083..22ebdb680410e 100644 --- a/src/mgr/Mgr.h +++ b/src/mgr/Mgr.h @@ -103,6 +103,7 @@ public: int call( std::string_view command, const cmdmap_t& cmdmap, + const bufferlist& inbl, Formatter *f, std::ostream& errss, ceph::buffer::list& out) override; diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 65a853fb5c414..0846fa0a8f00b 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -291,6 +291,7 @@ class AdminHook : public AdminSocketHook { public: explicit AdminHook(Monitor *m) : mon(m) {} int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/os/bluestore/Allocator.cc b/src/os/bluestore/Allocator.cc index 4f835d66869f4..3acdeacdfe76a 100644 --- a/src/os/bluestore/Allocator.cc +++ b/src/os/bluestore/Allocator.cc @@ -65,6 +65,7 @@ public: int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) override { diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 284906372c59b..e72f24bbc7048 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -107,6 +107,7 @@ private: SocketHook(BlueFS* bluefs) : bluefs(bluefs) {} int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 4e457cacc667c..8b9aa4feb12b1 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2420,6 +2420,7 @@ class OSDSocketHook : public AdminSocketHook { public: explicit OSDSocketHook(OSD *o) : osd(o) {} int call(std::string_view prefix, const cmdmap_t& cmdmap, + const bufferlist& inbl, Formatter *f, std::ostream& ss, bufferlist& out) override { @@ -3319,6 +3320,7 @@ class TestOpsSocketHook : public AdminSocketHook { public: TestOpsSocketHook(OSDService *s, ObjectStore *st) : service(s), store(st) {} int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 4fe1b3a41c3aa..eff79c5e9061c 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -195,6 +195,7 @@ class Objecter::RequestStateHook : public AdminSocketHook { public: explicit RequestStateHook(Objecter *objecter); int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, cb::list& out) override; @@ -4713,6 +4714,7 @@ Objecter::RequestStateHook::RequestStateHook(Objecter *objecter) : int Objecter::RequestStateHook::call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, cb::list& out) diff --git a/src/rgw/rgw_coroutine.cc b/src/rgw/rgw_coroutine.cc index 797df9d8d6701..0be0daac20ada 100644 --- a/src/rgw/rgw_coroutine.cc +++ b/src/rgw/rgw_coroutine.cc @@ -880,6 +880,7 @@ int RGWCoroutinesManagerRegistry::hook_to_admin_command(const string& command) int RGWCoroutinesManagerRegistry::call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) { diff --git a/src/rgw/rgw_coroutine.h b/src/rgw/rgw_coroutine.h index 917543406e2d0..611a4438c1ee8 100644 --- a/src/rgw/rgw_coroutine.h +++ b/src/rgw/rgw_coroutine.h @@ -606,6 +606,7 @@ public: int hook_to_admin_command(const std::string& command); int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) override; diff --git a/src/rgw/rgw_sync_trace.cc b/src/rgw/rgw_sync_trace.cc index b4a15ecc9410c..b346835938d6f 100644 --- a/src/rgw/rgw_sync_trace.cc +++ b/src/rgw/rgw_sync_trace.cc @@ -199,6 +199,7 @@ string RGWSyncTraceManager::get_active_names() } int RGWSyncTraceManager::call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) { diff --git a/src/rgw/rgw_sync_trace.h b/src/rgw/rgw_sync_trace.h index e66dde7cf41aa..9617dac70dbc9 100644 --- a/src/rgw/rgw_sync_trace.h +++ b/src/rgw/rgw_sync_trace.h @@ -134,6 +134,7 @@ public: int hook_to_admin_command(); int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) override; diff --git a/src/rgw/services/svc_sys_obj_cache.cc b/src/rgw/services/svc_sys_obj_cache.cc index e329c37e36d0d..ec39ed9669c06 100644 --- a/src/rgw/services/svc_sys_obj_cache.cc +++ b/src/rgw/services/svc_sys_obj_cache.cc @@ -521,6 +521,7 @@ public: void shutdown(); int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) override; @@ -548,6 +549,7 @@ void RGWSI_SysObj_Cache_ASocketHook::shutdown() int RGWSI_SysObj_Cache_ASocketHook::call( std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) diff --git a/src/test/admin_socket.cc b/src/test/admin_socket.cc index 69bbcedb3cd4a..369e7abbf9b6e 100644 --- a/src/test/admin_socket.cc +++ b/src/test/admin_socket.cc @@ -118,6 +118,7 @@ TEST(AdminSocket, SendTooLongRequest) { class MyTest : public AdminSocketHook { int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& result) override { @@ -153,6 +154,7 @@ TEST(AdminSocket, RegisterCommand) { class MyTest2 : public AdminSocketHook { int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& result) override { @@ -210,6 +212,7 @@ public: BlockingHook() = default; int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& result) override { diff --git a/src/tools/cephfs_mirror/FSMirror.cc b/src/tools/cephfs_mirror/FSMirror.cc index a0bf75d1e2977..7ea798e6bec2b 100644 --- a/src/tools/cephfs_mirror/FSMirror.cc +++ b/src/tools/cephfs_mirror/FSMirror.cc @@ -81,6 +81,7 @@ public: } int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream &errss, bufferlist &out) override { auto p = commands.at(std::string(command)); return p->call(f); diff --git a/src/tools/cephfs_mirror/PeerReplayer.cc b/src/tools/cephfs_mirror/PeerReplayer.cc index 064f2bd4d4f93..66a141f8578d9 100644 --- a/src/tools/cephfs_mirror/PeerReplayer.cc +++ b/src/tools/cephfs_mirror/PeerReplayer.cc @@ -129,6 +129,7 @@ public: } int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream &errss, bufferlist &out) override { auto p = commands.at(std::string(command)); return p->call(f); diff --git a/src/tools/rbd_mirror/ImageDeleter.cc b/src/tools/rbd_mirror/ImageDeleter.cc index fcdd1baad44c3..ba137e6fd71a0 100644 --- a/src/tools/rbd_mirror/ImageDeleter.cc +++ b/src/tools/rbd_mirror/ImageDeleter.cc @@ -105,6 +105,7 @@ public: } int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index ee22b8d3475d5..0f909b206ddbd 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -166,6 +166,7 @@ public: } int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/tools/rbd_mirror/Mirror.cc b/src/tools/rbd_mirror/Mirror.cc index a67afcf42dee6..e87009281829c 100644 --- a/src/tools/rbd_mirror/Mirror.cc +++ b/src/tools/rbd_mirror/Mirror.cc @@ -338,6 +338,7 @@ public: } int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& errss, bufferlist& out) override { diff --git a/src/tools/rbd_mirror/PoolReplayer.cc b/src/tools/rbd_mirror/PoolReplayer.cc index de0d60241e3fb..8a04219da0686 100644 --- a/src/tools/rbd_mirror/PoolReplayer.cc +++ b/src/tools/rbd_mirror/PoolReplayer.cc @@ -188,6 +188,7 @@ public: } int call(std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, Formatter *f, std::ostream& ss, bufferlist& out) override { diff --git a/src/tools/rbd_wnbd/wnbd_handler.cc b/src/tools/rbd_wnbd/wnbd_handler.cc index ecfa47240f2db..0d13b6297aa35 100644 --- a/src/tools/rbd_wnbd/wnbd_handler.cc +++ b/src/tools/rbd_wnbd/wnbd_handler.cc @@ -62,15 +62,18 @@ int WnbdHandler::wait() return err; } -int WnbdAdminHook::call (std::string_view command, const cmdmap_t& cmdmap, - Formatter *f, - std::ostream& errss, - bufferlist& out) { - if (command == "wnbd stats") { - return m_handler->dump_stats(f); - } - return -ENOSYS; +int WnbdAdminHook::call ( + std::string_view command, const cmdmap_t& cmdmap, + const bufferlist&, + Formatter *f, + std::ostream& errss, + bufferlist& out) +{ + if (command == "wnbd stats") { + return m_handler->dump_stats(f); } + return -ENOSYS; +} int WnbdHandler::dump_stats(Formatter *f) { diff --git a/src/tools/rbd_wnbd/wnbd_handler.h b/src/tools/rbd_wnbd/wnbd_handler.h index 9a8217745ff5c..78eaa7cdf4a07 100644 --- a/src/tools/rbd_wnbd/wnbd_handler.h +++ b/src/tools/rbd_wnbd/wnbd_handler.h @@ -56,7 +56,8 @@ public: } int call(std::string_view command, const cmdmap_t& cmdmap, - Formatter *f, std::ostream& errss, bufferlist& out) override; + const bufferlist&, + Formatter *f, std::ostream& errss, bufferlist& out) override; }; -- 2.39.5