diff options
49 files changed, 165 insertions, 4 deletions
diff --git a/buildscripts/idl/idl/parser.py b/buildscripts/idl/idl/parser.py index bc16a577c02..cc43f4aade7 100644 --- a/buildscripts/idl/idl/parser.py +++ b/buildscripts/idl/idl/parser.py @@ -678,6 +678,8 @@ def _parse_enum(ctxt, spec, name, node): def _parse_command(ctxt, spec, name, node): # type: (errors.ParserContext, syntax.IDLSpec, str, Union[yaml.nodes.MappingNode, yaml.nodes.ScalarNode, yaml.nodes.SequenceNode]) -> None """Parse a command section in the IDL file.""" + # pylint: disable=too-many-branches + if not ctxt.is_mapping_node(node, "command"): return @@ -713,6 +715,9 @@ def _parse_command(ctxt, spec, name, node): if not command.command_name: ctxt.add_missing_required_field_error(node, "command", "command_name") + if command.api_version is None: + ctxt.add_missing_required_field_error(node, "command", "api_version") + if command.namespace: if command.namespace not in valid_commands: ctxt.add_bad_command_namespace_error(command, command.name, command.namespace, diff --git a/buildscripts/idl/idl/syntax.py b/buildscripts/idl/idl/syntax.py index b64860189d4..0b40952ce95 100644 --- a/buildscripts/idl/idl/syntax.py +++ b/buildscripts/idl/idl/syntax.py @@ -505,7 +505,7 @@ class Command(Struct): self.command_name = None # type: str self.type = None # type: FieldType self.reply_type = None # type: str - self.api_version = "" # type: str + self.api_version = None # type: str self.is_deprecated = False # type: bool super(Command, self).__init__(file_name, line, column) diff --git a/buildscripts/idl/tests/test_binder.py b/buildscripts/idl/tests/test_binder.py index a0da4f3adff..625ac50c322 100644 --- a/buildscripts/idl/tests/test_binder.py +++ b/buildscripts/idl/tests/test_binder.py @@ -1457,6 +1457,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" strict: true fields: foo1: string @@ -1487,6 +1488,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo1: string @@ -1494,6 +1496,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: bar namespace: ignored + api_version: "" fields: foo: foo """), idl.errors.ERROR_ID_FIELD_NO_COMMAND) @@ -1506,6 +1509,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo1: string @@ -1524,6 +1528,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: string """), idl.errors.ERROR_ID_COMMAND_DUPLICATES_FIELD) @@ -1536,6 +1541,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" reply_type: not_defined """), idl.errors.ERROR_ID_UNKNOWN_TYPE) @@ -1547,6 +1553,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" reply_type: string """), idl.errors.ERROR_ID_INVALID_REPLY_TYPE) @@ -1586,6 +1593,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo1: type: array<object> @@ -1598,6 +1606,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo1: type: array<foo_struct> @@ -1663,6 +1672,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: type: object @@ -1677,6 +1687,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo1: type: array<string> @@ -1691,6 +1702,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo1: type: array<string> @@ -1718,6 +1730,7 @@ class TestBinder(testcase.IDLTestcase): command_name: foo strict: true namespace: type + api_version: "" type: string fields: field1: string @@ -1731,6 +1744,7 @@ class TestBinder(testcase.IDLTestcase): command_name: foo strict: true namespace: type + api_version: "" type: array<string> fields: field1: string @@ -1757,6 +1771,7 @@ class TestBinder(testcase.IDLTestcase): description: foo command_name: foo namespace: type + api_version: "" type: int fields: field1: string diff --git a/buildscripts/idl/tests/test_parser.py b/buildscripts/idl/tests/test_parser.py index 5680f3a69de..5b8b6f504cf 100644 --- a/buildscripts/idl/tests/test_parser.py +++ b/buildscripts/idl/tests/test_parser.py @@ -944,7 +944,7 @@ class TestParser(testcase.IDLTestcase): reply_type: foo_reply_struct """)) - # All fields with false for bools, no api_version + # All fields with false for bools, empty api_version self.assert_parse( textwrap.dedent(""" commands: @@ -953,6 +953,7 @@ class TestParser(testcase.IDLTestcase): command_name: foo strict: false namespace: ignored + api_version: "" is_deprecated: false immutable: false inline_chained_structs: false @@ -984,6 +985,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: bar """)) @@ -996,6 +998,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: concatenate_with_db + api_version: "" fields: foo: bar """)) @@ -1008,6 +1011,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" strict: true """)) @@ -1019,6 +1023,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" reply_type: foo_reply_struct """)) @@ -1041,6 +1046,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" foo: bar fields: foo: bar @@ -1055,6 +1061,7 @@ class TestParser(testcase.IDLTestcase): command_name: foo strict: bar namespace: ignored + api_version: "" fields: foo: bar """), idl.errors.ERROR_ID_IS_NODE_VALID_BOOL) @@ -1066,6 +1073,7 @@ class TestParser(testcase.IDLTestcase): foo: description: foo namespace: ignored + api_version: "" fields: foo: bar """), idl.errors.ERROR_ID_MISSING_REQUIRED_FIELD) @@ -1078,6 +1086,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: [1] namespace: ignored + api_version: "" fields: foo: bar """), idl.errors.ERROR_ID_IS_NODE_TYPE, True) @@ -1089,6 +1098,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: ["1"] namespace: ignored + api_version: "" fields: foo: bar """), idl.errors.ERROR_ID_IS_NODE_TYPE, True) @@ -1101,11 +1111,24 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" is_deprecated: bar fields: foo: bar """), idl.errors.ERROR_ID_IS_NODE_VALID_BOOL) + # api_version is required + self.assert_parse_fail( + textwrap.dedent(""" + commands: + foo: + description: foo + command_name: foo + namespace: ignored + fields: + foo: bar + """), idl.errors.ERROR_ID_MISSING_REQUIRED_FIELD, True) + # api_version is a scalar self.assert_parse_fail( textwrap.dedent(""" @@ -1118,7 +1141,7 @@ class TestParser(testcase.IDLTestcase): fields: foo: bar reply_type: foo_reply_struct - """), idl.errors.ERROR_ID_IS_NODE_TYPE) + """), idl.errors.ERROR_ID_IS_NODE_TYPE, True) self.assert_parse_fail( textwrap.dedent(""" @@ -1131,7 +1154,7 @@ class TestParser(testcase.IDLTestcase): fields: foo: bar reply_type: foo_reply_struct - """), idl.errors.ERROR_ID_IS_NODE_TYPE) + """), idl.errors.ERROR_ID_IS_NODE_TYPE, True) # strict:true required if api_version set self.assert_parse_fail( @@ -1168,6 +1191,7 @@ class TestParser(testcase.IDLTestcase): foo: description: foo command_name: foo + api_version: "" fields: foo: bar """), idl.errors.ERROR_ID_MISSING_REQUIRED_FIELD) @@ -1180,6 +1204,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: foo + api_version: "" fields: foo: bar """), idl.errors.ERROR_ID_BAD_COMMAND_NAMESPACE) @@ -1204,6 +1229,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: string @@ -1222,6 +1248,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" strict: true fields: foo: string @@ -1234,6 +1261,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: string namespace: ignored + api_version: "" strict: true fields: foo: string @@ -1247,6 +1275,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: concatenate_with_db + api_version: "" type: foobar fields: foo: bar @@ -1260,6 +1289,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" reply_type: arbitrary_field: foo """), idl.errors.ERROR_ID_IS_NODE_TYPE) @@ -1277,6 +1307,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: type: bar @@ -1291,6 +1322,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: type: bar @@ -1310,6 +1342,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: type: bar @@ -1328,6 +1361,7 @@ class TestParser(testcase.IDLTestcase): command_name: foo strict: true namespace: type + api_version: "" type: string fields: foo: bar @@ -1342,6 +1376,7 @@ class TestParser(testcase.IDLTestcase): command_name: foo strict: true namespace: type + api_version: "" type: array<string> fields: foo: bar @@ -1356,6 +1391,7 @@ class TestParser(testcase.IDLTestcase): command_name: foo strict: true namespace: type + api_version: "" type: string """)) @@ -1371,6 +1407,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: type + api_version: "" fields: foo: bar """), idl.errors.ERROR_ID_MISSING_REQUIRED_FIELD) @@ -1404,6 +1441,7 @@ class TestParser(testcase.IDLTestcase): description: foo command_name: foo namespace: ignored + api_version: "" fields: foo: type: bar diff --git a/src/mongo/db/commands/drop_connections.idl b/src/mongo/db/commands/drop_connections.idl index 57938b565f5..e84a2e460c8 100644 --- a/src/mongo/db/commands/drop_connections.idl +++ b/src/mongo/db/commands/drop_connections.idl @@ -40,6 +40,7 @@ commands: description: "An administrative command which takes a list of host and ports and drops pooled connections to them" command_name: dropConnections namespace: ignored + api_version: "" fields: hostAndPort: description: "List of host and ports" diff --git a/src/mongo/db/commands/generic.idl b/src/mongo/db/commands/generic.idl index e080b2d2e99..b4c54b7568d 100644 --- a/src/mongo/db/commands/generic.idl +++ b/src/mongo/db/commands/generic.idl @@ -48,6 +48,7 @@ commands: description: "Log a message on the server" command_name: logMessage namespace: type + api_version: "" type: string cpp_name: LogMessageCommand strict: true diff --git a/src/mongo/db/commands/http_client.idl b/src/mongo/db/commands/http_client.idl index f1d6131fb68..1abaeff1944 100644 --- a/src/mongo/db/commands/http_client.idl +++ b/src/mongo/db/commands/http_client.idl @@ -51,6 +51,7 @@ commands: description: "Fetch an HTTP(S) resource via GET" command_name: httpClientRequest namespace: ignored + api_version: "" fields: uri: description: "Document location to fetch" diff --git a/src/mongo/db/commands/internal_rename_if_options_and_indexes_match.idl b/src/mongo/db/commands/internal_rename_if_options_and_indexes_match.idl index 8cd19875d7a..d64d32d3967 100644 --- a/src/mongo/db/commands/internal_rename_if_options_and_indexes_match.idl +++ b/src/mongo/db/commands/internal_rename_if_options_and_indexes_match.idl @@ -38,6 +38,7 @@ commands: command." command_name: internalRenameIfOptionsAndIndexesMatch namespace: ignored + api_version: "" fields: from: type: namespacestring diff --git a/src/mongo/db/commands/kill_operations.idl b/src/mongo/db/commands/kill_operations.idl index b9533a42c40..d3e2a9cd5dc 100644 --- a/src/mongo/db/commands/kill_operations.idl +++ b/src/mongo/db/commands/kill_operations.idl @@ -38,6 +38,7 @@ commands: cpp_name: KillOperationsRequest description: "Interrupt a list of operations on a remote server" namespace: ignored + api_version: "" strict: true fields: operationKeys: diff --git a/src/mongo/db/commands/map_reduce.idl b/src/mongo/db/commands/map_reduce.idl index 592e4e21c74..b2e8cbf22f6 100644 --- a/src/mongo/db/commands/map_reduce.idl +++ b/src/mongo/db/commands/map_reduce.idl @@ -72,6 +72,7 @@ commands: description: "The MapReduce command." command_name: "MapReduce" namespace: concatenate_with_db + api_version: "" strict: true fields: map: diff --git a/src/mongo/db/commands/profile.idl b/src/mongo/db/commands/profile.idl index 15ec549c668..6eac49f834c 100644 --- a/src/mongo/db/commands/profile.idl +++ b/src/mongo/db/commands/profile.idl @@ -49,6 +49,7 @@ commands: cpp_name: ProfileCmdRequest strict: false namespace: type + api_version: "" type: safeInt64 fields: slowms: diff --git a/src/mongo/db/commands/rename_collection.idl b/src/mongo/db/commands/rename_collection.idl index 51f6317ea15..ba7c19699d1 100644 --- a/src/mongo/db/commands/rename_collection.idl +++ b/src/mongo/db/commands/rename_collection.idl @@ -39,6 +39,7 @@ commands: cpp_name: RenameCollectionCommand strict: true namespace: type + api_version: "" type: namespacestring fields: to: diff --git a/src/mongo/db/commands/resharding_test_commands.idl b/src/mongo/db/commands/resharding_test_commands.idl index 1673ea0509d..c9aa618dada 100644 --- a/src/mongo/db/commands/resharding_test_commands.idl +++ b/src/mongo/db/commands/resharding_test_commands.idl @@ -38,6 +38,7 @@ commands: command_name: testReshardCloneCollection description: "The 'testReshardCloneCollection' command." namespace: type + api_version: "" type: namespacestring fields: atClusterTime: diff --git a/src/mongo/db/commands/resize_oplog.idl b/src/mongo/db/commands/resize_oplog.idl index 4e9d9fe9ccf..6c3e211e644 100644 --- a/src/mongo/db/commands/resize_oplog.idl +++ b/src/mongo/db/commands/resize_oplog.idl @@ -39,6 +39,7 @@ commands: cpp_name: ReplSetResizeOplogRequest strict: false namespace: type + api_version: "" type: safeInt64 fields: size: diff --git a/src/mongo/db/commands/rotate_certificates.idl b/src/mongo/db/commands/rotate_certificates.idl index 5ebc8e1678f..51bc72b32d9 100644 --- a/src/mongo/db/commands/rotate_certificates.idl +++ b/src/mongo/db/commands/rotate_certificates.idl @@ -39,6 +39,7 @@ commands: description: "An administrative command which rotates the certificates to be used by new SSL connections" command_name: rotateCertificates namespace: ignored + api_version: "" fields: message: description: "Message to be logged upon successful rotation" diff --git a/src/mongo/db/commands/rwc_defaults_commands.idl b/src/mongo/db/commands/rwc_defaults_commands.idl index 8b9997b03a1..87ef62adc4b 100644 --- a/src/mongo/db/commands/rwc_defaults_commands.idl +++ b/src/mongo/db/commands/rwc_defaults_commands.idl @@ -59,6 +59,7 @@ commands: description: "Set the current read/write concern defaults (cluster-wide)" command_name: setDefaultRWConcern namespace: ignored + api_version: "" fields: defaultReadConcern: description: "The new default read concern" @@ -73,6 +74,7 @@ commands: description: "Get the current read/write concern defaults being applied by this node" command_name: getDefaultRWConcern namespace: ignored + api_version: "" fields: inMemory: type: bool diff --git a/src/mongo/db/commands/set_feature_compatibility_version.idl b/src/mongo/db/commands/set_feature_compatibility_version.idl index 0c0f9214e10..eb544dab3b3 100644 --- a/src/mongo/db/commands/set_feature_compatibility_version.idl +++ b/src/mongo/db/commands/set_feature_compatibility_version.idl @@ -41,6 +41,7 @@ commands: cpp_name: SetFeatureCompatibilityVersion strict: true namespace: type + api_version: "" type: fcv_string fields: downgradeOnDiskChanges: diff --git a/src/mongo/db/commands/set_index_commit_quorum.idl b/src/mongo/db/commands/set_index_commit_quorum.idl index fdbd5d20ad2..97cd14c2938 100644 --- a/src/mongo/db/commands/set_index_commit_quorum.idl +++ b/src/mongo/db/commands/set_index_commit_quorum.idl @@ -44,6 +44,7 @@ commands: description: "Resets the commitQuorum for an index build." strict: false namespace: concatenate_with_db + api_version: "" fields: indexNames: type: array<string> diff --git a/src/mongo/db/commands/shutdown.idl b/src/mongo/db/commands/shutdown.idl index 166bf4677ab..2685401de96 100644 --- a/src/mongo/db/commands/shutdown.idl +++ b/src/mongo/db/commands/shutdown.idl @@ -38,6 +38,7 @@ commands: cpp_name: ShutdownRequest description: "Shutdown the database" namespace: ignored + api_version: "" strict: true fields: force: diff --git a/src/mongo/db/commands/tenant_migration_donor_cmds.idl b/src/mongo/db/commands/tenant_migration_donor_cmds.idl index 3530cdfc8b8..43823f99cb2 100644 --- a/src/mongo/db/commands/tenant_migration_donor_cmds.idl +++ b/src/mongo/db/commands/tenant_migration_donor_cmds.idl @@ -57,6 +57,7 @@ commands: command_name: donorStartMigration strict: true namespace: ignored + api_version: "" fields: migrationId: description: "Unique identifier for the tenant migration." @@ -90,6 +91,7 @@ commands: command_name: donorForgetMigration strict: true namespace: ignored + api_version: "" fields: migrationId: description: "Unique identifier for the tenant migration." @@ -100,6 +102,7 @@ commands: command_name: donorAbortMigration strict: true namespace: ignored + api_version: "" fields: migrationId: description: "Unique identifier for the tenant migration." diff --git a/src/mongo/db/commands/tenant_migration_recipient_cmds.idl b/src/mongo/db/commands/tenant_migration_recipient_cmds.idl index b4811a1bde8..4c96e219c4e 100644 --- a/src/mongo/db/commands/tenant_migration_recipient_cmds.idl +++ b/src/mongo/db/commands/tenant_migration_recipient_cmds.idl @@ -86,6 +86,7 @@ commands: command_name: recipientSyncData strict: true namespace: ignored + api_version: "" inline_chained_structs: true chained_structs: MigrationRecipientCommonData: MigrationRecipientCommonData @@ -104,6 +105,7 @@ commands: command_name: recipientForgetMigration strict: true namespace: ignored + api_version: "" inline_chained_structs: true chained_structs: MigrationRecipientCommonData: MigrationRecipientCommonData diff --git a/src/mongo/db/commands/txn_two_phase_commit_cmds.idl b/src/mongo/db/commands/txn_two_phase_commit_cmds.idl index 022ad192b4b..de695d3b979 100644 --- a/src/mongo/db/commands/txn_two_phase_commit_cmds.idl +++ b/src/mongo/db/commands/txn_two_phase_commit_cmds.idl @@ -46,12 +46,14 @@ commands: command_name: prepareTransaction strict: true namespace: ignored + api_version: "" coordinateCommitTransaction: description: "Parser for the 'coordinateCommitTransaction' command." command_name: coordinateCommitTransaction strict: false namespace: ignored + api_version: "" fields: participants: description: "An array of shard participants that must be included in the commit." diff --git a/src/mongo/db/commands/user_management_commands.idl b/src/mongo/db/commands/user_management_commands.idl index e8a3715bb8c..d4dec18cb61 100644 --- a/src/mongo/db/commands/user_management_commands.idl +++ b/src/mongo/db/commands/user_management_commands.idl @@ -103,6 +103,7 @@ commands: description: "Create a user" command_name: createUser namespace: type + api_version: "" type: string cpp_name: CreateUserCommand strict: true @@ -139,6 +140,7 @@ commands: description: "Modify a user" command_name: updateUser namespace: type + api_version: "" type: string cpp_name: UpdateUserCommand strict: true @@ -176,6 +178,7 @@ commands: description: "Drop a single user" command_name: dropUser namespace: type + api_version: "" type: string cpp_name: DropUserCommand strict: true @@ -184,6 +187,7 @@ commands: description: "Drop all users in the database" command_name: dropAllUsersFromDatabase namespace: ignored + api_version: "" cpp_name: DropAllUsersFromDatabaseCommand strict: true @@ -191,6 +195,7 @@ commands: description: "Grant additional roles to a user" command_name: grantRolesToUser namespace: type + api_version: "" type: string cpp_name: GrantRolesToUserCommand strict: true @@ -203,6 +208,7 @@ commands: description: "Revoke previously assigned roles from a user" command_name: revokeRolesFromUser namespace: type + api_version: "" type: string cpp_name: RevokeRolesFromUserCommand strict: true @@ -215,6 +221,7 @@ commands: description: "Create a new role" command_name: createRole namespace: type + api_version: "" type: string cpp_name: CreateRoleCommand strict: true @@ -234,6 +241,7 @@ commands: description: "Update an existing role" command_name: updateRole namespace: type + api_version: "" type: string cpp_name: UpdateRoleCommand strict: true @@ -255,6 +263,7 @@ commands: description: "Grants privileges to a role" command_name: grantPrivilegesToRole namespace: type + api_version: "" type: string cpp_name: GrantPrivilegesToRoleCommand strict: true @@ -267,6 +276,7 @@ commands: description: "Grants privileges to a role" command_name: revokePrivilegesFromRole namespace: type + api_version: "" type: string cpp_name: RevokePrivilegesFromRoleCommand strict: true @@ -279,6 +289,7 @@ commands: description: "Grant roles to a role" command_name: grantRolesToRole namespace: type + api_version: "" type: string cpp_name: GrantRolesToRoleCommand strict: true @@ -291,6 +302,7 @@ commands: description: "Revoke roles from a role" command_name: revokeRolesFromRole namespace: type + api_version: "" type: string cpp_name: RevokeRolesFromRoleCommand strict: true @@ -307,6 +319,7 @@ commands: removed from some user/roles but otherwise still exists. command_name: dropRole namespace: type + api_version: "" type: string cpp_name: DropRoleCommand strict: true @@ -319,6 +332,7 @@ commands: where the roles have been removed from some user/roles but otherwise still exist. command_name: dropAllRolesFromDatabase namespace: ignored + api_version: "" cpp_name: DropAllRolesFromDatabaseCommand strict: true @@ -326,6 +340,7 @@ commands: description: "Returns information about users." command_name: usersInfo namespace: type + api_version: "" type: UsersInfoCommandArg cpp_name: UsersInfoCommand strict: true @@ -359,6 +374,7 @@ commands: description: "returns information about roles." command_name: rolesInfo namespace: type + api_version: "" type: RolesInfoCommandArg cpp_name: RolesInfoCommand strict: true @@ -387,6 +403,7 @@ commands: invalidateUserCache: description: "Invalidate the user cache" namespace: ignored + api_version: "" command_name: invalidateUserCache cpp_name: InvalidateUserCacheCommand strict: true @@ -394,6 +411,7 @@ commands: _getUserCacheGeneration: description: "Returns the current user cache generation" namespace: ignored + api_version: "" command_name: _getUserCacheGeneration cpp_name: GetUserCacheGenerationCommand strict: true @@ -401,6 +419,7 @@ commands: _mergeAuthzCollections: description: "Internal command used by mongorestore for updating user/role data" namespace: ignored + api_version: "" command_name: _mergeAuthzCollections cpp_name: MergeAuthzCollectionsCommand strict: true diff --git a/src/mongo/db/commands/vote_commit_index_build.idl b/src/mongo/db/commands/vote_commit_index_build.idl index 47e78b1b460..5ef28968573 100644 --- a/src/mongo/db/commands/vote_commit_index_build.idl +++ b/src/mongo/db/commands/vote_commit_index_build.idl @@ -42,6 +42,7 @@ commands: description: "An internal mongod command pertaining to cross replica set index builds" strict: false namespace: type + api_version: "" type: uuid fields: hostAndPort: diff --git a/src/mongo/db/commands_test_example.idl b/src/mongo/db/commands_test_example.idl index 651c1c2cf2b..441c0c7694d 100644 --- a/src/mongo/db/commands_test_example.idl +++ b/src/mongo/db/commands_test_example.idl @@ -37,18 +37,21 @@ commands: description: "increment an integer (TypedCommand example)" command_name: exampleIncrement namespace: concatenate_with_db + api_version: "" fields: i: int exampleVoid: description: "no return, just side effects" command_name: exampleVoid namespace: concatenate_with_db + api_version: "" fields: i: int exampleMinimal: description: "like exampleIncrement, but use MinimalInvocationBase" command_name: exampleMinimal namespace: concatenate_with_db + api_version: "" fields: i: int diff --git a/src/mongo/db/free_mon/free_mon_commands.idl b/src/mongo/db/free_mon/free_mon_commands.idl index 1c2372c47c1..2fddd12a2c3 100644 --- a/src/mongo/db/free_mon/free_mon_commands.idl +++ b/src/mongo/db/free_mon/free_mon_commands.idl @@ -47,6 +47,7 @@ commands: description: "setFreeMonitoring Command" command_name: setFreeMonitoring namespace: ignored + api_version: "" fields: action: description: "Action to take" @@ -56,4 +57,5 @@ commands: description: "getFreeMonitoringStatus Command" command_name: getFreeMonitoringStatus namespace: ignored + api_version: "" diff --git a/src/mongo/db/ops/find_and_modify_command.idl b/src/mongo/db/ops/find_and_modify_command.idl index 572ce368e67..5744e80a0d7 100644 --- a/src/mongo/db/ops/find_and_modify_command.idl +++ b/src/mongo/db/ops/find_and_modify_command.idl @@ -74,6 +74,7 @@ commands: cpp_name: FindAndModifyCommand strict: true namespace: concatenate_with_db + api_version: "" fields: query: description: "The query that matches documents to update. Uses the same query diff --git a/src/mongo/db/ops/write_ops.idl b/src/mongo/db/ops/write_ops.idl index 06195f1fe50..c8915ae15ca 100644 --- a/src/mongo/db/ops/write_ops.idl +++ b/src/mongo/db/ops/write_ops.idl @@ -166,6 +166,7 @@ commands: command_name: insert strict: true namespace: concatenate_with_db + api_version: "" chained_structs: WriteCommandBase: writeCommandBase fields: @@ -179,6 +180,7 @@ commands: command_name: update strict: true namespace: concatenate_with_db + api_version: "" chained_structs: WriteCommandBase: writeCommandBase fields: @@ -203,6 +205,7 @@ commands: command_name: delete strict: true namespace: concatenate_with_db + api_version: "" chained_structs: WriteCommandBase: writeCommandBase fields: diff --git a/src/mongo/db/pipeline/aggregate_command.idl b/src/mongo/db/pipeline/aggregate_command.idl index 926ceb42792..80f83a4d1f9 100644 --- a/src/mongo/db/pipeline/aggregate_command.idl +++ b/src/mongo/db/pipeline/aggregate_command.idl @@ -66,6 +66,7 @@ commands: command_name: aggregate strict: true namespace: concatenate_with_db + api_version: "" allow_global_collection_name: true fields: pipeline: diff --git a/src/mongo/db/query/count_command.idl b/src/mongo/db/query/count_command.idl index 8e5bd3ac27d..df55cddcea0 100644 --- a/src/mongo/db/query/count_command.idl +++ b/src/mongo/db/query/count_command.idl @@ -61,6 +61,7 @@ commands: cpp_name: CountCommand strict: true namespace: concatenate_with_db_or_uuid + api_version: "" fields: query: description: "A query that selects which documents to count in the collection or diff --git a/src/mongo/db/query/distinct_command.idl b/src/mongo/db/query/distinct_command.idl index 7fdd7b04e25..8d9750df6fd 100644 --- a/src/mongo/db/query/distinct_command.idl +++ b/src/mongo/db/query/distinct_command.idl @@ -38,6 +38,7 @@ commands: command_name: distinct cpp_name: DistinctCommand namespace: concatenate_with_db_or_uuid + api_version: "" strict: true fields: key: diff --git a/src/mongo/db/query/find_command.idl b/src/mongo/db/query/find_command.idl index 8d47e5cda73..86b95c93bcf 100644 --- a/src/mongo/db/query/find_command.idl +++ b/src/mongo/db/query/find_command.idl @@ -68,6 +68,7 @@ commands: description: "A struct representing the find command" strict: true namespace: concatenate_with_db_or_uuid + api_version: "" non_const_getter: true fields: filter: diff --git a/src/mongo/db/repl/repl_set_test_egress.idl b/src/mongo/db/repl/repl_set_test_egress.idl index 2fe83d3450c..d68aeaf7cba 100644 --- a/src/mongo/db/repl/repl_set_test_egress.idl +++ b/src/mongo/db/repl/repl_set_test_egress.idl @@ -44,6 +44,7 @@ commands: description: "Attempt to connect to a cluster member" command_name: replSetTestEgress namespace: ignored + api_version: "" fields: target: description: "Member address to connect and authenticate to, empty to select random member" diff --git a/src/mongo/db/s/add_shard_cmd.idl b/src/mongo/db/s/add_shard_cmd.idl index 8d67bfebba0..b57a2edc14d 100644 --- a/src/mongo/db/s/add_shard_cmd.idl +++ b/src/mongo/db/s/add_shard_cmd.idl @@ -61,6 +61,7 @@ commands: cpp_name: AddShard description: "_addShard Command" namespace: ignored + api_version: "" fields: shardIdentity: description: "Identity metadata for the new shard" diff --git a/src/mongo/db/traffic_recorder.idl b/src/mongo/db/traffic_recorder.idl index 3e8f524ca09..ed6a141fe3e 100644 --- a/src/mongo/db/traffic_recorder.idl +++ b/src/mongo/db/traffic_recorder.idl @@ -61,6 +61,7 @@ commands: description: "start recording Command" command_name: startRecordingTraffic namespace: ignored + api_version: "" fields: filename: description: "output file name" @@ -78,6 +79,7 @@ commands: description: "stop recording Command" command_name: stopRecordingTraffic namespace: ignored + api_version: "" server_parameters: trafficRecordingDirectory: diff --git a/src/mongo/idl/unittest.idl b/src/mongo/idl/unittest.idl index 8751e82037b..489d93df00f 100644 --- a/src/mongo/idl/unittest.idl +++ b/src/mongo/idl/unittest.idl @@ -678,6 +678,7 @@ commands: description: UnitTest for a basic ignored command command_name: BasicIgnoredCommand namespace: ignored + api_version: "" fields: field1: int field2: string @@ -686,6 +687,7 @@ commands: description: UnitTest for a basic concatenate_with_db command command_name: BasicConcatenateWithDbCommand namespace: concatenate_with_db + api_version: "" fields: field1: int field2: string @@ -694,6 +696,7 @@ commands: description: UnitTest for a basic concatenate_with_db_or_uuid command command_name: BasicConcatenateWithDbOrUUIDCommand namespace: concatenate_with_db_or_uuid + api_version: "" fields: field1: int field2: string @@ -702,6 +705,7 @@ commands: description: UnitTest for a basic concatenate_with_db_or_uuid command command_name: BasicNamespaceConstGetterCommand namespace: concatenate_with_db_or_uuid + api_version: "" non_const_getter: true fields: field1: int @@ -710,6 +714,7 @@ commands: description: UnitTest for a command that has a field that is special known generic command field command_name: KnownFieldCommand namespace: concatenate_with_db + api_version: "" fields: field1: int maxTimeMS: int @@ -718,6 +723,7 @@ commands: description: UnitTest for a basic command with fields marked with supports_doc_sequence command_name: DocSequenceCommand namespace: concatenate_with_db + api_version: "" fields: field1: int field2: string @@ -736,6 +742,7 @@ commands: description: UnitTest for a basic command with fields marked with supports_doc_sequence and non-strict parsing command_name: DocSequenceCommandNonStrict namespace: concatenate_with_db + api_version: "" strict: false fields: field1: int @@ -755,6 +762,7 @@ commands: description: Chained command with chained types, structs, and fields command_name: chained_command_type_mixed namespace: concatenate_with_db + api_version: "" strict: false chained_types: ChainedType : chained_type @@ -771,6 +779,7 @@ commands: description: Command with custom type string command_name: CommandTypeStringCommand namespace: type + api_version: "" type: string fields: field1: int @@ -779,18 +788,21 @@ commands: description: Command with just an array of object parameter command_name: CommandTypeArrayObjectCommand namespace: type + api_version: "" type: array<object> CommandTypeStructCommand: description: Command with just a struct parameter command_name: CommandTypeStructCommand namespace: type + api_version: "" type: one_string CommandTypeArrayStructCommand: description: Command with just an array of struct parameter command_name: CommandTypeArrayStructCommand namespace: type + api_version: "" type: array<one_string> # TODO (SERVER-51369): Test a command with type: variant: [int, string] and @@ -800,6 +812,7 @@ commands: description: Command with custom type string command_name: _underscore_command namespace: type + api_version: "" type: string cpp_name: WellNamedCommand fields: @@ -809,6 +822,7 @@ commands: description: Command with custom type int command_name: int_type_command namespace: type + api_version: "" type: int fields: field1: int @@ -817,6 +831,7 @@ commands: description: Command with custom type for array of int command_name: int_array_type_command namespace: type + api_version: "" type: array<int> fields: field1: int @@ -825,6 +840,7 @@ commands: description: Renamed command with validator command_name: validated_command namespace: ignored + api_version: "" cpp_name: doubleBasicRanges fields: positive_double: @@ -838,18 +854,21 @@ commands: description: A command with its reply type specified by an IDL struct command_name: CommandWithReplyType namespace: ignored + api_version: "" reply_type: reply_type_struct CommandWithOkReply: description: "A mock command that replies with only {ok: 1}" command_name: CommandWithOkReply namespace: ignored + api_version: "" reply_type: OkReply CommandWithAnyTypeMember: description: "A mock command to test IDLAnyType" command_name: CommandWithValueTypeMember namespace: ignored + api_version: "" reply_type: OkReply fields: anyTypeField: IDLAnyType @@ -858,6 +877,7 @@ commands: description: "A mock command to test IDLAnyTypeOwned" command_name: CommandWithValueTypeMember namespace: ignored + api_version: "" reply_type: OkReply fields: anyTypeField: IDLAnyTypeOwned diff --git a/src/mongo/s/request_types/balancer_collection_status.idl b/src/mongo/s/request_types/balancer_collection_status.idl index 50a311cd3bc..fb44661ccfe 100644 --- a/src/mongo/s/request_types/balancer_collection_status.idl +++ b/src/mongo/s/request_types/balancer_collection_status.idl @@ -54,6 +54,7 @@ commands: description: "Public balancerCollectionStatus command on mongos" strict: true namespace: type + api_version: "" type: namespacestring _configsvrBalancerCollectionStatus: @@ -62,4 +63,5 @@ commands: description: "Internal balancerCollectionStatus command on the config server" strict: true namespace: type + api_version: "" type: namespacestring diff --git a/src/mongo/s/request_types/clear_jumbo_flag.idl b/src/mongo/s/request_types/clear_jumbo_flag.idl index 71c309e98ca..e0d6bcb8bef 100644 --- a/src/mongo/s/request_types/clear_jumbo_flag.idl +++ b/src/mongo/s/request_types/clear_jumbo_flag.idl @@ -39,6 +39,7 @@ commands: description: "clearJumboFlag command for mongos" command_name: clearJumboFlag namespace: type + api_version: "" type: namespacestring strict: false fields: @@ -58,6 +59,7 @@ commands: cpp_name: ConfigsvrClearJumboFlag description: "internal clearJumboFlag command for config server" namespace: type + api_version: "" type: namespacestring strict: false fields: diff --git a/src/mongo/s/request_types/clone_catalog_data.idl b/src/mongo/s/request_types/clone_catalog_data.idl index e0fee387edd..36046e1f413 100644 --- a/src/mongo/s/request_types/clone_catalog_data.idl +++ b/src/mongo/s/request_types/clone_catalog_data.idl @@ -39,6 +39,7 @@ commands: description: "The internal cloneCatalogData command on a shard" command_name: cloneCatalogData namespace: type + api_version: "" type: namespacestring strict: false fields: diff --git a/src/mongo/s/request_types/clone_collection_options_from_primary_shard.idl b/src/mongo/s/request_types/clone_collection_options_from_primary_shard.idl index d835d77df01..71c80833ac5 100644 --- a/src/mongo/s/request_types/clone_collection_options_from_primary_shard.idl +++ b/src/mongo/s/request_types/clone_collection_options_from_primary_shard.idl @@ -38,6 +38,7 @@ commands: description: "Internal command to create a collection on a non-primary shard with the collection options from the primary shard." strict: true namespace: type + api_version: "" type: namespacestring fields: primaryShard: diff --git a/src/mongo/s/request_types/create_database.idl b/src/mongo/s/request_types/create_database.idl index 5c55b2ccdfb..50d0753916c 100644 --- a/src/mongo/s/request_types/create_database.idl +++ b/src/mongo/s/request_types/create_database.idl @@ -41,4 +41,5 @@ commands: description: "The internal createDatabase command on the config server" strict: false namespace: type + api_version: "" type: string diff --git a/src/mongo/s/request_types/ensure_chunk_version_is_greater_than.idl b/src/mongo/s/request_types/ensure_chunk_version_is_greater_than.idl index e95eee88af8..fadd9b4427d 100644 --- a/src/mongo/s/request_types/ensure_chunk_version_is_greater_than.idl +++ b/src/mongo/s/request_types/ensure_chunk_version_is_greater_than.idl @@ -42,6 +42,7 @@ commands: description: If a chunk matching 'requestedChunk' exists, bumps the chunk's version to one greater than the current collection version. namespace: ignored + api_version: "" strict: false fields: minKey: diff --git a/src/mongo/s/request_types/flush_database_cache_updates.idl b/src/mongo/s/request_types/flush_database_cache_updates.idl index 96938f6b230..628516758b1 100644 --- a/src/mongo/s/request_types/flush_database_cache_updates.idl +++ b/src/mongo/s/request_types/flush_database_cache_updates.idl @@ -40,6 +40,7 @@ commands: command_name: _flushDatabaseCacheUpdates strict: true namespace: type + api_version: "" type: string fields: syncFromConfig: diff --git a/src/mongo/s/request_types/flush_routing_table_cache_updates.idl b/src/mongo/s/request_types/flush_routing_table_cache_updates.idl index a692f02b3f6..df43aaa83a4 100644 --- a/src/mongo/s/request_types/flush_routing_table_cache_updates.idl +++ b/src/mongo/s/request_types/flush_routing_table_cache_updates.idl @@ -40,6 +40,7 @@ commands: command_name: _flushRoutingTableCacheUpdates strict: true namespace: type + api_version: "" type: namespacestring fields: syncFromConfig: @@ -51,6 +52,7 @@ commands: command_name: _flushRoutingTableCacheUpdatesWithWriteConcern strict: true namespace: type + api_version: "" type: namespacestring fields: syncFromConfig: diff --git a/src/mongo/s/request_types/get_database_version.idl b/src/mongo/s/request_types/get_database_version.idl index 2f330bd1806..d5097855ad6 100644 --- a/src/mongo/s/request_types/get_database_version.idl +++ b/src/mongo/s/request_types/get_database_version.idl @@ -39,4 +39,5 @@ commands: description: "An internal command to get a shard server's cached database version" command_name: getDatabaseVersion namespace: type + api_version: "" type: string diff --git a/src/mongo/s/request_types/refine_collection_shard_key.idl b/src/mongo/s/request_types/refine_collection_shard_key.idl index 9e09f5a3d95..3bff6d38279 100644 --- a/src/mongo/s/request_types/refine_collection_shard_key.idl +++ b/src/mongo/s/request_types/refine_collection_shard_key.idl @@ -40,6 +40,7 @@ commands: command_name: refineCollectionShardKey strict: false namespace: type + api_version: "" type: namespacestring fields: key: @@ -53,6 +54,7 @@ commands: description: "The internal refineCollectionShardKey command on the config server" strict: false namespace: type + api_version: "" type: namespacestring fields: key: diff --git a/src/mongo/s/request_types/reshard_collection.idl b/src/mongo/s/request_types/reshard_collection.idl index 78f8627c232..350f0464ff1 100644 --- a/src/mongo/s/request_types/reshard_collection.idl +++ b/src/mongo/s/request_types/reshard_collection.idl @@ -40,6 +40,7 @@ commands: command_name: reshardCollection strict: false namespace: type + api_version: "" type: namespacestring fields: key: @@ -73,6 +74,7 @@ commands: description: "The internal reshardCollection command on the config server." strict: false namespace: type + api_version: "" type: namespacestring fields: key: diff --git a/src/mongo/s/request_types/sharded_ddl_commands.idl b/src/mongo/s/request_types/sharded_ddl_commands.idl index 56a35a942e0..eb5f026245b 100644 --- a/src/mongo/s/request_types/sharded_ddl_commands.idl +++ b/src/mongo/s/request_types/sharded_ddl_commands.idl @@ -67,6 +67,7 @@ commands: description: "The internal createCollection command for a shard." strict: false namespace: concatenate_with_db + api_version: "" fields: shardKey: type: object @@ -97,6 +98,7 @@ commands: description: "Parser for the shardDropDatabase command" command_name: _shardsvrDropDatabase namespace: type + api_version: "" type: safeInt64 cpp_name: ShardsvrDropDatabase reply_type: DropDatabaseReply @@ -105,6 +107,7 @@ commands: description: "Parser for the _shardsvrDropCollection command" command_name: _shardsvrDropCollection namespace: concatenate_with_db + api_version: "" cpp_name: ShardsvrDropCollection strict: false @@ -112,6 +115,7 @@ commands: description: "Parser for the _shardsvrDropCollectionParticipant command" command_name: _shardsvrDropCollectionParticipant namespace: concatenate_with_db + api_version: "" cpp_name: ShardsvrDropCollectionParticipant strict: false @@ -121,6 +125,7 @@ commands: description: "Internal renameCollection command for a shard." strict: false namespace: concatenate_with_db + api_version: "" fields: to: type: namespacestring @@ -140,6 +145,7 @@ commands: description: "Parser for the _shardsvrRefineCollectionShardKey command" command_name: _shardsvrRefineCollectionShardKey namespace: concatenate_with_db + api_version: "" fields: newShardKey: type: KeyPattern diff --git a/src/mongo/s/request_types/wait_for_fail_point.idl b/src/mongo/s/request_types/wait_for_fail_point.idl index ff98202722b..2d5af8e370b 100644 --- a/src/mongo/s/request_types/wait_for_fail_point.idl +++ b/src/mongo/s/request_types/wait_for_fail_point.idl @@ -40,6 +40,7 @@ commands: command_name: waitForFailPoint strict: false namespace: type + api_version: "" type: string fields: timesEntered: |