diff options
author | Arne Juul <arnej@verizonmedia.com> | 2021-06-11 13:53:26 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2021-06-11 13:53:26 +0000 |
commit | b54d4da7d22b2e27618bb2bb8865429e01ddab95 (patch) | |
tree | 01066fd388c5e29c5b5f31dbe2ccd632cd808999 /configd/src | |
parent | 714a924518bc5bef4f920899d3af96b56497eaf0 (diff) |
take timeout as RPC parameter here also
Diffstat (limited to 'configd/src')
-rw-r--r-- | configd/src/apps/sentinel/report-connectivity.cpp | 5 | ||||
-rw-r--r-- | configd/src/apps/sentinel/report-connectivity.h | 2 | ||||
-rw-r--r-- | configd/src/apps/sentinel/rpchooks.cpp | 7 |
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 |