diff options
author | XueruiFa <xuerui.fa@mongodb.com> | 2021-07-26 21:13:55 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-07-27 18:06:39 +0000 |
commit | 4145d1a30d7f340c9bbf4fe8924db14590738813 (patch) | |
tree | 95fed6a031463784d4312f1c96c435d6c0bc1ae6 | |
parent | 292b0ee13aed4689714ab506703bd6eb92785ad5 (diff) | |
download | mongo-4145d1a30d7f340c9bbf4fe8924db14590738813.tar.gz |
SERVER-58794: _configsvrCreateDatabase and _flushDatabaseCacheUpdates should accept any API version parameters
(cherry picked from commit 7cccaa4720c8ca16e7c8a35d325ea281fc1f9e2e)
-rw-r--r-- | jstests/sharding/libs/mongos_api_params_util.js | 4 | ||||
-rw-r--r-- | src/mongo/db/s/config/configsvr_create_database_command.cpp | 8 | ||||
-rw-r--r-- | src/mongo/db/s/flush_database_cache_updates_command.cpp | 8 |
3 files changed, 20 insertions, 0 deletions
diff --git a/jstests/sharding/libs/mongos_api_params_util.js b/jstests/sharding/libs/mongos_api_params_util.js index fb2fe5b9231..72f057016ec 100644 --- a/jstests/sharding/libs/mongos_api_params_util.js +++ b/jstests/sharding/libs/mongos_api_params_util.js @@ -1522,6 +1522,10 @@ let MongosAPIParametersUtil = (function() { for (let i = 0; i < testInstances.length; ++i) { const {apiParameters, commandName, runOrExplain} = testInstances[i]; + // Creating a new db implicitly should succeed with 'apiStrict: true'. + assert.commandWorked(st.s.getDB("db").runCommand( + {create: 'collection', apiVersion: '1', apiStrict: true})); + if (shardedCollection) { jsTestLog("Sharded setup"); assert.commandWorked(st.s.getDB("db")["collection"].insert( diff --git a/src/mongo/db/s/config/configsvr_create_database_command.cpp b/src/mongo/db/s/config/configsvr_create_database_command.cpp index 3d351a57baf..16a89fa4014 100644 --- a/src/mongo/db/s/config/configsvr_create_database_command.cpp +++ b/src/mongo/db/s/config/configsvr_create_database_command.cpp @@ -51,6 +51,14 @@ namespace { class ConfigSvrCreateDatabaseCommand final : public TypedCommand<ConfigSvrCreateDatabaseCommand> { public: + /** + * We accept any apiVersion, apiStrict, and/or apiDeprecationErrors forwarded with this internal + * command. + */ + bool acceptsAnyApiVersionParameters() const override { + return true; + } + using Request = ConfigsvrCreateDatabase; using Response = ConfigsvrCreateDatabaseResponse; diff --git a/src/mongo/db/s/flush_database_cache_updates_command.cpp b/src/mongo/db/s/flush_database_cache_updates_command.cpp index ccac94f02e7..cf4a033f668 100644 --- a/src/mongo/db/s/flush_database_cache_updates_command.cpp +++ b/src/mongo/db/s/flush_database_cache_updates_command.cpp @@ -67,6 +67,14 @@ public: "to be persisted."; } + /** + * We accept any apiVersion, apiStrict, and/or apiDeprecationErrors forwarded with this internal + * command. + */ + bool acceptsAnyApiVersionParameters() const override { + return true; + } + bool adminOnly() const override { return true; } |