summaryrefslogtreecommitdiff
path: root/src/mongo/s/commands/cluster_list_databases_cmd.cpp
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2017-06-01 14:18:45 -0400
committerMathias Stearn <mathias@10gen.com>2017-06-13 17:15:28 -0400
commit24c66e9e8f9a2415436adf1a09317eaae8ee56e5 (patch)
tree2ff9fcd9450190882d20c9cefac9faccbbe8c783 /src/mongo/s/commands/cluster_list_databases_cmd.cpp
parent7317ccaf069b5c2ac6d725aaf5fd3eb82bbdd45d (diff)
downloadmongo-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.cpp11
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;