summaryrefslogtreecommitdiff
path: root/src/mongo/s/commands
diff options
context:
space:
mode:
authorJordi Serra Torrens <jordi.serra-torrens@mongodb.com>2022-03-02 16:50:09 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-02 17:50:23 +0000
commit6000cc61ce2c83e0e8677aacb0ae9750a4e9b310 (patch)
tree9294c7b9efecd1559a9b09485bdf7243ed82a148 /src/mongo/s/commands
parent617c9326ebce121d64faee9c771bc9b68188aa7c (diff)
downloadmongo-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.cpp21
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: