From dab8788f281f999c9f27ae9457998be96261d5b0 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 16 Feb 2020 16:39:26 +0800 Subject: [PATCH] crimson: register commands separately so we can do command registration in the same place, in future, we can move all of them into another place if necessary Signed-off-by: Kefu Chai --- src/crimson/admin/admin_socket.cc | 5 ++--- src/crimson/admin/admin_socket.h | 10 +++++----- src/crimson/osd/osd.cc | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/crimson/admin/admin_socket.cc b/src/crimson/admin/admin_socket.cc index 47f5201c43a..9652acdba18 100644 --- a/src/crimson/admin/admin_socket.cc +++ b/src/crimson/admin/admin_socket.cc @@ -234,8 +234,7 @@ seastar::future<> AdminSocket::start(const std::string& path) logger().debug("{}: asok socket path={}", __func__, path); auto sock_path = seastar::socket_address{ seastar::unix_domain_addr{ path } }; - std::ignore = register_admin_hooks().then([this, sock_path] { - return seastar::do_with( + std::ignore = return seastar::do_with( seastar::engine().listen(sock_path), [this](seastar::server_socket& lstn) { m_server_sock = &lstn; // used for 'abort_accept()' @@ -395,7 +394,7 @@ class GetdescsHook final : public AdminSocketHook { }; /// the hooks that are served directly by the admin_socket server -seastar::future<> AdminSocket::register_admin_hooks() +seastar::future<> AdminSocket::register_admin_commands() { return seastar::when_all_succeed( register_command(std::make_unique()), diff --git a/src/crimson/admin/admin_socket.h b/src/crimson/admin/admin_socket.h index 0965ca7261c..f8c74d0b8df 100644 --- a/src/crimson/admin/admin_socket.h +++ b/src/crimson/admin/admin_socket.h @@ -106,6 +106,11 @@ class AdminSocket : public seastar::enable_lw_shared_from_this { */ seastar::future<> register_command(std::unique_ptr&& hook); + /** + * Registering the APIs that are served directly by the admin_socket server. + */ + seastar::future<> register_admin_commands(); + private: /** * the result of analyzing an incoming command, and locating it in @@ -119,11 +124,6 @@ class AdminSocket : public seastar::enable_lw_shared_from_this { // and the shorthand: using maybe_parsed_t = std::optional; - /** - * Registering the APIs that are served directly by the admin_socket server. - */ - seastar::future<> register_admin_hooks(); - seastar::future<> handle_client(seastar::input_stream& inp, seastar::output_stream& out); diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index cbb310ad3b4..8657ce4353d 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -409,6 +409,7 @@ seastar::future<> OSD::start_asok_admin() using namespace crimson::admin; return asok->start(asok_path).then([this] { return seastar::when_all_succeed( + asok->register_admin_commands(), asok->register_command(make_asok_hook(*this)), asok->register_command(make_asok_hook(*this)), asok->register_command(make_asok_hook()), -- 2.39.5