aboutsummaryrefslogtreecommitdiffstats
path: root/configd
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-06-11 13:53:26 +0000
committerArne Juul <arnej@verizonmedia.com>2021-06-11 13:53:26 +0000
commitb54d4da7d22b2e27618bb2bb8865429e01ddab95 (patch)
tree01066fd388c5e29c5b5f31dbe2ccd632cd808999 /configd
parent714a924518bc5bef4f920899d3af96b56497eaf0 (diff)
take timeout as RPC parameter here also
Diffstat (limited to 'configd')
-rw-r--r--configd/src/apps/sentinel/report-connectivity.cpp5
-rw-r--r--configd/src/apps/sentinel/report-connectivity.h2
-rw-r--r--configd/src/apps/sentinel/rpchooks.cpp7
3 files changed, 8 insertions, 6 deletions
diff --git a/configd/src/apps/sentinel/report-connectivity.cpp b/configd/src/apps/sentinel/report-connectivity.cpp
index 4b5d38ed125..eceb2cf64aa 100644
--- a/configd/src/apps/sentinel/report-connectivity.cpp
+++ b/configd/src/apps/sentinel/report-connectivity.cpp
@@ -13,8 +13,7 @@ using namespace std::chrono_literals;
namespace config::sentinel {
-
-ReportConnectivity::ReportConnectivity(FRT_RPCRequest *req, FRT_Supervisor &orb, ModelOwner &modelOwner)
+ReportConnectivity::ReportConnectivity(FRT_RPCRequest *req, int timeout_ms, FRT_Supervisor &orb, ModelOwner &modelOwner)
: _parentRequest(req),
_orb(orb),
_checks()
@@ -25,7 +24,7 @@ ReportConnectivity::ReportConnectivity(FRT_RPCRequest *req, FRT_Supervisor &orb,
LOG(debug, "making connectivity report for %zd peers", map.size());
_remaining = map.size();
for (const auto & [ hostname, port ] : map) {
- _checks.emplace_back(std::make_unique<PeerCheck>(*this, hostname, port, _orb, 2500));
+ _checks.emplace_back(std::make_unique<PeerCheck>(*this, hostname, port, _orb, timeout_ms));
}
} else {
_parentRequest->SetError(FRTE_RPC_METHOD_FAILED, "failed getting model config");
diff --git a/configd/src/apps/sentinel/report-connectivity.h b/configd/src/apps/sentinel/report-connectivity.h
index b7b8100c6fa..057a374a387 100644
--- a/configd/src/apps/sentinel/report-connectivity.h
+++ b/configd/src/apps/sentinel/report-connectivity.h
@@ -20,7 +20,7 @@ namespace config::sentinel {
class ReportConnectivity : public StatusCallback
{
public:
- ReportConnectivity(FRT_RPCRequest *req, FRT_Supervisor &orb, ModelOwner &modelOwner);
+ ReportConnectivity(FRT_RPCRequest *req, int timeout_ms, FRT_Supervisor &orb, ModelOwner &modelOwner);
virtual ~ReportConnectivity();
void returnStatus(bool ok) override;
private:
diff --git a/configd/src/apps/sentinel/rpchooks.cpp b/configd/src/apps/sentinel/rpchooks.cpp
index 603fb461fe2..0d49063db84 100644
--- a/configd/src/apps/sentinel/rpchooks.cpp
+++ b/configd/src/apps/sentinel/rpchooks.cpp
@@ -55,9 +55,10 @@ 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", "", "SS",
+ 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");
//-------------------------------------------------------------------------
@@ -118,8 +119,10 @@ 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, _orb, _modelOwner);
+ req->getStash().create<ReportConnectivity>(req, timeout, _orb, _modelOwner);
}
} // namespace slobrok