diff options
author | Jordi Serra Torrens <jordi.serra-torrens@mongodb.com> | 2022-03-02 16:50:09 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-03-02 17:50:23 +0000 |
commit | 6000cc61ce2c83e0e8677aacb0ae9750a4e9b310 (patch) | |
tree | 9294c7b9efecd1559a9b09485bdf7243ed82a148 /src/mongo/s/commands | |
parent | 617c9326ebce121d64faee9c771bc9b68188aa7c (diff) | |
download | mongo-6000cc61ce2c83e0e8677aacb0ae9750a4e9b310.tar.gz |
SERVER-63525 Build setUserWriteBlockingMode mongos command
Diffstat (limited to 'src/mongo/s/commands')
-rw-r--r-- | src/mongo/s/commands/cluster_set_user_write_block_mode_command.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/mongo/s/commands/cluster_set_user_write_block_mode_command.cpp b/src/mongo/s/commands/cluster_set_user_write_block_mode_command.cpp index 14fda493616..cceb1449ddb 100644 --- a/src/mongo/s/commands/cluster_set_user_write_block_mode_command.cpp +++ b/src/mongo/s/commands/cluster_set_user_write_block_mode_command.cpp @@ -35,6 +35,8 @@ #include "mongo/db/commands.h" #include "mongo/db/commands/set_user_write_block_mode_gen.h" #include "mongo/logv2/log.h" +#include "mongo/s/grid.h" +#include "mongo/s/request_types/sharded_ddl_commands_gen.h" namespace mongo { namespace { @@ -58,8 +60,23 @@ public: using InvocationBase::InvocationBase; void typedRun(OperationContext* opCtx) { - auto req = request(); - LOGV2(6345101, "In SetUserWriteBlockModeCommand", "global"_attr = req.getGlobal()); + ConfigsvrSetUserWriteBlockMode configsvrSetUserWriteBlockModeCmd; + configsvrSetUserWriteBlockModeCmd.setDbName(NamespaceString::kAdminDb); + SetUserWriteBlockModeRequest setUserWriteBlockModeRequest( + request().getSetUserWriteBlockModeRequest()); + configsvrSetUserWriteBlockModeCmd.setSetUserWriteBlockModeRequest( + setUserWriteBlockModeRequest); + + auto configShard = Grid::get(opCtx)->shardRegistry()->getConfigShard(); + auto cmdResponse = uassertStatusOK(configShard->runCommandWithFixedRetryAttempts( + opCtx, + ReadPreferenceSetting{ReadPreference::PrimaryOnly}, + NamespaceString::kAdminDb.toString(), + CommandHelpers::appendMajorityWriteConcern( + configsvrSetUserWriteBlockModeCmd.toBSON({}), opCtx->getWriteConcern()), + Shard::RetryPolicy::kIdempotent)); + uassertStatusOK(cmdResponse.commandStatus); + uassertStatusOK(cmdResponse.writeConcernStatus); } private: |