summaryrefslogtreecommitdiffstats
path: root/configd/src/apps/sentinel/rpchooks.cpp
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2021-06-13 12:10:40 +0200
committerGitHub <noreply@github.com>2021-06-13 12:10:40 +0200
commit39ed7a2516c2512fbf3df805196cbb5d5f3a9519 (patch)
tree7a97a21be6b49d89292bde82eb9ef1397bb7f10e /configd/src/apps/sentinel/rpchooks.cpp
parentc714172b49feaa6d0dcce819935e7bd7d26aa5a2 (diff)
parente3a93a6bfd8b90ced59f458675685ca7a45c9ded (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.cpp25
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