summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/auth/sasl_commands.cpp4
-rw-r--r--src/mongo/db/commands.cpp9
-rw-r--r--src/mongo/db/commands.h18
-rw-r--r--src/mongo/db/commands/apply_ops_cmd.cpp14
-rw-r--r--src/mongo/db/commands/authentication_commands.cpp3
-rw-r--r--src/mongo/db/commands/authentication_commands.h1
-rw-r--r--src/mongo/db/commands/clone.cpp1
-rw-r--r--src/mongo/db/commands/clone_collection.cpp14
-rw-r--r--src/mongo/db/commands/collection_to_capped.cpp28
-rw-r--r--src/mongo/db/commands/compact.cpp14
-rw-r--r--src/mongo/db/commands/conn_pool_stats.cpp1
-rw-r--r--src/mongo/db/commands/conn_pool_sync.cpp1
-rw-r--r--src/mongo/db/commands/connection_status.cpp1
-rw-r--r--src/mongo/db/commands/copydb.cpp14
-rw-r--r--src/mongo/db/commands/copydb_start_commands.cpp28
-rw-r--r--src/mongo/db/commands/count_cmd.cpp1
-rw-r--r--src/mongo/db/commands/cpuload.cpp1
-rw-r--r--src/mongo/db/commands/cpuprofile.cpp44
-rw-r--r--src/mongo/db/commands/create_indexes.cpp14
-rw-r--r--src/mongo/db/commands/current_op_common.cpp1
-rw-r--r--src/mongo/db/commands/current_op_common.h1
-rw-r--r--src/mongo/db/commands/dbcommands.cpp92
-rw-r--r--src/mongo/db/commands/dbhash.cpp14
-rw-r--r--src/mongo/db/commands/distinct.cpp1
-rw-r--r--src/mongo/db/commands/driverHelpers.cpp14
-rw-r--r--src/mongo/db/commands/drop_indexes.cpp15
-rw-r--r--src/mongo/db/commands/eval.cpp14
-rw-r--r--src/mongo/db/commands/explain_cmd.cpp1
-rw-r--r--src/mongo/db/commands/fail_point_cmd.cpp14
-rw-r--r--src/mongo/db/commands/find_and_modify.cpp1
-rw-r--r--src/mongo/db/commands/find_cmd.cpp1
-rw-r--r--src/mongo/db/commands/fsync.cpp28
-rw-r--r--src/mongo/db/commands/generic.cpp23
-rw-r--r--src/mongo/db/commands/geo_near_cmd.cpp14
-rw-r--r--src/mongo/db/commands/get_last_error.cpp16
-rw-r--r--src/mongo/db/commands/getmore_cmd.cpp4
-rw-r--r--src/mongo/db/commands/group_cmd.cpp1
-rw-r--r--src/mongo/db/commands/hashcmd.cpp14
-rw-r--r--src/mongo/db/commands/haystack.cpp14
-rw-r--r--src/mongo/db/commands/index_filter_commands.cpp1
-rw-r--r--src/mongo/db/commands/index_filter_commands.h1
-rw-r--r--src/mongo/db/commands/isself.cpp1
-rw-r--r--src/mongo/db/commands/kill_op.cpp1
-rw-r--r--src/mongo/db/commands/killcursors_common.cpp1
-rw-r--r--src/mongo/db/commands/killcursors_common.h1
-rw-r--r--src/mongo/db/commands/list_collections.cpp1
-rw-r--r--src/mongo/db/commands/list_databases.cpp1
-rw-r--r--src/mongo/db/commands/list_indexes.cpp1
-rw-r--r--src/mongo/db/commands/lock_info.cpp1
-rw-r--r--src/mongo/db/commands/mr.cpp15
-rw-r--r--src/mongo/db/commands/oplog_note.cpp1
-rw-r--r--src/mongo/db/commands/parallel_collection_scan.cpp1
-rw-r--r--src/mongo/db/commands/parameters.cpp28
-rw-r--r--src/mongo/db/commands/pipeline_command.cpp1
-rw-r--r--src/mongo/db/commands/plan_cache_commands.cpp1
-rw-r--r--src/mongo/db/commands/plan_cache_commands.h1
-rw-r--r--src/mongo/db/commands/rename_collection_cmd.cpp14
-rw-r--r--src/mongo/db/commands/repair_cursor.cpp1
-rw-r--r--src/mongo/db/commands/resize_oplog.cpp1
-rw-r--r--src/mongo/db/commands/server_status.cpp1
-rw-r--r--src/mongo/db/commands/set_feature_compatibility_version_command.cpp1
-rw-r--r--src/mongo/db/commands/snapshot_management.cpp2
-rw-r--r--src/mongo/db/commands/test_commands.cpp17
-rw-r--r--src/mongo/db/commands/top_command.cpp1
-rw-r--r--src/mongo/db/commands/touch.cpp14
-rw-r--r--src/mongo/db/commands/user_management_commands.cpp20
-rw-r--r--src/mongo/db/commands/validate.cpp14
-rw-r--r--src/mongo/db/exec/stagedebug_cmd.cpp2
-rw-r--r--src/mongo/db/ftdc/ftdc_commands.cpp1
-rw-r--r--src/mongo/db/repl/master_slave.cpp1
-rw-r--r--src/mongo/db/repl/repl_set_commands.cpp18
-rw-r--r--src/mongo/db/repl/repl_set_request_votes.cpp1
-rw-r--r--src/mongo/db/repl/replication_info.cpp1
-rw-r--r--src/mongo/db/repl/resync.cpp14
-rw-r--r--src/mongo/db/s/check_sharding_index_command.cpp14
-rw-r--r--src/mongo/db/s/cleanup_orphaned_cmd.cpp14
-rw-r--r--src/mongo/db/s/config/configsvr_add_shard_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_add_shard_to_zone_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_commit_chunk_migration_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_control_balancer_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_merge_chunk_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_move_chunk_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_move_primary_command.cpp3
-rw-r--r--src/mongo/db/s/config/configsvr_remove_shard_from_zone_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_set_feature_compatibility_version_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_shard_collection_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_split_chunk_command.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_update_zone_key_range_command.cpp1
-rw-r--r--src/mongo/db/s/force_routing_table_refresh_command.cpp1
-rw-r--r--src/mongo/db/s/get_shard_version_command.cpp1
-rw-r--r--src/mongo/db/s/merge_chunks_command.cpp14
-rw-r--r--src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp2
-rw-r--r--src/mongo/db/s/migration_destination_manager_legacy_commands.cpp17
-rw-r--r--src/mongo/db/s/move_chunk_command.cpp1
-rw-r--r--src/mongo/db/s/set_shard_version_command.cpp14
-rw-r--r--src/mongo/db/s/sharding_state_command.cpp1
-rw-r--r--src/mongo/db/s/split_chunk_command.cpp14
-rw-r--r--src/mongo/db/s/split_vector_command.cpp14
-rw-r--r--src/mongo/db/s/unset_sharding_command.cpp1
-rw-r--r--src/mongo/db/storage/mmap_v1/journal_latency_test_cmd.cpp1
-rw-r--r--src/mongo/s/client/shard_connection.cpp1
-rw-r--r--src/mongo/s/commands/cluster_add_shard_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_apply_ops_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_available_query_options_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_compact_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_control_balancer_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_count_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_db_stats_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_drop_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_drop_database_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_enable_sharding_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_explain_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_find_and_modify_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_find_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_flush_router_config_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_fsync_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_ftdc_commands.cpp14
-rw-r--r--src/mongo/s/commands/cluster_get_last_error_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_get_prev_error_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_get_shard_map_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_get_shard_version_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_getmore_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_index_filter_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_is_db_grid_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_is_master_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_kill_op.cpp1
-rw-r--r--src/mongo/s/commands/cluster_list_databases_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_list_shards_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_map_reduce_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_merge_chunks_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_move_chunk_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_move_primary_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_netstat_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_pipeline_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_plan_cache_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_profile_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_remove_shard_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_repl_set_get_status_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_reset_error_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_shard_collection_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_shutdown_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_split_cmd.cpp14
-rw-r--r--src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_user_management_commands.cpp19
-rw-r--r--src/mongo/s/commands/cluster_whats_my_uri_cmd.cpp1
-rw-r--r--src/mongo/s/commands/commands_public.cpp45
149 files changed, 444 insertions, 623 deletions
diff --git a/src/mongo/db/auth/sasl_commands.cpp b/src/mongo/db/auth/sasl_commands.cpp
index df74cea7436..57ad20647d8 100644
--- a/src/mongo/db/auth/sasl_commands.cpp
+++ b/src/mongo/db/auth/sasl_commands.cpp
@@ -76,7 +76,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& ignored,
BSONObjBuilder& result);
virtual void help(stringstream& help) const;
@@ -103,7 +102,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& ignored,
BSONObjBuilder& result);
virtual void help(stringstream& help) const;
@@ -271,7 +269,6 @@ void CmdSaslStart::redactForLogging(mutablebson::Document* cmdObj) {
bool CmdSaslStart::run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& ignored,
BSONObjBuilder& result) {
Client* client = Client::getCurrent();
AuthenticationSession::set(client, std::unique_ptr<AuthenticationSession>());
@@ -312,7 +309,6 @@ void CmdSaslContinue::help(std::stringstream& os) const {
bool CmdSaslContinue::run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& ignored,
BSONObjBuilder& result) {
Client* client = Client::getCurrent();
std::unique_ptr<AuthenticationSession> sessionGuard;
diff --git a/src/mongo/db/commands.cpp b/src/mongo/db/commands.cpp
index b98eb1bcc6f..0e82077f6d0 100644
--- a/src/mongo/db/commands.cpp
+++ b/src/mongo/db/commands.cpp
@@ -371,8 +371,15 @@ bool BasicCommand::enhancedRun(OperationContext* opCtx,
str::stream() << "The " << getName() << " command does not support document sequences.",
request.sequences.empty());
+ return run(opCtx, request.getDatabase().toString(), request.body, result);
+}
+
+bool ErrmsgCommandDeprecated::run(OperationContext* opCtx,
+ const std::string& db,
+ const BSONObj& cmdObj,
+ BSONObjBuilder& result) {
std::string errmsg;
- bool ok = run(opCtx, request.getDatabase().toString(), request.body, errmsg, result);
+ auto ok = errmsgRun(opCtx, db, cmdObj, errmsg, result);
if (!errmsg.empty()) {
appendCommandStatus(result, ok, errmsg);
}
diff --git a/src/mongo/db/commands.h b/src/mongo/db/commands.h
index 1953866e624..c30a0471d7a 100644
--- a/src/mongo/db/commands.h
+++ b/src/mongo/db/commands.h
@@ -583,8 +583,24 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) = 0;
};
+/**
+ * Deprecated. Do not add new subclasses.
+ */
+class ErrmsgCommandDeprecated : public BasicCommand {
+ using BasicCommand::BasicCommand;
+ bool run(OperationContext* opCtx,
+ const std::string& db,
+ const BSONObj& cmdObj,
+ BSONObjBuilder& result) final;
+
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const std::string& db,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) = 0;
+};
+
} // namespace mongo
diff --git a/src/mongo/db/commands/apply_ops_cmd.cpp b/src/mongo/db/commands/apply_ops_cmd.cpp
index ca0266908dd..caa6ec4c319 100644
--- a/src/mongo/db/commands/apply_ops_cmd.cpp
+++ b/src/mongo/db/commands/apply_ops_cmd.cpp
@@ -61,9 +61,9 @@ using std::stringstream;
namespace {
-class ApplyOpsCmd : public BasicCommand {
+class ApplyOpsCmd : public ErrmsgCommandDeprecated {
public:
- ApplyOpsCmd() : BasicCommand("applyOps") {}
+ ApplyOpsCmd() : ErrmsgCommandDeprecated("applyOps") {}
virtual bool slaveOk() const {
return false;
@@ -85,11 +85,11 @@ public:
return checkAuthForApplyOpsCommand(opCtx, dbname, cmdObj);
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
validateApplyOpsCommand(cmdObj);
boost::optional<DisableDocumentValidation> maybeDisableValidation;
diff --git a/src/mongo/db/commands/authentication_commands.cpp b/src/mongo/db/commands/authentication_commands.cpp
index c7e6d1160aa..4c088f97493 100644
--- a/src/mongo/db/commands/authentication_commands.cpp
+++ b/src/mongo/db/commands/authentication_commands.cpp
@@ -116,7 +116,6 @@ public:
bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
nonce64 n = getNextNonce();
stringstream ss;
@@ -153,7 +152,6 @@ void CmdAuthenticate::redactForLogging(mutablebson::Document* cmdObj) {
bool CmdAuthenticate::run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
if (!serverGlobalParams.quiet.load()) {
mutablebson::Document cmdToLog(cmdObj, mutablebson::Document::kInPlaceDisabled);
@@ -378,7 +376,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
AuthorizationSession* authSession = AuthorizationSession::get(Client::getCurrent());
authSession->logoutDatabase(dbname);
diff --git a/src/mongo/db/commands/authentication_commands.h b/src/mongo/db/commands/authentication_commands.h
index 5bb01ad9fae..bbb837e4015 100644
--- a/src/mongo/db/commands/authentication_commands.h
+++ b/src/mongo/db/commands/authentication_commands.h
@@ -58,7 +58,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result);
private:
diff --git a/src/mongo/db/commands/clone.cpp b/src/mongo/db/commands/clone.cpp
index 97744cedf86..f219a374778 100644
--- a/src/mongo/db/commands/clone.cpp
+++ b/src/mongo/db/commands/clone.cpp
@@ -90,7 +90,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
boost::optional<DisableDocumentValidation> maybeDisableValidation;
if (shouldBypassDocumentValidationForCommand(cmdObj)) {
diff --git a/src/mongo/db/commands/clone_collection.cpp b/src/mongo/db/commands/clone_collection.cpp
index 3eea32aa1fc..0ec44950793 100644
--- a/src/mongo/db/commands/clone_collection.cpp
+++ b/src/mongo/db/commands/clone_collection.cpp
@@ -59,9 +59,9 @@ using std::string;
using std::stringstream;
using std::endl;
-class CmdCloneCollection : public BasicCommand {
+class CmdCloneCollection : public ErrmsgCommandDeprecated {
public:
- CmdCloneCollection() : BasicCommand("cloneCollection") {}
+ CmdCloneCollection() : ErrmsgCommandDeprecated("cloneCollection") {}
virtual bool slaveOk() const {
return false;
@@ -103,11 +103,11 @@ public:
"is placed at the same db.collection (namespace) as the source.\n";
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
boost::optional<DisableDocumentValidation> maybeDisableValidation;
if (shouldBypassDocumentValidationForCommand(cmdObj))
maybeDisableValidation.emplace(opCtx);
diff --git a/src/mongo/db/commands/collection_to_capped.cpp b/src/mongo/db/commands/collection_to_capped.cpp
index 6a56cbaf144..55272f941a0 100644
--- a/src/mongo/db/commands/collection_to_capped.cpp
+++ b/src/mongo/db/commands/collection_to_capped.cpp
@@ -49,9 +49,9 @@ using std::unique_ptr;
using std::string;
using std::stringstream;
-class CmdCloneCollectionAsCapped : public BasicCommand {
+class CmdCloneCollectionAsCapped : public ErrmsgCommandDeprecated {
public:
- CmdCloneCollectionAsCapped() : BasicCommand("cloneCollectionAsCapped") {}
+ CmdCloneCollectionAsCapped() : ErrmsgCommandDeprecated("cloneCollectionAsCapped") {}
virtual bool slaveOk() const {
return false;
}
@@ -84,11 +84,11 @@ public:
out->push_back(Privilege(ResourcePattern::forExactNamespace(nss), targetActions));
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& jsobj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& jsobj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const auto fromElt = jsobj["cloneCollectionAsCapped"];
const auto toElt = jsobj["toCollection"];
@@ -148,9 +148,9 @@ public:
This command is not highly used, and is not currently supported with sharded
environments.
*/
-class CmdConvertToCapped : public BasicCommand {
+class CmdConvertToCapped : public ErrmsgCommandDeprecated {
public:
- CmdConvertToCapped() : BasicCommand("convertToCapped") {}
+ CmdConvertToCapped() : ErrmsgCommandDeprecated("convertToCapped") {}
virtual bool slaveOk() const {
return false;
}
@@ -168,11 +168,11 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& jsobj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& jsobj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbname, jsobj));
double size = jsobj.getField("size").number();
diff --git a/src/mongo/db/commands/compact.cpp b/src/mongo/db/commands/compact.cpp
index 492b9c46184..780790bb994 100644
--- a/src/mongo/db/commands/compact.cpp
+++ b/src/mongo/db/commands/compact.cpp
@@ -53,7 +53,7 @@ namespace mongo {
using std::string;
using std::stringstream;
-class CompactCmd : public BasicCommand {
+class CompactCmd : public ErrmsgCommandDeprecated {
public:
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
@@ -84,13 +84,13 @@ public:
" validate - check records are noncorrupt before adding to newly compacting "
"extents. slower but safer (defaults to true in this version)\n";
}
- CompactCmd() : BasicCommand("compact") {}
+ CompactCmd() : ErrmsgCommandDeprecated("compact") {}
- virtual bool run(OperationContext* opCtx,
- const string& db,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& db,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
NamespaceString nss = parseNsCollectionRequired(db, cmdObj);
repl::ReplicationCoordinator* replCoord = repl::getGlobalReplicationCoordinator();
diff --git a/src/mongo/db/commands/conn_pool_stats.cpp b/src/mongo/db/commands/conn_pool_stats.cpp
index 55047a55109..119712ce811 100644
--- a/src/mongo/db/commands/conn_pool_stats.cpp
+++ b/src/mongo/db/commands/conn_pool_stats.cpp
@@ -76,7 +76,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& db,
const mongo::BSONObj& cmdObj,
- std::string& errmsg,
mongo::BSONObjBuilder& result) override {
executor::ConnectionPoolStats stats{};
diff --git a/src/mongo/db/commands/conn_pool_sync.cpp b/src/mongo/db/commands/conn_pool_sync.cpp
index b1ce5b26dcf..c5831277334 100644
--- a/src/mongo/db/commands/conn_pool_sync.cpp
+++ b/src/mongo/db/commands/conn_pool_sync.cpp
@@ -57,7 +57,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string&,
const mongo::BSONObj&,
- std::string&,
mongo::BSONObjBuilder& result) {
shardConnectionPool.flush();
globalConnPool.flush();
diff --git a/src/mongo/db/commands/connection_status.cpp b/src/mongo/db/commands/connection_status.cpp
index 9454b8769b4..b8ea2e101fd 100644
--- a/src/mongo/db/commands/connection_status.cpp
+++ b/src/mongo/db/commands/connection_status.cpp
@@ -58,7 +58,6 @@ public:
bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
AuthorizationSession* authSession = AuthorizationSession::get(Client::getCurrent());
diff --git a/src/mongo/db/commands/copydb.cpp b/src/mongo/db/commands/copydb.cpp
index 4755d032916..0695a60382e 100644
--- a/src/mongo/db/commands/copydb.cpp
+++ b/src/mongo/db/commands/copydb.cpp
@@ -87,9 +87,9 @@ using std::stringstream;
* NOTE: Since internal cluster auth works differently, "copydb" currently doesn't work between
* shards in a cluster when auth is enabled. See SERVER-13080.
*/
-class CmdCopyDb : public BasicCommand {
+class CmdCopyDb : public ErrmsgCommandDeprecated {
public:
- CmdCopyDb() : BasicCommand("copydb") {}
+ CmdCopyDb() : ErrmsgCommandDeprecated("copydb") {}
virtual bool adminOnly() const {
return true;
@@ -115,11 +115,11 @@ public:
<< "[, slaveOk: <bool>, username: <username>, nonce: <nonce>, key: <key>]}";
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
boost::optional<DisableDocumentValidation> maybeDisableValidation;
if (shouldBypassDocumentValidationForCommand(cmdObj))
maybeDisableValidation.emplace(opCtx);
diff --git a/src/mongo/db/commands/copydb_start_commands.cpp b/src/mongo/db/commands/copydb_start_commands.cpp
index fbb3d485180..d537d621977 100644
--- a/src/mongo/db/commands/copydb_start_commands.cpp
+++ b/src/mongo/db/commands/copydb_start_commands.cpp
@@ -68,9 +68,9 @@ std::unique_ptr<DBClientBase>& CopyDbAuthConnection::forClient(Client* client) {
* nonce from the source of a "copydb" operation for authentication purposes. See the
* description of the "copydb" command below.
*/
-class CmdCopyDbGetNonce : public BasicCommand {
+class CmdCopyDbGetNonce : public ErrmsgCommandDeprecated {
public:
- CmdCopyDbGetNonce() : BasicCommand("copydbgetnonce") {}
+ CmdCopyDbGetNonce() : ErrmsgCommandDeprecated("copydbgetnonce") {}
virtual bool adminOnly() const {
return true;
@@ -96,11 +96,11 @@ public:
help << "usage: {copydbgetnonce: 1, fromhost: <hostname>}";
}
- virtual bool run(OperationContext* opCtx,
- const string&,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string&,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
string fromhost = cmdObj.getStringField("fromhost");
if (fromhost.empty()) {
/* copy from self */
@@ -140,9 +140,9 @@ public:
* Run against the mongod that is the intended target for the "copydb" command. Used to
* initialize a SASL auth session for a "copydb" operation for authentication purposes.
*/
-class CmdCopyDbSaslStart : public BasicCommand {
+class CmdCopyDbSaslStart : public ErrmsgCommandDeprecated {
public:
- CmdCopyDbSaslStart() : BasicCommand("copydbsaslstart") {}
+ CmdCopyDbSaslStart() : ErrmsgCommandDeprecated("copydbsaslstart") {}
virtual bool adminOnly() const {
return true;
@@ -169,11 +169,11 @@ public:
"from secure server\n";
}
- virtual bool run(OperationContext* opCtx,
- const string&,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string&,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const auto fromdbElt = cmdObj["fromdb"];
uassert(ErrorCodes::TypeMismatch,
"'renameCollection' must be of type String",
diff --git a/src/mongo/db/commands/count_cmd.cpp b/src/mongo/db/commands/count_cmd.cpp
index dcd60503a80..199c3e0be9b 100644
--- a/src/mongo/db/commands/count_cmd.cpp
+++ b/src/mongo/db/commands/count_cmd.cpp
@@ -158,7 +158,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool isExplain = false;
auto request = CountRequest::parseFromBSON(dbname, cmdObj, isExplain);
diff --git a/src/mongo/db/commands/cpuload.cpp b/src/mongo/db/commands/cpuload.cpp
index 996b6e11b46..51192715b1a 100644
--- a/src/mongo/db/commands/cpuload.cpp
+++ b/src/mongo/db/commands/cpuload.cpp
@@ -61,7 +61,6 @@ public:
virtual bool run(OperationContext* txn,
const string& badns,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
double cpuFactor = 1;
if (cmdObj["cpuFactor"].isNumber()) {
diff --git a/src/mongo/db/commands/cpuprofile.cpp b/src/mongo/db/commands/cpuprofile.cpp
index 0586c646156..3d2ecc5da4f 100644
--- a/src/mongo/db/commands/cpuprofile.cpp
+++ b/src/mongo/db/commands/cpuprofile.cpp
@@ -68,9 +68,9 @@ namespace {
/**
* Common code for the implementation of cpu profiler commands.
*/
-class CpuProfilerCommand : public BasicCommand {
+class CpuProfilerCommand : public ErrmsgCommandDeprecated {
public:
- CpuProfilerCommand(char const* name) : BasicCommand(name) {}
+ CpuProfilerCommand(char const* name) : ErrmsgCommandDeprecated(name) {}
virtual bool slaveOk() const {
return true;
}
@@ -103,11 +103,11 @@ class CpuProfilerStartCommand : public CpuProfilerCommand {
public:
CpuProfilerStartCommand() : CpuProfilerCommand(commandName) {}
- virtual bool run(OperationContext* opCtx,
- std::string const& db,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result);
+ virtual bool errmsgRun(OperationContext* opCtx,
+ std::string const& db,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result);
static char const* const commandName;
} cpuProfilerStartCommandInstance;
@@ -119,11 +119,11 @@ class CpuProfilerStopCommand : public CpuProfilerCommand {
public:
CpuProfilerStopCommand() : CpuProfilerCommand(commandName) {}
- virtual bool run(OperationContext* opCtx,
- std::string const& db,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result);
+ virtual bool errmsgRun(OperationContext* opCtx,
+ std::string const& db,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result);
static char const* const commandName;
} cpuProfilerStopCommandInstance;
@@ -131,11 +131,11 @@ public:
char const* const CpuProfilerStartCommand::commandName = "_cpuProfilerStart";
char const* const CpuProfilerStopCommand::commandName = "_cpuProfilerStop";
-bool CpuProfilerStartCommand::run(OperationContext* opCtx,
- std::string const& db,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+bool CpuProfilerStartCommand::errmsgRun(OperationContext* opCtx,
+ std::string const& db,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
// The DB lock here is just so we have IX on the global lock in order to prevent shutdown
Lock::DBLock dbXLock(opCtx, db, MODE_X);
OldClientContext ctx(opCtx, db, false /* no shard version checking */);
@@ -148,11 +148,11 @@ bool CpuProfilerStartCommand::run(OperationContext* opCtx,
return true;
}
-bool CpuProfilerStopCommand::run(OperationContext* opCtx,
- std::string const& db,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+bool CpuProfilerStopCommand::errmsgRun(OperationContext* opCtx,
+ std::string const& db,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
// The DB lock here is just so we have IX on the global lock in order to prevent shutdown
Lock::DBLock dbXLock(opCtx, db, MODE_X);
OldClientContext ctx(opCtx, db, false /* no shard version checking */);
diff --git a/src/mongo/db/commands/create_indexes.cpp b/src/mongo/db/commands/create_indexes.cpp
index 563a173d7b9..230ca733659 100644
--- a/src/mongo/db/commands/create_indexes.cpp
+++ b/src/mongo/db/commands/create_indexes.cpp
@@ -208,9 +208,9 @@ StatusWith<std::vector<BSONObj>> resolveCollectionDefaultProperties(
/**
* { createIndexes : "bar", indexes : [ { ns : "test.bar", key : { x : 1 }, name: "x_1" } ] }
*/
-class CmdCreateIndex : public BasicCommand {
+class CmdCreateIndex : public ErrmsgCommandDeprecated {
public:
- CmdCreateIndex() : BasicCommand(kCommandName) {}
+ CmdCreateIndex() : ErrmsgCommandDeprecated(kCommandName) {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return true;
@@ -230,11 +230,11 @@ public:
return Status(ErrorCodes::Unauthorized, "Unauthorized");
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString ns(parseNsCollectionRequired(dbname, cmdObj));
Status status = userAllowedWriteNS(ns);
diff --git a/src/mongo/db/commands/current_op_common.cpp b/src/mongo/db/commands/current_op_common.cpp
index b3b8ec18061..2e2a1ec799d 100644
--- a/src/mongo/db/commands/current_op_common.cpp
+++ b/src/mongo/db/commands/current_op_common.cpp
@@ -39,7 +39,6 @@ namespace mongo {
bool CurrentOpCommandBase::run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
// Convert the currentOp command spec into an equivalent aggregation command. This will be
// of the form {aggregate:1, pipeline: [{$currentOp: {idleConnections: $all, allUsers:
diff --git a/src/mongo/db/commands/current_op_common.h b/src/mongo/db/commands/current_op_common.h
index 9fb143bd271..1a3ae46a1ec 100644
--- a/src/mongo/db/commands/current_op_common.h
+++ b/src/mongo/db/commands/current_op_common.h
@@ -58,7 +58,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final;
private:
diff --git a/src/mongo/db/commands/dbcommands.cpp b/src/mongo/db/commands/dbcommands.cpp
index ac68b36e727..ee67ed17ccb 100644
--- a/src/mongo/db/commands/dbcommands.cpp
+++ b/src/mongo/db/commands/dbcommands.cpp
@@ -124,7 +124,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
bool force = cmdObj.hasField("force") && cmdObj["force"].trueValue();
@@ -173,7 +172,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
// disallow dropping the config database
if (serverGlobalParams.clusterRole == ClusterRole::ConfigServer &&
@@ -211,7 +209,7 @@ public:
} cmdDropDatabase;
-class CmdRepairDatabase : public BasicCommand {
+class CmdRepairDatabase : public ErrmsgCommandDeprecated {
public:
virtual bool slaveOk() const {
return true;
@@ -236,13 +234,13 @@ public:
out->push_back(Privilege(ResourcePattern::forDatabaseName(dbname), actions));
}
- CmdRepairDatabase() : BasicCommand("repairDatabase") {}
+ CmdRepairDatabase() : ErrmsgCommandDeprecated("repairDatabase") {}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
BSONElement e = cmdObj.firstElement();
if (e.numberInt() != 1) {
errmsg = "bad option";
@@ -296,7 +294,7 @@ public:
todo: how do we handle profiling information put in the db with replication?
sensibly or not?
*/
-class CmdProfile : public BasicCommand {
+class CmdProfile : public ErrmsgCommandDeprecated {
public:
virtual bool slaveOk() const {
return true;
@@ -339,13 +337,13 @@ public:
return Status(ErrorCodes::Unauthorized, "unauthorized");
}
- CmdProfile() : BasicCommand("profile") {}
+ CmdProfile() : ErrmsgCommandDeprecated("profile") {}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
BSONElement firstElement = cmdObj.firstElement();
int profilingLevel = firstElement.numberInt();
@@ -426,7 +424,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const char* deprecationWarning =
"CMD diagLogging is deprecated and will be removed in a future release";
@@ -455,9 +452,9 @@ public:
} cmddiaglogging;
/* drop collection */
-class CmdDrop : public BasicCommand {
+class CmdDrop : public ErrmsgCommandDeprecated {
public:
- CmdDrop() : BasicCommand("drop") {}
+ CmdDrop() : ErrmsgCommandDeprecated("drop") {}
virtual bool slaveOk() const {
return false;
}
@@ -480,11 +477,11 @@ public:
return true;
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString nsToDrop = parseNsCollectionRequired(dbname, cmdObj);
if (NamespaceString::virtualized(nsToDrop.ns())) {
@@ -540,7 +537,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString ns(parseNsCollectionRequired(dbname, cmdObj));
@@ -668,7 +664,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& jsobj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss(parseNs(dbname, jsobj));
@@ -803,13 +798,13 @@ public:
} cmdFileMD5;
-class CmdDatasize : public BasicCommand {
+class CmdDatasize : public ErrmsgCommandDeprecated {
virtual string parseNs(const string& dbname, const BSONObj& cmdObj) const {
return parseNsFullyQualified(dbname, cmdObj);
}
public:
- CmdDatasize() : BasicCommand("dataSize", "datasize") {}
+ CmdDatasize() : ErrmsgCommandDeprecated("dataSize", "datasize") {}
virtual bool slaveOk() const {
return true;
@@ -838,11 +833,11 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& jsobj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& jsobj,
+ string& errmsg,
+ BSONObjBuilder& result) {
Timer timer;
string ns = jsobj.firstElement().String();
@@ -957,9 +952,9 @@ public:
} cmdDatasize;
-class CollectionStats : public BasicCommand {
+class CollectionStats : public ErrmsgCommandDeprecated {
public:
- CollectionStats() : BasicCommand("collStats", "collstats") {}
+ CollectionStats() : ErrmsgCommandDeprecated("collStats", "collstats") {}
virtual bool slaveOk() const {
return true;
@@ -981,11 +976,11 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& jsobj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& jsobj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbname, jsobj));
if (nss.coll().empty()) {
@@ -1032,7 +1027,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& jsobj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbname, jsobj));
return appendCommandStatus(result, collMod(opCtx, nss, jsobj, &result));
@@ -1040,9 +1034,9 @@ public:
} collectionModCommand;
-class DBStats : public BasicCommand {
+class DBStats : public ErrmsgCommandDeprecated {
public:
- DBStats() : BasicCommand("dbStats", "dbstats") {}
+ DBStats() : ErrmsgCommandDeprecated("dbStats", "dbstats") {}
virtual bool slaveOk() const {
return true;
@@ -1064,11 +1058,11 @@ public:
out->push_back(Privilege(ResourcePattern::forDatabaseName(dbname), actions));
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& jsobj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& jsobj,
+ string& errmsg,
+ BSONObjBuilder& result) {
int scale = 1;
if (jsobj["scale"].isNumber()) {
scale = jsobj["scale"].numberInt();
@@ -1151,7 +1145,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
result << "you" << opCtx->getClient()->clientAddress(true /*includePort*/);
return true;
@@ -1177,7 +1170,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
result << "options" << QueryOption_AllSupported;
return true;
diff --git a/src/mongo/db/commands/dbhash.cpp b/src/mongo/db/commands/dbhash.cpp
index b288be37c4d..78d4839e45c 100644
--- a/src/mongo/db/commands/dbhash.cpp
+++ b/src/mongo/db/commands/dbhash.cpp
@@ -52,9 +52,9 @@ namespace mongo {
namespace {
-class DBHashCmd : public BasicCommand {
+class DBHashCmd : public ErrmsgCommandDeprecated {
public:
- DBHashCmd() : BasicCommand("dbHash", "dbhash") {}
+ DBHashCmd() : ErrmsgCommandDeprecated("dbHash", "dbhash") {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
@@ -72,11 +72,11 @@ public:
out->push_back(Privilege(ResourcePattern::forDatabaseName(dbname), actions));
}
- virtual bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
Timer timer;
std::set<std::string> desiredCollections;
diff --git a/src/mongo/db/commands/distinct.cpp b/src/mongo/db/commands/distinct.cpp
index 62d21c239e9..a0eceaaa7d5 100644
--- a/src/mongo/db/commands/distinct.cpp
+++ b/src/mongo/db/commands/distinct.cpp
@@ -158,7 +158,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj));
diff --git a/src/mongo/db/commands/driverHelpers.cpp b/src/mongo/db/commands/driverHelpers.cpp
index 589c2303bdb..2f1e688aa15 100644
--- a/src/mongo/db/commands/driverHelpers.cpp
+++ b/src/mongo/db/commands/driverHelpers.cpp
@@ -52,9 +52,9 @@ namespace mongo {
using std::string;
-class BasicDriverHelper : public BasicCommand {
+class BasicDriverHelper : public ErrmsgCommandDeprecated {
public:
- BasicDriverHelper(const char* name) : BasicCommand(name) {}
+ BasicDriverHelper(const char* name) : ErrmsgCommandDeprecated(name) {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
@@ -73,11 +73,11 @@ public:
virtual void addRequiredPrivileges(const std::string& dbname,
const BSONObj& cmdObj,
std::vector<Privilege>* out) {} // No auth required
- virtual bool run(OperationContext* opCtx,
- const string&,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string&,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
if (cmdObj.firstElement().type() != jstOID) {
errmsg = "not oid";
return false;
diff --git a/src/mongo/db/commands/drop_indexes.cpp b/src/mongo/db/commands/drop_indexes.cpp
index 42a16dad2ab..1faedbb761c 100644
--- a/src/mongo/db/commands/drop_indexes.cpp
+++ b/src/mongo/db/commands/drop_indexes.cpp
@@ -87,7 +87,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& jsobj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss = parseNsCollectionRequired(dbname, jsobj);
return appendCommandStatus(result, dropIndexes(opCtx, nss, jsobj, &result));
@@ -95,7 +94,7 @@ public:
} cmdDropIndexes;
-class CmdReIndex : public BasicCommand {
+class CmdReIndex : public ErrmsgCommandDeprecated {
public:
virtual bool slaveOk() const {
return true;
@@ -113,13 +112,13 @@ public:
actions.addAction(ActionType::reIndex);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
- CmdReIndex() : BasicCommand("reIndex") {}
+ CmdReIndex() : ErrmsgCommandDeprecated("reIndex") {}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& jsobj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& jsobj,
+ string& errmsg,
+ BSONObjBuilder& result) {
DBDirectClient db(opCtx);
const NamespaceString toReIndexNs = parseNsCollectionRequired(dbname, jsobj);
diff --git a/src/mongo/db/commands/eval.cpp b/src/mongo/db/commands/eval.cpp
index bb7e13f1cfb..28a73562df7 100644
--- a/src/mongo/db/commands/eval.cpp
+++ b/src/mongo/db/commands/eval.cpp
@@ -152,7 +152,7 @@ bool dbEval(OperationContext* opCtx,
}
-class CmdEval : public BasicCommand {
+class CmdEval : public ErrmsgCommandDeprecated {
public:
virtual bool slaveOk() const {
return false;
@@ -172,13 +172,13 @@ public:
RoleGraph::generateUniversalPrivileges(out);
}
- CmdEval() : BasicCommand("eval", "$eval") {}
+ CmdEval() : ErrmsgCommandDeprecated("eval", "$eval") {}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
// Note: 'eval' is not allowed to touch sharded namespaces, but we can't check the
// shardVersions of the namespaces accessed in the script until the script is evaluated.
// Instead, we enforce that the script does not access sharded namespaces by ensuring the
diff --git a/src/mongo/db/commands/explain_cmd.cpp b/src/mongo/db/commands/explain_cmd.cpp
index ec07e0f5106..c2b3893c15e 100644
--- a/src/mongo/db/commands/explain_cmd.cpp
+++ b/src/mongo/db/commands/explain_cmd.cpp
@@ -123,7 +123,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto verbosity = ExplainOptions::parseCmdBSON(cmdObj);
if (!verbosity.isOK()) {
diff --git a/src/mongo/db/commands/fail_point_cmd.cpp b/src/mongo/db/commands/fail_point_cmd.cpp
index 74da22e059c..c5fcda4b995 100644
--- a/src/mongo/db/commands/fail_point_cmd.cpp
+++ b/src/mongo/db/commands/fail_point_cmd.cpp
@@ -64,9 +64,9 @@ using std::stringstream;
* data: <Object> // optional arbitrary object to store.
* }
*/
-class FaultInjectCmd : public BasicCommand {
+class FaultInjectCmd : public ErrmsgCommandDeprecated {
public:
- FaultInjectCmd() : BasicCommand("configureFailPoint") {}
+ FaultInjectCmd() : ErrmsgCommandDeprecated("configureFailPoint") {}
virtual bool slaveOk() const {
return true;
@@ -90,11 +90,11 @@ public:
h << "modifies the settings of a fail point";
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const string failPointName(cmdObj.firstElement().str());
FailPointRegistry* registry = getGlobalFailPointRegistry();
FailPoint* failPoint = registry->getFailPoint(failPointName);
diff --git a/src/mongo/db/commands/find_and_modify.cpp b/src/mongo/db/commands/find_and_modify.cpp
index d83a44beec4..8014c67ecd0 100644
--- a/src/mongo/db/commands/find_and_modify.cpp
+++ b/src/mongo/db/commands/find_and_modify.cpp
@@ -338,7 +338,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
// findAndModify command is not replicated directly.
invariant(opCtx->writesAreReplicated());
diff --git a/src/mongo/db/commands/find_cmd.cpp b/src/mongo/db/commands/find_cmd.cpp
index 392ccfcb066..8d89469a27f 100644
--- a/src/mongo/db/commands/find_cmd.cpp
+++ b/src/mongo/db/commands/find_cmd.cpp
@@ -221,7 +221,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNsOrUUID(opCtx, dbname, cmdObj));
diff --git a/src/mongo/db/commands/fsync.cpp b/src/mongo/db/commands/fsync.cpp
index b266281f19b..e4c3aca53bd 100644
--- a/src/mongo/db/commands/fsync.cpp
+++ b/src/mongo/db/commands/fsync.cpp
@@ -78,13 +78,13 @@ public:
virtual void run();
};
-class FSyncCommand : public BasicCommand {
+class FSyncCommand : public ErrmsgCommandDeprecated {
public:
static const char* url() {
return "http://dochub.mongodb.org/core/fsynccommand";
}
- FSyncCommand() : BasicCommand("fsync") {}
+ FSyncCommand() : ErrmsgCommandDeprecated("fsync") {}
virtual ~FSyncCommand() {
// The FSyncLockThread is owned by the FSyncCommand and accesses FsyncCommand state. It must
@@ -117,11 +117,11 @@ public:
actions.addAction(ActionType::fsync);
out->push_back(Privilege(ResourcePattern::forClusterResource(), actions));
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
if (opCtx->lockState()->isLocked()) {
errmsg = "fsync: Cannot execute fsync command from contexts that hold a data lock";
return false;
@@ -264,9 +264,9 @@ private:
bool _fsyncLocked = false;
} fsyncCmd;
-class FSyncUnlockCommand : public BasicCommand {
+class FSyncUnlockCommand : public ErrmsgCommandDeprecated {
public:
- FSyncUnlockCommand() : BasicCommand("fsyncUnlock") {}
+ FSyncUnlockCommand() : ErrmsgCommandDeprecated("fsyncUnlock") {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
@@ -290,11 +290,11 @@ public:
return isAuthorized ? Status::OK() : Status(ErrorCodes::Unauthorized, "Unauthorized");
}
- bool run(OperationContext* opCtx,
- const std::string& db,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& db,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) override {
log() << "command: unlock requested";
Lock::ExclusiveLock lk(opCtx->lockState(), commandMutex);
diff --git a/src/mongo/db/commands/generic.cpp b/src/mongo/db/commands/generic.cpp
index a9b3e982c23..35998427356 100644
--- a/src/mongo/db/commands/generic.cpp
+++ b/src/mongo/db/commands/generic.cpp
@@ -92,7 +92,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& jsobj,
- std::string& errmsg,
BSONObjBuilder& result) {
VersionInfoInterface::instance().appendBuildInfo(&result);
appendStorageEngineList(&result);
@@ -121,7 +120,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& badns,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
// IMPORTANT: Don't put anything in here that might lock db - including authentication
return true;
@@ -146,7 +144,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& ns,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
if (getGlobalScriptEngine()) {
BSONObjBuilder bb(result.subobjStart("js"));
@@ -188,7 +185,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
ProcessInfo p;
BSONObjBuilder bSys, bOs;
@@ -235,7 +231,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& ns,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
bool didRotate = rotateLogs(serverGlobalParams.logRenameOnRotate);
if (didRotate)
@@ -266,7 +261,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& ns,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
// sort the commands before building the result BSON
std::vector<Command*> commands;
@@ -364,16 +358,15 @@ public:
bool run(OperationContext* opCtx,
const string& dbnamne,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
LastError::get(cc()).setLastError(10038, "forced error");
return false;
}
} cmdForceError;
-class GetLogCmd : public BasicCommand {
+class GetLogCmd : public ErrmsgCommandDeprecated {
public:
- GetLogCmd() : BasicCommand("getLog") {}
+ GetLogCmd() : ErrmsgCommandDeprecated("getLog") {}
virtual bool slaveOk() const {
return true;
@@ -395,11 +388,11 @@ public:
help << "{ getLog : '*' } OR { getLog : 'global' }";
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
BSONElement val = cmdObj.firstElement();
if (val.type() != String) {
return appendCommandStatus(
@@ -469,7 +462,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
std::string logName;
Status status = bsonExtractStringField(cmdObj, "clearLog", &logName);
@@ -521,7 +513,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
result.append("argv", serverGlobalParams.argvArray);
result.append("parsed", serverGlobalParams.parsedOpts);
diff --git a/src/mongo/db/commands/geo_near_cmd.cpp b/src/mongo/db/commands/geo_near_cmd.cpp
index c40625ed1c7..238f97eaa80 100644
--- a/src/mongo/db/commands/geo_near_cmd.cpp
+++ b/src/mongo/db/commands/geo_near_cmd.cpp
@@ -60,9 +60,9 @@ namespace mongo {
using std::unique_ptr;
using std::stringstream;
-class Geo2dFindNearCmd : public BasicCommand {
+class Geo2dFindNearCmd : public ErrmsgCommandDeprecated {
public:
- Geo2dFindNearCmd() : BasicCommand("geoNear") {}
+ Geo2dFindNearCmd() : ErrmsgCommandDeprecated("geoNear") {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
@@ -97,11 +97,11 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
if (!cmdObj["start"].eoo()) {
errmsg = "using deprecated 'start' argument to geoNear";
return false;
diff --git a/src/mongo/db/commands/get_last_error.cpp b/src/mongo/db/commands/get_last_error.cpp
index 80ebfb78e8e..536e1d18814 100644
--- a/src/mongo/db/commands/get_last_error.cpp
+++ b/src/mongo/db/commands/get_last_error.cpp
@@ -73,16 +73,15 @@ public:
bool run(OperationContext* opCtx,
const string& db,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
LastError::get(opCtx->getClient()).reset();
return true;
}
} cmdResetError;
-class CmdGetLastError : public BasicCommand {
+class CmdGetLastError : public ErrmsgCommandDeprecated {
public:
- CmdGetLastError() : BasicCommand("getLastError", "getlasterror") {}
+ CmdGetLastError() : ErrmsgCommandDeprecated("getLastError", "getlasterror") {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
}
@@ -103,11 +102,11 @@ public:
<< " { wtimeout:m} - timeout for w in m milliseconds";
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
//
// Correct behavior here is very finicky.
//
@@ -314,7 +313,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
LastError* le = &LastError::get(opCtx->getClient());
le->disable();
diff --git a/src/mongo/db/commands/getmore_cmd.cpp b/src/mongo/db/commands/getmore_cmd.cpp
index 456799b070f..48b77395635 100644
--- a/src/mongo/db/commands/getmore_cmd.cpp
+++ b/src/mongo/db/commands/getmore_cmd.cpp
@@ -150,7 +150,6 @@ public:
const NamespaceString& origNss,
const GetMoreRequest& request,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto curOp = CurOp::get(opCtx);
@@ -399,7 +398,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
// Counted as a getMore, not as a command.
globalOpCounters.gotGetMore();
@@ -415,7 +413,7 @@ public:
return appendCommandStatus(result, parsedRequest.getStatus());
}
auto request = parsedRequest.getValue();
- return runParsed(opCtx, request.nss, request, cmdObj, errmsg, result);
+ return runParsed(opCtx, request.nss, request, cmdObj, result);
}
/**
diff --git a/src/mongo/db/commands/group_cmd.cpp b/src/mongo/db/commands/group_cmd.cpp
index 5aab82e6fd3..880030387c5 100644
--- a/src/mongo/db/commands/group_cmd.cpp
+++ b/src/mongo/db/commands/group_cmd.cpp
@@ -150,7 +150,6 @@ private:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
RARELY {
warning() << "The group command is deprecated. See "
diff --git a/src/mongo/db/commands/hashcmd.cpp b/src/mongo/db/commands/hashcmd.cpp
index 78f76370b15..0b4ebdba718 100644
--- a/src/mongo/db/commands/hashcmd.cpp
+++ b/src/mongo/db/commands/hashcmd.cpp
@@ -50,9 +50,9 @@ using std::string;
using std::stringstream;
// Testing only, enabled via command-line.
-class CmdHashElt : public BasicCommand {
+class CmdHashElt : public ErrmsgCommandDeprecated {
public:
- CmdHashElt() : BasicCommand("_hashBSONElement"){};
+ CmdHashElt() : ErrmsgCommandDeprecated("_hashBSONElement"){};
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
}
@@ -79,11 +79,11 @@ public:
*> "out" : NumberLong(6271151123721111923),
*> "ok" : 1 }
**/
- bool run(OperationContext* opCtx,
- const string& db,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& db,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
result.appendAs(cmdObj.firstElement(), "key");
int seed = 0;
diff --git a/src/mongo/db/commands/haystack.cpp b/src/mongo/db/commands/haystack.cpp
index d8f418b4ccb..be169c7ded3 100644
--- a/src/mongo/db/commands/haystack.cpp
+++ b/src/mongo/db/commands/haystack.cpp
@@ -59,9 +59,9 @@ namespace mongo {
using std::string;
using std::vector;
-class GeoHaystackSearchCommand : public BasicCommand {
+class GeoHaystackSearchCommand : public ErrmsgCommandDeprecated {
public:
- GeoHaystackSearchCommand() : BasicCommand("geoSearch") {}
+ GeoHaystackSearchCommand() : ErrmsgCommandDeprecated("geoSearch") {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
@@ -95,11 +95,11 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString nss = parseNsCollectionRequired(dbname, cmdObj);
AutoGetCollectionForReadCommand ctx(opCtx, nss);
diff --git a/src/mongo/db/commands/index_filter_commands.cpp b/src/mongo/db/commands/index_filter_commands.cpp
index e1fdc732d2e..c7e3b2043bc 100644
--- a/src/mongo/db/commands/index_filter_commands.cpp
+++ b/src/mongo/db/commands/index_filter_commands.cpp
@@ -118,7 +118,6 @@ IndexFilterCommand::IndexFilterCommand(const string& name, const string& helpTex
bool IndexFilterCommand::run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj));
Status status = runIndexFilterCommand(opCtx, nss.ns(), cmdObj, &result);
diff --git a/src/mongo/db/commands/index_filter_commands.h b/src/mongo/db/commands/index_filter_commands.h
index 7cdf97c8205..6a313e1f93c 100644
--- a/src/mongo/db/commands/index_filter_commands.h
+++ b/src/mongo/db/commands/index_filter_commands.h
@@ -66,7 +66,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result);
virtual bool supportsWriteConcern(const BSONObj& cmd) const override;
diff --git a/src/mongo/db/commands/isself.cpp b/src/mongo/db/commands/isself.cpp
index 6186dab0d8b..ed7605f14b7 100644
--- a/src/mongo/db/commands/isself.cpp
+++ b/src/mongo/db/commands/isself.cpp
@@ -57,7 +57,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
result.append("id", repl::instanceId);
return true;
diff --git a/src/mongo/db/commands/kill_op.cpp b/src/mongo/db/commands/kill_op.cpp
index 5cd6b40d4ac..7b07c87f7ba 100644
--- a/src/mongo/db/commands/kill_op.cpp
+++ b/src/mongo/db/commands/kill_op.cpp
@@ -131,7 +131,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final {
long long opId = parseOpId(cmdObj);
diff --git a/src/mongo/db/commands/killcursors_common.cpp b/src/mongo/db/commands/killcursors_common.cpp
index eaa9ec51baf..0dcc262f56f 100644
--- a/src/mongo/db/commands/killcursors_common.cpp
+++ b/src/mongo/db/commands/killcursors_common.cpp
@@ -66,7 +66,6 @@ Status KillCursorsCmdBase::checkAuthForCommand(Client* client,
bool KillCursorsCmdBase::run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto statusWithRequest = KillCursorsRequest::parseFromBSON(dbname, cmdObj);
if (!statusWithRequest.isOK()) {
diff --git a/src/mongo/db/commands/killcursors_common.h b/src/mongo/db/commands/killcursors_common.h
index 281a5be828e..43a0443ff80 100644
--- a/src/mongo/db/commands/killcursors_common.h
+++ b/src/mongo/db/commands/killcursors_common.h
@@ -74,7 +74,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final;
private:
diff --git a/src/mongo/db/commands/list_collections.cpp b/src/mongo/db/commands/list_collections.cpp
index ee972bc64e8..ca13ebffab2 100644
--- a/src/mongo/db/commands/list_collections.cpp
+++ b/src/mongo/db/commands/list_collections.cpp
@@ -232,7 +232,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& jsobj,
- string& errmsg,
BSONObjBuilder& result) {
unique_ptr<MatchExpression> matcher;
diff --git a/src/mongo/db/commands/list_databases.cpp b/src/mongo/db/commands/list_databases.cpp
index fe24e9b8967..b25a13b887b 100644
--- a/src/mongo/db/commands/list_databases.cpp
+++ b/src/mongo/db/commands/list_databases.cpp
@@ -86,7 +86,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& jsobj,
- string& errmsg,
BSONObjBuilder& result) {
// Parse the filter.
std::unique_ptr<MatchExpression> filter;
diff --git a/src/mongo/db/commands/list_indexes.cpp b/src/mongo/db/commands/list_indexes.cpp
index 5502b9add2f..a050e9adfff 100644
--- a/src/mongo/db/commands/list_indexes.cpp
+++ b/src/mongo/db/commands/list_indexes.cpp
@@ -119,7 +119,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString ns(parseNsOrUUID(opCtx, dbname, cmdObj));
const long long defaultBatchSize = std::numeric_limits<long long>::max();
diff --git a/src/mongo/db/commands/lock_info.cpp b/src/mongo/db/commands/lock_info.cpp
index 4becb45fcc0..7273a5ff238 100644
--- a/src/mongo/db/commands/lock_info.cpp
+++ b/src/mongo/db/commands/lock_info.cpp
@@ -82,7 +82,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& jsobj,
- string& errmsg,
BSONObjBuilder& result) {
std::map<LockerId, BSONObj> lockToClientMap;
diff --git a/src/mongo/db/commands/mr.cpp b/src/mongo/db/commands/mr.cpp
index dcb694116a1..cdb8a757068 100644
--- a/src/mongo/db/commands/mr.cpp
+++ b/src/mongo/db/commands/mr.cpp
@@ -1325,9 +1325,9 @@ BSONObj _bailFromJS(const BSONObj& args, void* data) {
/**
* This class represents a map/reduce command executed on a single server
*/
-class MapReduceCommand : public BasicCommand {
+class MapReduceCommand : public ErrmsgCommandDeprecated {
public:
- MapReduceCommand() : BasicCommand("mapReduce", "mapreduce") {}
+ MapReduceCommand() : ErrmsgCommandDeprecated("mapReduce", "mapreduce") {}
virtual bool slaveOk() const {
return repl::getGlobalReplicationCoordinator()->getReplicationMode() !=
@@ -1359,11 +1359,11 @@ public:
addPrivilegesRequiredForMapReduce(this, dbname, cmdObj, out);
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmd,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmd,
+ string& errmsg,
+ BSONObjBuilder& result) {
Timer t;
boost::optional<DisableDocumentValidation> maybeDisableValidation;
@@ -1680,7 +1680,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
if (serverGlobalParams.clusterRole == ClusterRole::ConfigServer) {
return appendCommandStatus(
diff --git a/src/mongo/db/commands/oplog_note.cpp b/src/mongo/db/commands/oplog_note.cpp
index d95301fb484..6802f4843c1 100644
--- a/src/mongo/db/commands/oplog_note.cpp
+++ b/src/mongo/db/commands/oplog_note.cpp
@@ -115,7 +115,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auto replCoord = repl::ReplicationCoordinator::get(opCtx);
if (!replCoord->isReplEnabled()) {
diff --git a/src/mongo/db/commands/parallel_collection_scan.cpp b/src/mongo/db/commands/parallel_collection_scan.cpp
index debd6973295..cfee00e4888 100644
--- a/src/mongo/db/commands/parallel_collection_scan.cpp
+++ b/src/mongo/db/commands/parallel_collection_scan.cpp
@@ -88,7 +88,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString ns(parseNsOrUUID(opCtx, dbname, cmdObj));
diff --git a/src/mongo/db/commands/parameters.cpp b/src/mongo/db/commands/parameters.cpp
index 79d2421553e..2c0164fdae9 100644
--- a/src/mongo/db/commands/parameters.cpp
+++ b/src/mongo/db/commands/parameters.cpp
@@ -63,9 +63,9 @@ void appendParameterNames(stringstream& help) {
}
}
-class CmdGet : public BasicCommand {
+class CmdGet : public ErrmsgCommandDeprecated {
public:
- CmdGet() : BasicCommand("getParameter") {}
+ CmdGet() : ErrmsgCommandDeprecated("getParameter") {}
virtual bool slaveOk() const {
return true;
}
@@ -88,11 +88,11 @@ public:
appendParameterNames(help);
help << "{ getParameter:'*' } to get everything\n";
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
bool all = *cmdObj.firstElement().valuestrsafe() == '*';
int before = result.len();
@@ -112,9 +112,9 @@ public:
}
} cmdGet;
-class CmdSet : public BasicCommand {
+class CmdSet : public ErrmsgCommandDeprecated {
public:
- CmdSet() : BasicCommand("setParameter") {}
+ CmdSet() : ErrmsgCommandDeprecated("setParameter") {}
virtual bool slaveOk() const {
return true;
}
@@ -136,11 +136,11 @@ public:
help << "{ setParameter:1, <param>:<value> }\n";
appendParameterNames(help);
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
int numSet = 0;
bool found = false;
diff --git a/src/mongo/db/commands/pipeline_command.cpp b/src/mongo/db/commands/pipeline_command.cpp
index 651cb2c9c9d..9d0c83e7af9 100644
--- a/src/mongo/db/commands/pipeline_command.cpp
+++ b/src/mongo/db/commands/pipeline_command.cpp
@@ -83,7 +83,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const auto aggregationRequest =
uassertStatusOK(AggregationRequest::parseFromBSON(dbname, cmdObj, boost::none));
diff --git a/src/mongo/db/commands/plan_cache_commands.cpp b/src/mongo/db/commands/plan_cache_commands.cpp
index 7f5e0209695..f66bc7392b2 100644
--- a/src/mongo/db/commands/plan_cache_commands.cpp
+++ b/src/mongo/db/commands/plan_cache_commands.cpp
@@ -113,7 +113,6 @@ PlanCacheCommand::PlanCacheCommand(const string& name,
bool PlanCacheCommand::run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj));
Status status = runPlanCacheCommand(opCtx, nss.ns(), cmdObj, &result);
diff --git a/src/mongo/db/commands/plan_cache_commands.h b/src/mongo/db/commands/plan_cache_commands.h
index 8312e12aa8c..da3400ca863 100644
--- a/src/mongo/db/commands/plan_cache_commands.h
+++ b/src/mongo/db/commands/plan_cache_commands.h
@@ -60,7 +60,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result);
virtual bool supportsWriteConcern(const BSONObj& cmd) const override;
diff --git a/src/mongo/db/commands/rename_collection_cmd.cpp b/src/mongo/db/commands/rename_collection_cmd.cpp
index a5a54249d5a..0afd8e7dce6 100644
--- a/src/mongo/db/commands/rename_collection_cmd.cpp
+++ b/src/mongo/db/commands/rename_collection_cmd.cpp
@@ -56,9 +56,9 @@ using std::stringstream;
namespace {
-class CmdRenameCollection : public BasicCommand {
+class CmdRenameCollection : public ErrmsgCommandDeprecated {
public:
- CmdRenameCollection() : BasicCommand("renameCollection") {}
+ CmdRenameCollection() : ErrmsgCommandDeprecated("renameCollection") {}
virtual bool adminOnly() const {
return true;
}
@@ -85,11 +85,11 @@ public:
}
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const auto sourceNsElt = cmdObj[getName()];
const auto targetNsElt = cmdObj["to"];
diff --git a/src/mongo/db/commands/repair_cursor.cpp b/src/mongo/db/commands/repair_cursor.cpp
index b1b2b7bd963..5154731e423 100644
--- a/src/mongo/db/commands/repair_cursor.cpp
+++ b/src/mongo/db/commands/repair_cursor.cpp
@@ -70,7 +70,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
NamespaceString ns(parseNs(dbname, cmdObj));
diff --git a/src/mongo/db/commands/resize_oplog.cpp b/src/mongo/db/commands/resize_oplog.cpp
index 7166d76c96f..3323cfc996c 100644
--- a/src/mongo/db/commands/resize_oplog.cpp
+++ b/src/mongo/db/commands/resize_oplog.cpp
@@ -84,7 +84,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& jsobj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss("local", "oplog.rs");
Lock::GlobalWrite global(opCtx);
diff --git a/src/mongo/db/commands/server_status.cpp b/src/mongo/db/commands/server_status.cpp
index 8475560432c..1d559708d73 100644
--- a/src/mongo/db/commands/server_status.cpp
+++ b/src/mongo/db/commands/server_status.cpp
@@ -88,7 +88,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
_runCalled = true;
diff --git a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
index b8b4cca670e..002cf2d1bce 100644
--- a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
+++ b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
@@ -85,7 +85,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
const auto version = uassertStatusOK(
FeatureCompatibilityVersionCommandParser::extractVersionFromCommand(getName(), cmdObj));
diff --git a/src/mongo/db/commands/snapshot_management.cpp b/src/mongo/db/commands/snapshot_management.cpp
index e9004704842..8fd1742a792 100644
--- a/src/mongo/db/commands/snapshot_management.cpp
+++ b/src/mongo/db/commands/snapshot_management.cpp
@@ -67,7 +67,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto snapshotManager =
getGlobalServiceContext()->getGlobalStorageEngine()->getSnapshotManager();
@@ -116,7 +115,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto snapshotManager =
getGlobalServiceContext()->getGlobalStorageEngine()->getSnapshotManager();
diff --git a/src/mongo/db/commands/test_commands.cpp b/src/mongo/db/commands/test_commands.cpp
index ffc7bf48466..0b3d1e2091d 100644
--- a/src/mongo/db/commands/test_commands.cpp
+++ b/src/mongo/db/commands/test_commands.cpp
@@ -56,9 +56,9 @@ using std::string;
using std::stringstream;
/* For testing only, not for general use. Enabled via command-line */
-class GodInsert : public BasicCommand {
+class GodInsert : public ErrmsgCommandDeprecated {
public:
- GodInsert() : BasicCommand("godinsert") {}
+ GodInsert() : ErrmsgCommandDeprecated("godinsert") {}
virtual bool adminOnly() const {
return false;
}
@@ -75,11 +75,11 @@ public:
virtual void help(stringstream& help) const {
help << "internal. for testing only.";
}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj));
log() << "test only command godinsert invoked coll:" << nss.coll();
BSONObj obj = cmdObj["obj"].embeddedObjectUserCheck();
@@ -152,7 +152,6 @@ public:
bool run(OperationContext* opCtx,
const string& ns,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
log() << "test only command sleep invoked";
long long millis = 0;
@@ -215,7 +214,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString fullNs = parseNsCollectionRequired(dbname, cmdObj);
if (!fullNs.isValid()) {
@@ -292,7 +290,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss = parseNsCollectionRequired(dbname, cmdObj);
diff --git a/src/mongo/db/commands/top_command.cpp b/src/mongo/db/commands/top_command.cpp
index afb1d3401f3..678bb86b320 100644
--- a/src/mongo/db/commands/top_command.cpp
+++ b/src/mongo/db/commands/top_command.cpp
@@ -68,7 +68,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
{
BSONObjBuilder b(result.subobjStart("totals"));
diff --git a/src/mongo/db/commands/touch.cpp b/src/mongo/db/commands/touch.cpp
index 00bd08dbe50..fe7dd6b0cf5 100644
--- a/src/mongo/db/commands/touch.cpp
+++ b/src/mongo/db/commands/touch.cpp
@@ -53,7 +53,7 @@ namespace mongo {
using std::string;
using std::stringstream;
-class TouchCmd : public BasicCommand {
+class TouchCmd : public ErrmsgCommandDeprecated {
public:
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
@@ -80,13 +80,13 @@ public:
actions.addAction(ActionType::touch);
out->push_back(Privilege(ResourcePattern::forClusterResource(), actions));
}
- TouchCmd() : BasicCommand("touch") {}
+ TouchCmd() : ErrmsgCommandDeprecated("touch") {}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString nss = parseNsCollectionRequired(dbname, cmdObj);
if (!nss.isNormal()) {
errmsg = "bad namespace name";
diff --git a/src/mongo/db/commands/user_management_commands.cpp b/src/mongo/db/commands/user_management_commands.cpp
index ecb54541df1..49926a76e53 100644
--- a/src/mongo/db/commands/user_management_commands.cpp
+++ b/src/mongo/db/commands/user_management_commands.cpp
@@ -619,7 +619,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::CreateOrUpdateUserArgs args;
Status status = auth::parseCreateOrUpdateUserCommands(cmdObj, "createUser", dbname, &args);
@@ -765,7 +764,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::CreateOrUpdateUserArgs args;
Status status = auth::parseCreateOrUpdateUserCommands(cmdObj, "updateUser", dbname, &args);
@@ -882,7 +880,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
UserName userName;
Status status = auth::parseAndValidateDropUserCommand(cmdObj, dbname, &userName);
@@ -950,7 +947,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = auth::parseAndValidateDropAllUsersFromDatabaseCommand(cmdObj, dbname);
if (!status.isOK()) {
@@ -1007,7 +1003,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
std::string userNameString;
std::vector<RoleName> roles;
@@ -1081,7 +1076,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
std::string userNameString;
std::vector<RoleName> roles;
@@ -1159,7 +1153,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::UsersInfoArgs args;
Status status = auth::parseUsersInfoCommand(cmdObj, dbname, &args);
@@ -1272,7 +1265,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::CreateOrUpdateRoleArgs args;
Status status = auth::parseCreateOrUpdateRoleCommands(cmdObj, "createRole", dbname, &args);
@@ -1385,7 +1377,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::CreateOrUpdateRoleArgs args;
Status status = auth::parseCreateOrUpdateRoleCommands(cmdObj, "updateRole", dbname, &args);
@@ -1483,7 +1474,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
RoleName roleName;
@@ -1591,7 +1581,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
RoleName roleName;
PrivilegeVector privilegesToRemove;
@@ -1701,7 +1690,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
std::string roleNameString;
std::vector<RoleName> rolesToAdd;
@@ -1792,7 +1780,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
std::string roleNameString;
std::vector<RoleName> rolesToRemove;
@@ -1882,7 +1869,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
RoleName roleName;
Status status = auth::parseDropRoleCommand(cmdObj, dbname, &roleName);
@@ -2036,7 +2022,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = auth::parseDropAllRolesFromDatabaseCommand(cmdObj, dbname);
if (!status.isOK()) {
@@ -2179,7 +2164,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::RolesInfoArgs args;
Status status = auth::parseRolesInfoCommand(cmdObj, dbname, &args);
@@ -2260,7 +2244,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
AuthorizationManager* authzManager = getGlobalAuthorizationManager();
authzManager->invalidateUserCache();
@@ -2298,7 +2281,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
AuthorizationManager* authzManager = getGlobalAuthorizationManager();
result.append("cacheGeneration", authzManager->getCacheGeneration());
@@ -2675,7 +2657,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::MergeAuthzCollectionsArgs args;
Status status = auth::parseMergeAuthzCollectionsCommand(cmdObj, &args);
@@ -2916,7 +2897,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::AuthSchemaUpgradeArgs parsedArgs;
Status status = auth::parseAuthSchemaUpgradeCommand(cmdObj, dbname, &parsedArgs);
diff --git a/src/mongo/db/commands/validate.cpp b/src/mongo/db/commands/validate.cpp
index a4a5e98b888..b506104cb73 100644
--- a/src/mongo/db/commands/validate.cpp
+++ b/src/mongo/db/commands/validate.cpp
@@ -49,9 +49,9 @@ using std::stringstream;
MONGO_FP_DECLARE(validateCmdCollectionNotValid);
-class ValidateCmd : public BasicCommand {
+class ValidateCmd : public ErrmsgCommandDeprecated {
public:
- ValidateCmd() : BasicCommand("validate") {}
+ ValidateCmd() : ErrmsgCommandDeprecated("validate") {}
virtual bool slaveOk() const {
return true;
@@ -75,11 +75,11 @@ public:
}
//{ validate: "collectionnamewithoutthedbpart" [, scandata: <bool>] [, full: <bool> } */
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
if (MONGO_FAIL_POINT(validateCmdCollectionNotValid)) {
errmsg = "validateCmdCollectionNotValid fail point was triggered";
result.appendBool("valid", false);
diff --git a/src/mongo/db/exec/stagedebug_cmd.cpp b/src/mongo/db/exec/stagedebug_cmd.cpp
index 256dcba59fb..c92408bcbf6 100644
--- a/src/mongo/db/exec/stagedebug_cmd.cpp
+++ b/src/mongo/db/exec/stagedebug_cmd.cpp
@@ -140,7 +140,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
BSONElement argElt = cmdObj["stageDebug"];
if (argElt.eoo() || !argElt.isABSONObj()) {
@@ -479,7 +478,6 @@ public:
// that can only be checked for equality. We ignore this now.
Status s = fam->getSpec().getIndexPrefix(BSONObj(), &params.indexPrefix);
if (!s.isOK()) {
- // errmsg = s.toString();
return NULL;
}
diff --git a/src/mongo/db/ftdc/ftdc_commands.cpp b/src/mongo/db/ftdc/ftdc_commands.cpp
index 312c4204dd8..ba6d7c92af2 100644
--- a/src/mongo/db/ftdc/ftdc_commands.cpp
+++ b/src/mongo/db/ftdc/ftdc_commands.cpp
@@ -91,7 +91,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
result.append(
diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp
index b6cea5fc57e..1567d6dc603 100644
--- a/src/mongo/db/repl/master_slave.cpp
+++ b/src/mongo/db/repl/master_slave.cpp
@@ -383,7 +383,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& ns,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
HandshakeArgs handshake;
Status status = handshake.initialize(cmdObj);
diff --git a/src/mongo/db/repl/repl_set_commands.cpp b/src/mongo/db/repl/repl_set_commands.cpp
index 2c35b250c9a..3d966b8d1b1 100644
--- a/src/mongo/db/repl/repl_set_commands.cpp
+++ b/src/mongo/db/repl/repl_set_commands.cpp
@@ -97,7 +97,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
log() << "replSetTest command received: " << cmdObj.toString();
@@ -165,7 +164,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -192,7 +190,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
if (cmdObj["forShell"].trueValue())
LastError::get(opCtx->getClient()).disable();
@@ -233,7 +230,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -332,7 +328,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
BSONObj configObj;
if (cmdObj["replSetInitiate"].type() == Object) {
@@ -408,7 +403,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK()) {
@@ -416,7 +410,7 @@ public:
}
if (cmdObj["replSetReconfig"].type() != Object) {
- errmsg = "no configuration specified";
+ result.append("errmsg", "no configuration specified");
return false;
}
@@ -464,7 +458,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -495,7 +488,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -560,7 +552,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -588,7 +579,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -616,7 +606,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auto replCoord = repl::ReplicationCoordinator::get(opCtx->getClient()->getServiceContext());
@@ -715,7 +704,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
MONGO_FAIL_POINT_BLOCK(rsDelayHeartbeatResponse, delay) {
const BSONObj& data = delay.getData();
@@ -801,7 +789,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -833,7 +820,6 @@ private:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
DEV log() << "received elect msg " << cmdObj.toString();
else LOG(2) << "received elect msg " << cmdObj.toString();
@@ -866,7 +852,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
@@ -902,7 +887,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK())
diff --git a/src/mongo/db/repl/repl_set_request_votes.cpp b/src/mongo/db/repl/repl_set_request_votes.cpp
index 7914e8aed01..57bf4a9a537 100644
--- a/src/mongo/db/repl/repl_set_request_votes.cpp
+++ b/src/mongo/db/repl/repl_set_request_votes.cpp
@@ -50,7 +50,6 @@ private:
bool run(OperationContext* opCtx,
const std::string&,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final {
Status status = getGlobalReplicationCoordinator()->checkReplEnabledForCommand(&result);
if (!status.isOK()) {
diff --git a/src/mongo/db/repl/replication_info.cpp b/src/mongo/db/repl/replication_info.cpp
index 723c75c1b04..9717c56d921 100644
--- a/src/mongo/db/repl/replication_info.cpp
+++ b/src/mongo/db/repl/replication_info.cpp
@@ -234,7 +234,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
/* currently request to arbiter is (somewhat arbitrarily) an ismaster request that is not
authenticated.
diff --git a/src/mongo/db/repl/resync.cpp b/src/mongo/db/repl/resync.cpp
index 68f85a7af0e..c18c26bfd46 100644
--- a/src/mongo/db/repl/resync.cpp
+++ b/src/mongo/db/repl/resync.cpp
@@ -48,7 +48,7 @@ constexpr StringData kWaitFieldName = "wait"_sd;
} // namespace
// operator requested resynchronization of replication (on a slave or secondary). {resync: 1}
-class CmdResync : public BasicCommand {
+class CmdResync : public ErrmsgCommandDeprecated {
public:
virtual bool slaveOk() const {
return true;
@@ -71,12 +71,12 @@ public:
h << "resync (from scratch) a stale slave or replica set secondary node.\n";
}
- CmdResync() : BasicCommand(kResyncFieldName) {}
- virtual bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ CmdResync() : ErrmsgCommandDeprecated(kResyncFieldName) {}
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
bool waitForResync = !cmdObj.hasField(kWaitFieldName) || cmdObj[kWaitFieldName].trueValue();
// Replica set resync.
diff --git a/src/mongo/db/s/check_sharding_index_command.cpp b/src/mongo/db/s/check_sharding_index_command.cpp
index 576bb7bbc72..f05e036d55c 100644
--- a/src/mongo/db/s/check_sharding_index_command.cpp
+++ b/src/mongo/db/s/check_sharding_index_command.cpp
@@ -54,9 +54,9 @@ namespace dps = ::mongo::dotted_path_support;
namespace {
-class CheckShardingIndex : public BasicCommand {
+class CheckShardingIndex : public ErrmsgCommandDeprecated {
public:
- CheckShardingIndex() : BasicCommand("checkShardingIndex") {}
+ CheckShardingIndex() : ErrmsgCommandDeprecated("checkShardingIndex") {}
virtual void help(std::stringstream& help) const {
help << "Internal command.\n";
@@ -82,11 +82,11 @@ public:
return parseNsFullyQualified(dbname, cmdObj);
}
- bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& jsobj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& jsobj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
const NamespaceString nss = NamespaceString(parseNs(dbname, jsobj));
BSONObj keyPattern = jsobj.getObjectField("keyPattern");
diff --git a/src/mongo/db/s/cleanup_orphaned_cmd.cpp b/src/mongo/db/s/cleanup_orphaned_cmd.cpp
index a7af78a64f8..c5b1582a7d3 100644
--- a/src/mongo/db/s/cleanup_orphaned_cmd.cpp
+++ b/src/mongo/db/s/cleanup_orphaned_cmd.cpp
@@ -168,9 +168,9 @@ CleanupResult cleanupOrphanedData(OperationContext* opCtx,
* writeConcern: { <writeConcern options> }
* }
*/
-class CleanupOrphanedCommand : public BasicCommand {
+class CleanupOrphanedCommand : public ErrmsgCommandDeprecated {
public:
- CleanupOrphanedCommand() : BasicCommand("cleanupOrphaned") {}
+ CleanupOrphanedCommand() : ErrmsgCommandDeprecated("cleanupOrphaned") {}
virtual bool slaveOk() const {
return false;
@@ -203,11 +203,11 @@ public:
// Output
static BSONField<BSONObj> stoppedAtKeyField;
- bool run(OperationContext* opCtx,
- string const& db,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ string const& db,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
string ns;
if (!FieldParser::extract(cmdObj, nsField, &ns, &errmsg)) {
return false;
diff --git a/src/mongo/db/s/config/configsvr_add_shard_command.cpp b/src/mongo/db/s/config/configsvr_add_shard_command.cpp
index 6459347f185..e568ccb0a89 100644
--- a/src/mongo/db/s/config/configsvr_add_shard_command.cpp
+++ b/src/mongo/db/s/config/configsvr_add_shard_command.cpp
@@ -89,7 +89,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& unusedDbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) {
return appendCommandStatus(
diff --git a/src/mongo/db/s/config/configsvr_add_shard_to_zone_command.cpp b/src/mongo/db/s/config/configsvr_add_shard_to_zone_command.cpp
index d5bbc204458..50d0779737f 100644
--- a/src/mongo/db/s/config/configsvr_add_shard_to_zone_command.cpp
+++ b/src/mongo/db/s/config/configsvr_add_shard_to_zone_command.cpp
@@ -90,7 +90,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& unusedDbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) {
uasserted(ErrorCodes::IllegalOperation,
diff --git a/src/mongo/db/s/config/configsvr_commit_chunk_migration_command.cpp b/src/mongo/db/s/config/configsvr_commit_chunk_migration_command.cpp
index 7cdb5a8522b..4581f2d9b9e 100644
--- a/src/mongo/db/s/config/configsvr_commit_chunk_migration_command.cpp
+++ b/src/mongo/db/s/config/configsvr_commit_chunk_migration_command.cpp
@@ -120,7 +120,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss = NamespaceString(parseNs(dbName, cmdObj));
diff --git a/src/mongo/db/s/config/configsvr_control_balancer_command.cpp b/src/mongo/db/s/config/configsvr_control_balancer_command.cpp
index 01b348367a9..f264d07b821 100644
--- a/src/mongo/db/s/config/configsvr_control_balancer_command.cpp
+++ b/src/mongo/db/s/config/configsvr_control_balancer_command.cpp
@@ -75,7 +75,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& unusedDbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final {
uassert(ErrorCodes::InternalError,
str::stream() << "Expected to find a " << getName() << " command, but found "
diff --git a/src/mongo/db/s/config/configsvr_merge_chunk_command.cpp b/src/mongo/db/s/config/configsvr_merge_chunk_command.cpp
index c9b92fc8160..5dbc9401d58 100644
--- a/src/mongo/db/s/config/configsvr_merge_chunk_command.cpp
+++ b/src/mongo/db/s/config/configsvr_merge_chunk_command.cpp
@@ -101,7 +101,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) {
uasserted(ErrorCodes::IllegalOperation,
diff --git a/src/mongo/db/s/config/configsvr_move_chunk_command.cpp b/src/mongo/db/s/config/configsvr_move_chunk_command.cpp
index 9ebc98537a0..7156a604fd5 100644
--- a/src/mongo/db/s/config/configsvr_move_chunk_command.cpp
+++ b/src/mongo/db/s/config/configsvr_move_chunk_command.cpp
@@ -81,7 +81,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& unusedDbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
auto request = uassertStatusOK(BalanceChunkRequest::parseFromConfigCommand(cmdObj));
diff --git a/src/mongo/db/s/config/configsvr_move_primary_command.cpp b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
index d663c4d56e0..227c6b05bc5 100644
--- a/src/mongo/db/s/config/configsvr_move_primary_command.cpp
+++ b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
@@ -101,8 +101,7 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname_unused,
const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ BSONObjBuilder& result) override {
if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) {
return appendCommandStatus(
diff --git a/src/mongo/db/s/config/configsvr_remove_shard_from_zone_command.cpp b/src/mongo/db/s/config/configsvr_remove_shard_from_zone_command.cpp
index e053985255a..7ca7c14ebbd 100644
--- a/src/mongo/db/s/config/configsvr_remove_shard_from_zone_command.cpp
+++ b/src/mongo/db/s/config/configsvr_remove_shard_from_zone_command.cpp
@@ -90,7 +90,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& unusedDbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) {
uasserted(ErrorCodes::IllegalOperation,
diff --git a/src/mongo/db/s/config/configsvr_set_feature_compatibility_version_command.cpp b/src/mongo/db/s/config/configsvr_set_feature_compatibility_version_command.cpp
index 021f19d62e5..233f5678bca 100644
--- a/src/mongo/db/s/config/configsvr_set_feature_compatibility_version_command.cpp
+++ b/src/mongo/db/s/config/configsvr_set_feature_compatibility_version_command.cpp
@@ -94,7 +94,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& unusedDbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const auto version = uassertStatusOK(
FeatureCompatibilityVersionCommandParser::extractVersionFromCommand(getName(), cmdObj));
diff --git a/src/mongo/db/s/config/configsvr_shard_collection_command.cpp b/src/mongo/db/s/config/configsvr_shard_collection_command.cpp
index 4bf43a0635b..44eb62c753b 100644
--- a/src/mongo/db/s/config/configsvr_shard_collection_command.cpp
+++ b/src/mongo/db/s/config/configsvr_shard_collection_command.cpp
@@ -163,7 +163,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
uassert(ErrorCodes::IllegalOperation,
diff --git a/src/mongo/db/s/config/configsvr_split_chunk_command.cpp b/src/mongo/db/s/config/configsvr_split_chunk_command.cpp
index acfd59c1cf2..10cc59c6d4c 100644
--- a/src/mongo/db/s/config/configsvr_split_chunk_command.cpp
+++ b/src/mongo/db/s/config/configsvr_split_chunk_command.cpp
@@ -99,7 +99,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) {
uasserted(ErrorCodes::IllegalOperation,
diff --git a/src/mongo/db/s/config/configsvr_update_zone_key_range_command.cpp b/src/mongo/db/s/config/configsvr_update_zone_key_range_command.cpp
index 488e432f2eb..f41ce235507 100644
--- a/src/mongo/db/s/config/configsvr_update_zone_key_range_command.cpp
+++ b/src/mongo/db/s/config/configsvr_update_zone_key_range_command.cpp
@@ -92,7 +92,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& unusedDbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) {
uasserted(ErrorCodes::IllegalOperation,
diff --git a/src/mongo/db/s/force_routing_table_refresh_command.cpp b/src/mongo/db/s/force_routing_table_refresh_command.cpp
index b863fa677b8..6d144041702 100644
--- a/src/mongo/db/s/force_routing_table_refresh_command.cpp
+++ b/src/mongo/db/s/force_routing_table_refresh_command.cpp
@@ -107,7 +107,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto shardingState = ShardingState::get(opCtx);
uassertStatusOK(shardingState->canAcceptShardedCommands());
diff --git a/src/mongo/db/s/get_shard_version_command.cpp b/src/mongo/db/s/get_shard_version_command.cpp
index 7808b08005a..f400d9f31bc 100644
--- a/src/mongo/db/s/get_shard_version_command.cpp
+++ b/src/mongo/db/s/get_shard_version_command.cpp
@@ -85,7 +85,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbname, cmdObj));
uassert(ErrorCodes::InvalidNamespace,
diff --git a/src/mongo/db/s/merge_chunks_command.cpp b/src/mongo/db/s/merge_chunks_command.cpp
index 13286839627..211ae01117c 100644
--- a/src/mongo/db/s/merge_chunks_command.cpp
+++ b/src/mongo/db/s/merge_chunks_command.cpp
@@ -319,9 +319,9 @@ Status mergeChunks(OperationContext* opCtx,
return Status::OK();
}
-class MergeChunksCommand : public BasicCommand {
+class MergeChunksCommand : public ErrmsgCommandDeprecated {
public:
- MergeChunksCommand() : BasicCommand("mergeChunks") {}
+ MergeChunksCommand() : ErrmsgCommandDeprecated("mergeChunks") {}
void help(stringstream& h) const override {
h << "Merge Chunks command\n"
@@ -361,11 +361,11 @@ public:
// Optional, if the merge is only valid for a particular epoch
static BSONField<OID> epochField;
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) override {
uassertStatusOK(ShardingState::get(opCtx)->canAcceptShardedCommands());
string ns = parseNs(dbname, cmdObj);
diff --git a/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp b/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp
index 5ccadd3f724..9e3e83774ee 100644
--- a/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp
+++ b/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp
@@ -142,7 +142,6 @@ public:
bool run(OperationContext* opCtx,
const std::string&,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
const MigrationSessionId migrationSessionId(
uassertStatusOK(MigrationSessionId::extractFromBSON(cmdObj)));
@@ -205,7 +204,6 @@ public:
bool run(OperationContext* opCtx,
const std::string&,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
const MigrationSessionId migrationSessionId(
uassertStatusOK(MigrationSessionId::extractFromBSON(cmdObj)));
diff --git a/src/mongo/db/s/migration_destination_manager_legacy_commands.cpp b/src/mongo/db/s/migration_destination_manager_legacy_commands.cpp
index 5bbd09cdddb..d7d1a351973 100644
--- a/src/mongo/db/s/migration_destination_manager_legacy_commands.cpp
+++ b/src/mongo/db/s/migration_destination_manager_legacy_commands.cpp
@@ -55,9 +55,9 @@ using std::string;
namespace {
-class RecvChunkStartCommand : public BasicCommand {
+class RecvChunkStartCommand : public ErrmsgCommandDeprecated {
public:
- RecvChunkStartCommand() : BasicCommand("_recvChunkStart") {}
+ RecvChunkStartCommand() : ErrmsgCommandDeprecated("_recvChunkStart") {}
void help(std::stringstream& h) const {
h << "internal";
@@ -84,11 +84,11 @@ public:
out->push_back(Privilege(ResourcePattern::forClusterResource(), actions));
}
- bool run(OperationContext* opCtx,
- const string&,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const string&,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
auto shardingState = ShardingState::get(opCtx);
uassertStatusOK(shardingState->canAcceptShardedCommands());
@@ -187,7 +187,6 @@ public:
bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
ShardingState::get(opCtx)->migrationDestinationManager()->report(result);
return true;
@@ -227,7 +226,6 @@ public:
bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auto const sessionId = uassertStatusOK(MigrationSessionId::extractFromBSON(cmdObj));
auto mdm = ShardingState::get(opCtx)->migrationDestinationManager();
@@ -274,7 +272,6 @@ public:
bool run(OperationContext* opCtx,
const string&,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auto const mdm = ShardingState::get(opCtx)->migrationDestinationManager();
diff --git a/src/mongo/db/s/move_chunk_command.cpp b/src/mongo/db/s/move_chunk_command.cpp
index b7d52f5058e..eb14fb36943 100644
--- a/src/mongo/db/s/move_chunk_command.cpp
+++ b/src/mongo/db/s/move_chunk_command.cpp
@@ -116,7 +116,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
auto shardingState = ShardingState::get(opCtx);
uassertStatusOK(shardingState->canAcceptShardedCommands());
diff --git a/src/mongo/db/s/set_shard_version_command.cpp b/src/mongo/db/s/set_shard_version_command.cpp
index 56675280e5f..c1af7de81b0 100644
--- a/src/mongo/db/s/set_shard_version_command.cpp
+++ b/src/mongo/db/s/set_shard_version_command.cpp
@@ -60,9 +60,9 @@ using str::stream;
namespace {
-class SetShardVersion : public BasicCommand {
+class SetShardVersion : public ErrmsgCommandDeprecated {
public:
- SetShardVersion() : BasicCommand("setShardVersion") {}
+ SetShardVersion() : ErrmsgCommandDeprecated("setShardVersion") {}
void help(std::stringstream& help) const override {
help << "internal";
@@ -88,11 +88,11 @@ public:
out->push_back(Privilege(ResourcePattern::forClusterResource(), actions));
}
- bool run(OperationContext* opCtx,
- const std::string&,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string&,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) {
uassert(ErrorCodes::IllegalOperation,
"can't issue setShardVersion from 'eval'",
!opCtx->getClient()->isInDirectClient());
diff --git a/src/mongo/db/s/sharding_state_command.cpp b/src/mongo/db/s/sharding_state_command.cpp
index 8bb4e5fc8b3..4a2e546ac76 100644
--- a/src/mongo/db/s/sharding_state_command.cpp
+++ b/src/mongo/db/s/sharding_state_command.cpp
@@ -70,7 +70,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
ShardingState::get(opCtx)->appendInfo(opCtx, result);
return true;
diff --git a/src/mongo/db/s/split_chunk_command.cpp b/src/mongo/db/s/split_chunk_command.cpp
index 2830a77915d..cc3b5dba493 100644
--- a/src/mongo/db/s/split_chunk_command.cpp
+++ b/src/mongo/db/s/split_chunk_command.cpp
@@ -130,9 +130,9 @@ bool _checkMetadataForSuccess(OperationContext* opCtx,
return true;
}
-class SplitChunkCommand : public BasicCommand {
+class SplitChunkCommand : public ErrmsgCommandDeprecated {
public:
- SplitChunkCommand() : BasicCommand("splitChunk") {}
+ SplitChunkCommand() : ErrmsgCommandDeprecated("splitChunk") {}
void help(std::stringstream& help) const override {
help << "internal command usage only\n"
@@ -167,11 +167,11 @@ public:
return parseNsFullyQualified(dbname, cmdObj);
}
- bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) override {
auto shardingState = ShardingState::get(opCtx);
uassertStatusOK(shardingState->canAcceptShardedCommands());
diff --git a/src/mongo/db/s/split_vector_command.cpp b/src/mongo/db/s/split_vector_command.cpp
index a01287bf773..3b2581c5093 100644
--- a/src/mongo/db/s/split_vector_command.cpp
+++ b/src/mongo/db/s/split_vector_command.cpp
@@ -69,9 +69,9 @@ BSONObj prettyKey(const BSONObj& keyPattern, const BSONObj& key) {
return key.replaceFieldNames(keyPattern).clientReadable();
}
-class SplitVector : public BasicCommand {
+class SplitVector : public ErrmsgCommandDeprecated {
public:
- SplitVector() : BasicCommand("splitVector") {}
+ SplitVector() : ErrmsgCommandDeprecated("splitVector") {}
bool supportsWriteConcern(const BSONObj& cmd) const override {
return false;
@@ -111,11 +111,11 @@ public:
return parseNsFullyQualified(dbname, cmdObj);
}
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& jsobj,
- string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& jsobj,
+ string& errmsg,
+ BSONObjBuilder& result) override {
//
// 1.a We'll parse the parameters in two steps. First, make sure the we can use the split
// index to get a good approximation of the size of the chunk -- without needing to
diff --git a/src/mongo/db/s/unset_sharding_command.cpp b/src/mongo/db/s/unset_sharding_command.cpp
index 18bf30403a5..81c6bb6c638 100644
--- a/src/mongo/db/s/unset_sharding_command.cpp
+++ b/src/mongo/db/s/unset_sharding_command.cpp
@@ -75,7 +75,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
ShardedConnectionInfo::reset(opCtx->getClient());
return true;
diff --git a/src/mongo/db/storage/mmap_v1/journal_latency_test_cmd.cpp b/src/mongo/db/storage/mmap_v1/journal_latency_test_cmd.cpp
index 828b5d44abd..6a94fc2d0b1 100644
--- a/src/mongo/db/storage/mmap_v1/journal_latency_test_cmd.cpp
+++ b/src/mongo/db/storage/mmap_v1/journal_latency_test_cmd.cpp
@@ -87,7 +87,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
boost::filesystem::path p = dur::getJournalDir();
p /= "journalLatencyTest";
diff --git a/src/mongo/s/client/shard_connection.cpp b/src/mongo/s/client/shard_connection.cpp
index 274857ec995..940b88522ae 100644
--- a/src/mongo/s/client/shard_connection.cpp
+++ b/src/mongo/s/client/shard_connection.cpp
@@ -114,7 +114,6 @@ public:
virtual bool run(OperationContext* opCtx,
const string& dbname,
const mongo::BSONObj& cmdObj,
- std::string& errmsg,
mongo::BSONObjBuilder& result) {
// Connection information
executor::ConnectionPoolStats stats{};
diff --git a/src/mongo/s/commands/cluster_add_shard_cmd.cpp b/src/mongo/s/commands/cluster_add_shard_cmd.cpp
index 6b6ed92ae98..458e5a40f76 100644
--- a/src/mongo/s/commands/cluster_add_shard_cmd.cpp
+++ b/src/mongo/s/commands/cluster_add_shard_cmd.cpp
@@ -83,7 +83,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto parsedRequest = uassertStatusOK(AddShardRequest::parseFromMongosCommand(cmdObj));
diff --git a/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp b/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
index e16b79b3c67..d05c086d75a 100644
--- a/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
+++ b/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
@@ -99,7 +99,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto parsedRequest = uassertStatusOK(AddShardToZoneRequest::parseFromMongosCommand(cmdObj));
diff --git a/src/mongo/s/commands/cluster_apply_ops_cmd.cpp b/src/mongo/s/commands/cluster_apply_ops_cmd.cpp
index 62c88d41e8c..f2f67b37c3a 100644
--- a/src/mongo/s/commands/cluster_apply_ops_cmd.cpp
+++ b/src/mongo/s/commands/cluster_apply_ops_cmd.cpp
@@ -59,7 +59,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
uasserted(ErrorCodes::CommandNotSupported, "applyOps not allowed through mongos");
}
diff --git a/src/mongo/s/commands/cluster_available_query_options_cmd.cpp b/src/mongo/s/commands/cluster_available_query_options_cmd.cpp
index c0851ba1d22..d209c2ace34 100644
--- a/src/mongo/s/commands/cluster_available_query_options_cmd.cpp
+++ b/src/mongo/s/commands/cluster_available_query_options_cmd.cpp
@@ -56,7 +56,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
result << "options" << QueryOption_AllSupportedForSharding;
return true;
diff --git a/src/mongo/s/commands/cluster_compact_cmd.cpp b/src/mongo/s/commands/cluster_compact_cmd.cpp
index c668bc3152d..3d933804c49 100644
--- a/src/mongo/s/commands/cluster_compact_cmd.cpp
+++ b/src/mongo/s/commands/cluster_compact_cmd.cpp
@@ -60,7 +60,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
uasserted(ErrorCodes::CommandNotSupported, "compact not allowed through mongos");
}
diff --git a/src/mongo/s/commands/cluster_control_balancer_cmd.cpp b/src/mongo/s/commands/cluster_control_balancer_cmd.cpp
index 6df5d8c5ebe..65d955efc8f 100644
--- a/src/mongo/s/commands/cluster_control_balancer_cmd.cpp
+++ b/src/mongo/s/commands/cluster_control_balancer_cmd.cpp
@@ -80,7 +80,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
auto configShard = Grid::get(opCtx)->shardRegistry()->getConfigShard();
auto cmdResponse = uassertStatusOK(
diff --git a/src/mongo/s/commands/cluster_count_cmd.cpp b/src/mongo/s/commands/cluster_count_cmd.cpp
index d90f3156e36..107f006d789 100644
--- a/src/mongo/s/commands/cluster_count_cmd.cpp
+++ b/src/mongo/s/commands/cluster_count_cmd.cpp
@@ -47,9 +47,9 @@
namespace mongo {
namespace {
-class ClusterCountCmd : public BasicCommand {
+class ClusterCountCmd : public ErrmsgCommandDeprecated {
public:
- ClusterCountCmd() : BasicCommand("count") {}
+ ClusterCountCmd() : ErrmsgCommandDeprecated("count") {}
bool slaveOk() const override {
return true;
@@ -71,11 +71,11 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
- bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbname, cmdObj));
uassert(ErrorCodes::InvalidNamespace,
str::stream() << "Invalid namespace specified '" << nss.ns() << "'",
diff --git a/src/mongo/s/commands/cluster_db_stats_cmd.cpp b/src/mongo/s/commands/cluster_db_stats_cmd.cpp
index 1da192120c5..abb1e5810f7 100644
--- a/src/mongo/s/commands/cluster_db_stats_cmd.cpp
+++ b/src/mongo/s/commands/cluster_db_stats_cmd.cpp
@@ -40,9 +40,9 @@ namespace {
using std::vector;
-class DBStatsCmd : public BasicCommand {
+class DBStatsCmd : public ErrmsgCommandDeprecated {
public:
- DBStatsCmd() : BasicCommand("dbStats", "dbstats") {}
+ DBStatsCmd() : ErrmsgCommandDeprecated("dbStats", "dbstats") {}
bool slaveOk() const override {
return true;
@@ -63,11 +63,11 @@ public:
return false;
}
- bool run(OperationContext* opCtx,
- const std::string& dbName,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& output) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbName,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& output) override {
auto shardResponses =
uassertStatusOK(scatterGather(opCtx,
dbName,
diff --git a/src/mongo/s/commands/cluster_drop_cmd.cpp b/src/mongo/s/commands/cluster_drop_cmd.cpp
index 61579466220..109ba3f2458 100644
--- a/src/mongo/s/commands/cluster_drop_cmd.cpp
+++ b/src/mongo/s/commands/cluster_drop_cmd.cpp
@@ -73,7 +73,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj));
diff --git a/src/mongo/s/commands/cluster_drop_database_cmd.cpp b/src/mongo/s/commands/cluster_drop_database_cmd.cpp
index 26ed92309f0..dd46027ef37 100644
--- a/src/mongo/s/commands/cluster_drop_database_cmd.cpp
+++ b/src/mongo/s/commands/cluster_drop_database_cmd.cpp
@@ -72,7 +72,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
uassert(ErrorCodes::IllegalOperation,
"Cannot drop the config database",
diff --git a/src/mongo/s/commands/cluster_enable_sharding_cmd.cpp b/src/mongo/s/commands/cluster_enable_sharding_cmd.cpp
index d6fbfb44381..d7fa8e95ed1 100644
--- a/src/mongo/s/commands/cluster_enable_sharding_cmd.cpp
+++ b/src/mongo/s/commands/cluster_enable_sharding_cmd.cpp
@@ -47,9 +47,9 @@
namespace mongo {
namespace {
-class EnableShardingCmd : public BasicCommand {
+class EnableShardingCmd : public ErrmsgCommandDeprecated {
public:
- EnableShardingCmd() : BasicCommand("enableSharding", "enablesharding") {}
+ EnableShardingCmd() : ErrmsgCommandDeprecated("enableSharding", "enablesharding") {}
virtual bool slaveOk() const {
return true;
@@ -86,11 +86,11 @@ public:
return cmdObj.firstElement().str();
}
- virtual bool run(OperationContext* opCtx,
- const std::string& dbname_unused,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname_unused,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
const std::string dbname = parseNs("", cmdObj);
uassert(
diff --git a/src/mongo/s/commands/cluster_explain_cmd.cpp b/src/mongo/s/commands/cluster_explain_cmd.cpp
index 547a8b33e74..6397a2d3f07 100644
--- a/src/mongo/s/commands/cluster_explain_cmd.cpp
+++ b/src/mongo/s/commands/cluster_explain_cmd.cpp
@@ -108,7 +108,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto verbosity = ExplainOptions::parseCmdBSON(cmdObj);
if (!verbosity.isOK()) {
diff --git a/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp b/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp
index 3ce88868f6b..c56599ad383 100644
--- a/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp
+++ b/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp
@@ -156,7 +156,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss = parseNsCollectionRequired(dbName, cmdObj);
diff --git a/src/mongo/s/commands/cluster_find_cmd.cpp b/src/mongo/s/commands/cluster_find_cmd.cpp
index 9e5cb80138d..381638eca5b 100644
--- a/src/mongo/s/commands/cluster_find_cmd.cpp
+++ b/src/mongo/s/commands/cluster_find_cmd.cpp
@@ -152,7 +152,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final {
// We count find command as a query op.
globalOpCounters.gotQuery();
diff --git a/src/mongo/s/commands/cluster_flush_router_config_cmd.cpp b/src/mongo/s/commands/cluster_flush_router_config_cmd.cpp
index 40522351d6b..89717969365 100644
--- a/src/mongo/s/commands/cluster_flush_router_config_cmd.cpp
+++ b/src/mongo/s/commands/cluster_flush_router_config_cmd.cpp
@@ -67,7 +67,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
Grid::get(opCtx)->catalogCache()->purgeAllDatabases();
diff --git a/src/mongo/s/commands/cluster_fsync_cmd.cpp b/src/mongo/s/commands/cluster_fsync_cmd.cpp
index 9928576cc89..691b6c41caf 100644
--- a/src/mongo/s/commands/cluster_fsync_cmd.cpp
+++ b/src/mongo/s/commands/cluster_fsync_cmd.cpp
@@ -38,9 +38,9 @@
namespace mongo {
namespace {
-class FsyncCommand : public BasicCommand {
+class FsyncCommand : public ErrmsgCommandDeprecated {
public:
- FsyncCommand() : BasicCommand("fsync", "fsync") {}
+ FsyncCommand() : ErrmsgCommandDeprecated("fsync", "fsync") {}
virtual bool slaveOk() const {
return true;
@@ -67,11 +67,11 @@ public:
out->push_back(Privilege(ResourcePattern::forClusterResource(), actions));
}
- virtual bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
if (cmdObj["lock"].trueValue()) {
errmsg = "can't do lock through mongos";
return false;
diff --git a/src/mongo/s/commands/cluster_ftdc_commands.cpp b/src/mongo/s/commands/cluster_ftdc_commands.cpp
index d87f5529fdc..14b087d446f 100644
--- a/src/mongo/s/commands/cluster_ftdc_commands.cpp
+++ b/src/mongo/s/commands/cluster_ftdc_commands.cpp
@@ -44,9 +44,9 @@ namespace {
* getDiagnosticData is a MongoD only command. We implement in MongoS to give users a better error
* message.
*/
-class GetDiagnosticDataCommand final : public BasicCommand {
+class GetDiagnosticDataCommand final : public ErrmsgCommandDeprecated {
public:
- GetDiagnosticDataCommand() : BasicCommand("getDiagnosticData") {}
+ GetDiagnosticDataCommand() : ErrmsgCommandDeprecated("getDiagnosticData") {}
bool adminOnly() const override {
return true;
@@ -92,11 +92,11 @@ public:
return Status::OK();
}
- bool run(OperationContext* opCtx,
- const std::string& db,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& db,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) override {
result.append(
"data",
diff --git a/src/mongo/s/commands/cluster_get_last_error_cmd.cpp b/src/mongo/s/commands/cluster_get_last_error_cmd.cpp
index 8633618dd4c..e8ea9c593de 100644
--- a/src/mongo/s/commands/cluster_get_last_error_cmd.cpp
+++ b/src/mongo/s/commands/cluster_get_last_error_cmd.cpp
@@ -209,7 +209,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
// Mongos GLE - finicky.
//
diff --git a/src/mongo/s/commands/cluster_get_prev_error_cmd.cpp b/src/mongo/s/commands/cluster_get_prev_error_cmd.cpp
index 0dd37af4ae4..3d4ed9a44ca 100644
--- a/src/mongo/s/commands/cluster_get_prev_error_cmd.cpp
+++ b/src/mongo/s/commands/cluster_get_prev_error_cmd.cpp
@@ -38,9 +38,9 @@
namespace mongo {
namespace {
-class GetPrevErrorCmd : public BasicCommand {
+class GetPrevErrorCmd : public ErrmsgCommandDeprecated {
public:
- GetPrevErrorCmd() : BasicCommand("getPrevError", "getpreverror") {}
+ GetPrevErrorCmd() : ErrmsgCommandDeprecated("getPrevError", "getpreverror") {}
virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
@@ -61,11 +61,11 @@ public:
// No auth required
}
- virtual bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
errmsg += "getpreverror not supported for sharded environments";
return false;
}
diff --git a/src/mongo/s/commands/cluster_get_shard_map_cmd.cpp b/src/mongo/s/commands/cluster_get_shard_map_cmd.cpp
index 37f63803f1a..b264f000479 100644
--- a/src/mongo/s/commands/cluster_get_shard_map_cmd.cpp
+++ b/src/mongo/s/commands/cluster_get_shard_map_cmd.cpp
@@ -70,7 +70,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
// MongoD instances do not know that they are part of a sharded cluster until they
// receive a setShardVersion command and that's when the catalog manager and the shard
diff --git a/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp b/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp
index f7ea6c50c70..6758342d307 100644
--- a/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp
+++ b/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp
@@ -82,7 +82,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbname, cmdObj));
diff --git a/src/mongo/s/commands/cluster_getmore_cmd.cpp b/src/mongo/s/commands/cluster_getmore_cmd.cpp
index 664d4ade18a..dcf15e263ac 100644
--- a/src/mongo/s/commands/cluster_getmore_cmd.cpp
+++ b/src/mongo/s/commands/cluster_getmore_cmd.cpp
@@ -94,7 +94,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final {
// Counted as a getMore, not as a command.
globalOpCounters.gotGetMore();
diff --git a/src/mongo/s/commands/cluster_index_filter_cmd.cpp b/src/mongo/s/commands/cluster_index_filter_cmd.cpp
index 9d114bccdba..b050368e3a0 100644
--- a/src/mongo/s/commands/cluster_index_filter_cmd.cpp
+++ b/src/mongo/s/commands/cluster_index_filter_cmd.cpp
@@ -94,7 +94,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
const NamespaceString nss(parseNs(dbname, cmdObj));
uassert(ErrorCodes::InvalidNamespace,
diff --git a/src/mongo/s/commands/cluster_is_db_grid_cmd.cpp b/src/mongo/s/commands/cluster_is_db_grid_cmd.cpp
index 9926799772c..308bfb4a2da 100644
--- a/src/mongo/s/commands/cluster_is_db_grid_cmd.cpp
+++ b/src/mongo/s/commands/cluster_is_db_grid_cmd.cpp
@@ -55,7 +55,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
result.append("isdbgrid", 1);
result.append("hostname", getHostNameCached());
diff --git a/src/mongo/s/commands/cluster_is_master_cmd.cpp b/src/mongo/s/commands/cluster_is_master_cmd.cpp
index b2a294f81b3..0209981de08 100644
--- a/src/mongo/s/commands/cluster_is_master_cmd.cpp
+++ b/src/mongo/s/commands/cluster_is_master_cmd.cpp
@@ -70,7 +70,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto& clientMetadataIsMasterState = ClientMetadataIsMasterState::get(opCtx->getClient());
diff --git a/src/mongo/s/commands/cluster_kill_op.cpp b/src/mongo/s/commands/cluster_kill_op.cpp
index 871dd20bfe0..9ede8a5661a 100644
--- a/src/mongo/s/commands/cluster_kill_op.cpp
+++ b/src/mongo/s/commands/cluster_kill_op.cpp
@@ -79,7 +79,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& db,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) final {
// The format of op is shardid:opid
// This is different than the format passed to the mongod killOp command.
diff --git a/src/mongo/s/commands/cluster_list_databases_cmd.cpp b/src/mongo/s/commands/cluster_list_databases_cmd.cpp
index 329cfb012b7..2087dce822c 100644
--- a/src/mongo/s/commands/cluster_list_databases_cmd.cpp
+++ b/src/mongo/s/commands/cluster_list_databases_cmd.cpp
@@ -87,7 +87,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname_unused,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
const bool nameOnly = cmdObj["nameOnly"].trueValue();
diff --git a/src/mongo/s/commands/cluster_list_shards_cmd.cpp b/src/mongo/s/commands/cluster_list_shards_cmd.cpp
index 69498c2b121..8527703c3b7 100644
--- a/src/mongo/s/commands/cluster_list_shards_cmd.cpp
+++ b/src/mongo/s/commands/cluster_list_shards_cmd.cpp
@@ -71,7 +71,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto shardsStatus =
grid.catalogClient()->getAllShards(opCtx, repl::ReadConcernLevel::kMajorityReadConcern);
diff --git a/src/mongo/s/commands/cluster_map_reduce_cmd.cpp b/src/mongo/s/commands/cluster_map_reduce_cmd.cpp
index b77a45fc95d..16f44fa2723 100644
--- a/src/mongo/s/commands/cluster_map_reduce_cmd.cpp
+++ b/src/mongo/s/commands/cluster_map_reduce_cmd.cpp
@@ -147,9 +147,9 @@ BSONObj fixForShards(const BSONObj& orig,
*
* 11. Inspects the BSONObject size from step #8 and determines if it needs to split.
*/
-class MRCmd : public BasicCommand {
+class MRCmd : public ErrmsgCommandDeprecated {
public:
- MRCmd() : BasicCommand("mapReduce", "mapreduce") {}
+ MRCmd() : ErrmsgCommandDeprecated("mapReduce", "mapreduce") {}
bool slaveOk() const override {
return true;
@@ -177,11 +177,11 @@ public:
mr::addPrivilegesRequiredForMapReduce(this, dbname, cmdObj, out);
}
- bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) override {
Timer t;
const NamespaceString nss(parseNs(dbname, cmdObj));
diff --git a/src/mongo/s/commands/cluster_merge_chunks_cmd.cpp b/src/mongo/s/commands/cluster_merge_chunks_cmd.cpp
index d9f980c52ae..b4bd8c04e9a 100644
--- a/src/mongo/s/commands/cluster_merge_chunks_cmd.cpp
+++ b/src/mongo/s/commands/cluster_merge_chunks_cmd.cpp
@@ -54,9 +54,9 @@ namespace {
/**
* Mongos-side command for merging chunks, passes command to appropriate shard.
*/
-class ClusterMergeChunksCommand : public BasicCommand {
+class ClusterMergeChunksCommand : public ErrmsgCommandDeprecated {
public:
- ClusterMergeChunksCommand() : BasicCommand("mergeChunks") {}
+ ClusterMergeChunksCommand() : ErrmsgCommandDeprecated("mergeChunks") {}
void help(stringstream& h) const override {
h << "Merge Chunks command\n"
@@ -99,11 +99,11 @@ public:
static BSONField<string> configField;
- bool run(OperationContext* opCtx,
- const string& dbname,
- const BSONObj& cmdObj,
- string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbname,
+ const BSONObj& cmdObj,
+ string& errmsg,
+ BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbname, cmdObj));
auto routingInfo = uassertStatusOK(
diff --git a/src/mongo/s/commands/cluster_move_chunk_cmd.cpp b/src/mongo/s/commands/cluster_move_chunk_cmd.cpp
index 4e1e0b9b57e..2a6f4147180 100644
--- a/src/mongo/s/commands/cluster_move_chunk_cmd.cpp
+++ b/src/mongo/s/commands/cluster_move_chunk_cmd.cpp
@@ -55,9 +55,9 @@ using std::string;
namespace {
-class MoveChunkCmd : public BasicCommand {
+class MoveChunkCmd : public ErrmsgCommandDeprecated {
public:
- MoveChunkCmd() : BasicCommand("moveChunk", "movechunk") {}
+ MoveChunkCmd() : ErrmsgCommandDeprecated("moveChunk", "movechunk") {}
bool slaveOk() const override {
return true;
@@ -95,11 +95,11 @@ public:
return parseNsFullyQualified(dbname, cmdObj);
}
- bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) override {
Timer t;
const NamespaceString nss(parseNs(dbname, cmdObj));
diff --git a/src/mongo/s/commands/cluster_move_primary_cmd.cpp b/src/mongo/s/commands/cluster_move_primary_cmd.cpp
index a7a0c496af1..e67afb64e04 100644
--- a/src/mongo/s/commands/cluster_move_primary_cmd.cpp
+++ b/src/mongo/s/commands/cluster_move_primary_cmd.cpp
@@ -95,7 +95,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto movePrimaryRequest = MovePrimary::parse(IDLParserErrorContext("MovePrimary"), cmdObj);
diff --git a/src/mongo/s/commands/cluster_netstat_cmd.cpp b/src/mongo/s/commands/cluster_netstat_cmd.cpp
index 33076de0db4..1e14f9bd5ad 100644
--- a/src/mongo/s/commands/cluster_netstat_cmd.cpp
+++ b/src/mongo/s/commands/cluster_netstat_cmd.cpp
@@ -68,7 +68,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
result.append("configserver",
grid.shardRegistry()->getConfigServerConnectionString().toString());
diff --git a/src/mongo/s/commands/cluster_pipeline_cmd.cpp b/src/mongo/s/commands/cluster_pipeline_cmd.cpp
index a48de3400cc..e433c6d252d 100644
--- a/src/mongo/s/commands/cluster_pipeline_cmd.cpp
+++ b/src/mongo/s/commands/cluster_pipeline_cmd.cpp
@@ -69,7 +69,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
return appendCommandStatus(result,
_runAggCommand(opCtx, dbname, cmdObj, boost::none, &result));
diff --git a/src/mongo/s/commands/cluster_plan_cache_cmd.cpp b/src/mongo/s/commands/cluster_plan_cache_cmd.cpp
index 7f339b20c2d..748459fe163 100644
--- a/src/mongo/s/commands/cluster_plan_cache_cmd.cpp
+++ b/src/mongo/s/commands/cluster_plan_cache_cmd.cpp
@@ -89,7 +89,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result);
public:
@@ -112,7 +111,6 @@ private:
bool ClusterPlanCacheCmd::run(OperationContext* opCtx,
const std::string& dbName,
const BSONObj& cmdObj,
- std::string& errMsg,
BSONObjBuilder& result) {
const NamespaceString nss(parseNsCollectionRequired(dbName, cmdObj));
diff --git a/src/mongo/s/commands/cluster_profile_cmd.cpp b/src/mongo/s/commands/cluster_profile_cmd.cpp
index 5c1fde01243..cab007638d9 100644
--- a/src/mongo/s/commands/cluster_profile_cmd.cpp
+++ b/src/mongo/s/commands/cluster_profile_cmd.cpp
@@ -33,9 +33,9 @@
namespace mongo {
namespace {
-class ProfileCmd : public BasicCommand {
+class ProfileCmd : public ErrmsgCommandDeprecated {
public:
- ProfileCmd() : BasicCommand("profile") {}
+ ProfileCmd() : ErrmsgCommandDeprecated("profile") {}
virtual bool slaveOk() const {
return true;
@@ -58,11 +58,11 @@ public:
out->push_back(Privilege(ResourcePattern::forDatabaseName(dbname), actions));
}
- virtual bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
errmsg = "profile currently not supported via mongos";
return false;
}
diff --git a/src/mongo/s/commands/cluster_remove_shard_cmd.cpp b/src/mongo/s/commands/cluster_remove_shard_cmd.cpp
index 8a649cf52a4..79c2df15c47 100644
--- a/src/mongo/s/commands/cluster_remove_shard_cmd.cpp
+++ b/src/mongo/s/commands/cluster_remove_shard_cmd.cpp
@@ -82,7 +82,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
uassert(ErrorCodes::TypeMismatch,
str::stream() << "Field '" << cmdObj.firstElement().fieldName()
diff --git a/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp b/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
index 88d019b7847..cfff64d3625 100644
--- a/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
+++ b/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
@@ -106,7 +106,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto parsedRequest =
uassertStatusOK(RemoveShardFromZoneRequest::parseFromMongosCommand(cmdObj));
diff --git a/src/mongo/s/commands/cluster_repl_set_get_status_cmd.cpp b/src/mongo/s/commands/cluster_repl_set_get_status_cmd.cpp
index 24f1e8dd31d..aba2f927bd4 100644
--- a/src/mongo/s/commands/cluster_repl_set_get_status_cmd.cpp
+++ b/src/mongo/s/commands/cluster_repl_set_get_status_cmd.cpp
@@ -36,9 +36,9 @@
namespace mongo {
namespace {
-class CmdReplSetGetStatus : public BasicCommand {
+class CmdReplSetGetStatus : public ErrmsgCommandDeprecated {
public:
- CmdReplSetGetStatus() : BasicCommand("replSetGetStatus") {}
+ CmdReplSetGetStatus() : ErrmsgCommandDeprecated("replSetGetStatus") {}
virtual bool slaveOk() const {
return true;
@@ -64,11 +64,11 @@ public:
return Status::OK();
}
- virtual bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) {
+ virtual bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) {
if (cmdObj["forShell"].trueValue()) {
LastError::get(cc()).disable();
ClusterLastErrorInfo::get(cc())->disableForCommand();
diff --git a/src/mongo/s/commands/cluster_reset_error_cmd.cpp b/src/mongo/s/commands/cluster_reset_error_cmd.cpp
index 30fef011f72..8fbe4c7a78b 100644
--- a/src/mongo/s/commands/cluster_reset_error_cmd.cpp
+++ b/src/mongo/s/commands/cluster_reset_error_cmd.cpp
@@ -62,7 +62,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
LastError::get(cc()).reset();
diff --git a/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp b/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp
index 1b865553b30..c186b56f693 100644
--- a/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp
+++ b/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp
@@ -86,7 +86,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
const auto version = uassertStatusOK(
FeatureCompatibilityVersionCommandParser::extractVersionFromCommand(getName(), cmdObj));
diff --git a/src/mongo/s/commands/cluster_shard_collection_cmd.cpp b/src/mongo/s/commands/cluster_shard_collection_cmd.cpp
index d58268bb9ae..266fcb71944 100644
--- a/src/mongo/s/commands/cluster_shard_collection_cmd.cpp
+++ b/src/mongo/s/commands/cluster_shard_collection_cmd.cpp
@@ -107,7 +107,6 @@ public:
bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbname, cmdObj));
auto shardCollRequest =
diff --git a/src/mongo/s/commands/cluster_shutdown_cmd.cpp b/src/mongo/s/commands/cluster_shutdown_cmd.cpp
index fde7564a285..5918cc4dabc 100644
--- a/src/mongo/s/commands/cluster_shutdown_cmd.cpp
+++ b/src/mongo/s/commands/cluster_shutdown_cmd.cpp
@@ -44,7 +44,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
// Never returns
shutdownHelper();
diff --git a/src/mongo/s/commands/cluster_split_cmd.cpp b/src/mongo/s/commands/cluster_split_cmd.cpp
index 2deaebb830f..61c2ff04bfd 100644
--- a/src/mongo/s/commands/cluster_split_cmd.cpp
+++ b/src/mongo/s/commands/cluster_split_cmd.cpp
@@ -84,9 +84,9 @@ BSONObj selectMedianKey(OperationContext* opCtx,
"Unable to find median in chunk, possibly because chunk is empty.");
}
-class SplitCollectionCmd : public BasicCommand {
+class SplitCollectionCmd : public ErrmsgCommandDeprecated {
public:
- SplitCollectionCmd() : BasicCommand("split", "split") {}
+ SplitCollectionCmd() : ErrmsgCommandDeprecated("split", "split") {}
bool slaveOk() const override {
return true;
@@ -123,11 +123,11 @@ public:
return parseNsFullyQualified(dbname, cmdObj);
}
- bool run(OperationContext* opCtx,
- const std::string& dbname,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& result) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbname, cmdObj));
auto routingInfo = uassertStatusOK(
diff --git a/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp b/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
index 72b479c32c7..22d926ac053 100644
--- a/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
+++ b/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
@@ -121,7 +121,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
auto parsedRequest =
uassertStatusOK(UpdateZoneKeyRangeRequest::parseFromMongosCommand(cmdObj));
diff --git a/src/mongo/s/commands/cluster_user_management_commands.cpp b/src/mongo/s/commands/cluster_user_management_commands.cpp
index e29b970d04d..323b51c9403 100644
--- a/src/mongo/s/commands/cluster_user_management_commands.cpp
+++ b/src/mongo/s/commands/cluster_user_management_commands.cpp
@@ -89,7 +89,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
return Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -127,7 +126,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
auth::CreateOrUpdateUserArgs args;
Status status = auth::parseCreateOrUpdateUserCommands(cmdObj, getName(), dbname, &args);
@@ -176,7 +174,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
UserName userName;
Status status = auth::parseAndValidateDropUserCommand(cmdObj, dbname, &userName);
@@ -221,7 +218,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -261,7 +257,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
string userNameString;
vector<RoleName> roles;
@@ -308,7 +303,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
string userNameString;
vector<RoleName> unusedRoles;
@@ -359,7 +353,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
return Grid::get(opCtx)->catalogClient()->runUserManagementReadCommand(
opCtx, dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -393,7 +386,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
return Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -427,7 +419,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -467,7 +458,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -507,7 +497,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -547,7 +536,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -587,7 +575,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -630,7 +617,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -674,7 +660,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
const bool ok = Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -718,7 +703,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
return Grid::get(opCtx)->catalogClient()->runUserManagementReadCommand(
opCtx, dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -756,7 +740,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
AuthorizationManager* authzManager = getGlobalAuthorizationManager();
invariant(authzManager);
@@ -806,7 +789,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
return Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
opCtx, getName(), dbname, filterCommandRequestForPassthrough(cmdObj), &result);
@@ -895,7 +877,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbname,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) {
// Run the authSchemaUpgrade command on the config servers
if (!Grid::get(opCtx)->catalogClient()->runUserManagementWriteCommand(
diff --git a/src/mongo/s/commands/cluster_whats_my_uri_cmd.cpp b/src/mongo/s/commands/cluster_whats_my_uri_cmd.cpp
index bdb8cce85a8..b5ecdd2f330 100644
--- a/src/mongo/s/commands/cluster_whats_my_uri_cmd.cpp
+++ b/src/mongo/s/commands/cluster_whats_my_uri_cmd.cpp
@@ -60,7 +60,6 @@ public:
virtual bool run(OperationContext* opCtx,
const std::string& dbname,
const BSONObj& cmdObj,
- std::string& errmsg,
BSONObjBuilder& result) {
result << "you" << cc().getRemote().toString();
return true;
diff --git a/src/mongo/s/commands/commands_public.cpp b/src/mongo/s/commands/commands_public.cpp
index 717f7057fba..e5a546baf3a 100644
--- a/src/mongo/s/commands/commands_public.cpp
+++ b/src/mongo/s/commands/commands_public.cpp
@@ -194,13 +194,13 @@ protected:
* Base class for commands on collections that simply need to broadcast the command to shards that
* own data for the collection and aggregate the raw results.
*/
-class AllShardsCollectionCommand : public BasicCommand {
+class AllShardsCollectionCommand : public ErrmsgCommandDeprecated {
protected:
AllShardsCollectionCommand(const char* name,
const char* oldname = NULL,
bool implicitCreateDb = false,
bool appendShardVersion = true)
- : BasicCommand(name, oldname),
+ : ErrmsgCommandDeprecated(name, oldname),
_implicitCreateDb(implicitCreateDb),
_appendShardVersion(appendShardVersion) {}
@@ -211,11 +211,11 @@ protected:
return false;
}
- bool run(OperationContext* opCtx,
- const string& dbName,
- const BSONObj& cmdObj,
- std::string& errmsg,
- BSONObjBuilder& output) override {
+ bool errmsgRun(OperationContext* opCtx,
+ const string& dbName,
+ const BSONObj& cmdObj,
+ std::string& errmsg,
+ BSONObjBuilder& output) override {
const NamespaceString nss(parseNsCollectionRequired(dbName, cmdObj));
LOG(1) << "AllShardsCollectionCommand: " << nss << " cmd:" << redact(cmdObj);
@@ -251,7 +251,6 @@ protected:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbName, cmdObj));
@@ -357,7 +356,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& output) {
const NamespaceString nss(parseNsCollectionRequired(dbName, cmdObj));
@@ -392,7 +390,7 @@ public:
if (!result["errmsg"].eoo()) {
// errmsg indicates a user error, so returning the message from one shard is
// sufficient.
- errmsg = result["errmsg"].toString();
+ output.append(result["errmsg"]);
errored = true;
}
rawResBuilder.append(shardName.toString(), result);
@@ -433,7 +431,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
uassertStatusOK(createShardDatabase(opCtx, dbName));
@@ -465,7 +462,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const auto fullNsFromElt = cmdObj.firstElement();
uassert(ErrorCodes::InvalidNamespace,
@@ -523,7 +519,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const auto todbElt = cmdObj["todb"];
uassert(ErrorCodes::InvalidNamespace,
@@ -596,7 +591,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNsCollectionRequired(dbName, cmdObj));
@@ -638,7 +632,7 @@ public:
if (!res["code"].eoo()) {
result.append(res["code"]);
}
- errmsg = "failed on shard: " + res.toString();
+ result.append("errmsg", "failed on shard: " + res.toString());
return false;
}
conn.done();
@@ -776,7 +770,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbName, cmdObj));
@@ -969,14 +962,13 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const std::string ns = parseNs(dbName, cmdObj);
uassert(ErrorCodes::IllegalOperation,
"Performing splitVector across dbs isn't supported via mongos",
str::startsWith(ns, dbName));
- return NotAllowedOnShardedCollectionCmd::run(opCtx, dbName, cmdObj, errmsg, result);
+ return NotAllowedOnShardedCollectionCmd::run(opCtx, dbName, cmdObj, result);
}
} splitVectorCmd;
@@ -1004,7 +996,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNsCollectionRequired(dbName, cmdObj));
@@ -1252,7 +1243,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNs(dbName, cmdObj));
@@ -1338,8 +1328,9 @@ public:
log() << "Sharded filemd5 failed: " << redact(result.asTempObj());
- errmsg =
- string("sharded filemd5 failed because: ") + res["errmsg"].valuestrsafe();
+ result.append("errmsg",
+ string("sharded filemd5 failed because: ") +
+ res["errmsg"].valuestrsafe());
return false;
}
@@ -1368,9 +1359,9 @@ public:
// We could support arbitrary shard keys by sending commands to all shards but I don't
// think we should
- errmsg =
- "GridFS fs.chunks collection must be sharded on either {files_id:1} or "
- "{files_id:1, n:1}";
+ result.append("errmsg",
+ "GridFS fs.chunks collection must be sharded on either {files_id:1} or "
+ "{files_id:1, n:1}");
return false;
}
} fileMD5Cmd;
@@ -1398,7 +1389,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
const NamespaceString nss(parseNsCollectionRequired(dbName, cmdObj));
@@ -1523,7 +1513,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) override {
RARELY {
warning() << "the eval command is deprecated" << startupWarningsLog;
@@ -1568,7 +1557,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) final {
auto nss = NamespaceString::makeListCollectionsNSS(dbName);
@@ -1617,7 +1605,6 @@ public:
bool run(OperationContext* opCtx,
const string& dbName,
const BSONObj& cmdObj,
- string& errmsg,
BSONObjBuilder& result) final {
const NamespaceString nss(parseNsCollectionRequired(dbName, cmdObj));