StatusWith<OpTimePair<vector<BSONObj>>> CatalogManagerReplicaSet::_exhaustiveFindOnConfig(
    const HostAndPort& host,
    const NamespaceString& nss,
    const BSONObj& query,
    const BSONObj& sort,
    boost::optional<long long> limit) {
    repl::ReadConcernArgs readConcern(grid.shardRegistry()->getConfigOpTime(),
                                      repl::ReadConcernLevel::kMajorityReadConcern);

    auto result = grid.shardRegistry()->exhaustiveFindOnConfigNode(
        host, nss, query, sort, limit, readConcern);

    if (!result.isOK()) {
        return result.getStatus();
    }

    auto response = std::move(result.getValue());

    return OpTimePair<vector<BSONObj>>(std::move(response.docs), response.opTime);
}
void CatalogManagerReplicaSet::_appendReadConcern(BSONObjBuilder* builder) {
    repl::ReadConcernArgs readConcern(grid.shardRegistry()->getConfigOpTime(),
                                      repl::ReadConcernLevel::kMajorityReadConcern);
    readConcern.appendInfo(builder);
}