| 2013 | |
| 2014 | |
| 2015 | Future<Response> Master::Http::slaves( |
| 2016 | const Request& request, |
| 2017 | const Option<Principal>& principal) const |
| 2018 | { |
| 2019 | // When current master is not the leader, redirect to the leading master. |
| 2020 | if (!master->elected()) { |
| 2021 | return redirect(request); |
| 2022 | } |
| 2023 | |
| 2024 | return ObjectApprovers::create(master->authorizer, principal, {VIEW_ROLE}) |
| 2025 | .then(defer( |
| 2026 | master->self(), |
| 2027 | [this, request, principal](const Owned<ObjectApprovers>& approvers) { |
| 2028 | return deferBatchedRequest( |
| 2029 | &Master::ReadOnlyHandler::slaves, |
| 2030 | principal, |
| 2031 | ContentType::JSON, |
| 2032 | request.url.query, |
| 2033 | approvers); |
| 2034 | })); |
| 2035 | } |
| 2036 | |
| 2037 | |
| 2038 | Future<Response> Master::Http::getAgents( |