diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2021-06-13 12:10:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-13 12:10:40 +0200 |
commit | 39ed7a2516c2512fbf3df805196cbb5d5f3a9519 (patch) | |
tree | 7a97a21be6b49d89292bde82eb9ef1397bb7f10e /configd/src/apps/sentinel/rpchooks.cpp | |
parent | c714172b49feaa6d0dcce819935e7bd7d26aa5a2 (diff) | |
parent | e3a93a6bfd8b90ced59f458675685ca7a45c9ded (diff) |
Merge pull request #18197 from vespa-engine/arnej/add-report-connectivity-rpc
add rpc method for connectivity report
Diffstat (limited to 'configd/src/apps/sentinel/rpchooks.cpp')
-rw-r--r-- | configd/src/apps/sentinel/rpchooks.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/configd/src/apps/sentinel/rpchooks.cpp b/configd/src/apps/sentinel/rpchooks.cpp index 24e3cd53509..0d49063db84 100644 --- a/configd/src/apps/sentinel/rpchooks.cpp +++ b/configd/src/apps/sentinel/rpchooks.cpp @@ -1,9 +1,10 @@ // Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "rpchooks.h" -#include "cmdq.h" #include "check-completion-handler.h" +#include "cmdq.h" #include "peer-check.h" +#include "report-connectivity.h" #include <vespa/fnet/frt/supervisor.h> #include <vespa/fnet/frt/rpcrequest.h> @@ -12,9 +13,10 @@ LOG_SETUP(".rpchooks"); namespace config::sentinel { -RPCHooks::RPCHooks(CommandQueue &commands, FRT_Supervisor &supervisor) +RPCHooks::RPCHooks(CommandQueue &commands, FRT_Supervisor &supervisor, ModelOwner &modelOwner) : _commands(commands), - _orb(supervisor) + _orb(supervisor), + _modelOwner(modelOwner) { initRPC(&_orb); } @@ -53,6 +55,13 @@ RPCHooks::initRPC(FRT_Supervisor *supervisor) rb.ParamDesc("timeout", "Timeout for check in milliseconds"); rb.ReturnDesc("status", "Status (ok, bad, or unknown) for peer"); //------------------------------------------------------------------------- + rb.DefineMethod("sentinel.report.connectivity", "i", "SS", + FRT_METHOD(RPCHooks::rpc_reportConnectivity), this); + rb.MethodDesc("report connectivity for peer sentinels"); + rb.ParamDesc("timeout", "Timeout for check in milliseconds"); + rb.ReturnDesc("hostnames", "Names of peers checked"); + rb.ReturnDesc("peerstatus", "Status description for each peer"); + //------------------------------------------------------------------------- } void @@ -106,4 +115,14 @@ RPCHooks::rpc_checkConnectivity(FRT_RPCRequest *req) req->getStash().create<PeerCheck>(completionHandler, hostname, portnum, _orb, timeout); } +void +RPCHooks::rpc_reportConnectivity(FRT_RPCRequest *req) +{ + LOG(debug, "got reportConnectivity"); + FRT_Values &args = *req->GetParams(); + int timeout = args[0]._intval32; + req->Detach(); + req->getStash().create<ReportConnectivity>(req, timeout, _orb, _modelOwner); +} + } // namespace slobrok |