diff options
author | Mathias Stearn <mathias@10gen.com> | 2017-06-01 14:18:45 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2017-06-13 17:15:28 -0400 |
commit | 24c66e9e8f9a2415436adf1a09317eaae8ee56e5 (patch) | |
tree | 2ff9fcd9450190882d20c9cefac9faccbbe8c783 /src/mongo/s/commands/cluster_list_databases_cmd.cpp | |
parent | 7317ccaf069b5c2ac6d725aaf5fd3eb82bbdd45d (diff) | |
download | mongo-24c66e9e8f9a2415436adf1a09317eaae8ee56e5.tar.gz |
SERVER-29525 filter mongos command requests only where needed
Diffstat (limited to 'src/mongo/s/commands/cluster_list_databases_cmd.cpp')
-rw-r--r-- | src/mongo/s/commands/cluster_list_databases_cmd.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mongo/s/commands/cluster_list_databases_cmd.cpp b/src/mongo/s/commands/cluster_list_databases_cmd.cpp index 68c9cd55581..bc81d7f5b8d 100644 --- a/src/mongo/s/commands/cluster_list_databases_cmd.cpp +++ b/src/mongo/s/commands/cluster_list_databases_cmd.cpp @@ -39,6 +39,7 @@ #include "mongo/s/catalog/sharding_catalog_client.h" #include "mongo/s/client/shard.h" #include "mongo/s/client/shard_registry.h" +#include "mongo/s/commands/strategy.h" #include "mongo/s/grid.h" namespace mongo { @@ -107,7 +108,7 @@ public: opCtx, ReadPreferenceSetting{ReadPreference::PrimaryPreferred}, "admin", - cmdObj, + filterCommandRequestForPassthrough(cmdObj), Shard::RetryPolicy::kIdempotent)); uassertStatusOK(response.commandStatus); BSONObj x = std::move(response.response); @@ -166,14 +167,14 @@ public: // Get information for config and admin dbs from the config servers. auto catalogClient = grid.catalogClient(opCtx); - auto appendStatus = - catalogClient->appendInfoForConfigServerDatabases(opCtx, cmdObj, &dbListBuilder); + auto appendStatus = catalogClient->appendInfoForConfigServerDatabases( + opCtx, filterCommandRequestForPassthrough(cmdObj), &dbListBuilder); + dbListBuilder.doneFast(); if (!appendStatus.isOK()) { + result.resetToEmpty(); return Command::appendCommandStatus(result, appendStatus); } - dbListBuilder.done(); - if (nameOnly) return true; |