diff options
author | Sophia Tan <sophia_tll@hotmail.com> | 2022-02-01 22:44:24 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-02-02 00:22:04 +0000 |
commit | 0d797a301311d07c79a1e71242b074ac143c26f2 (patch) | |
tree | dc65cc3bd551eb5192c8641d388fe95d1db528e2 /src/mongo/db/commands/validate_db_metadata_cmd.cpp | |
parent | d309d6cdce21048301f7368d596db818c11e4663 (diff) | |
download | mongo-0d797a301311d07c79a1e71242b074ac143c26f2.tar.gz |
SERVER-63101 Have CollectionCatalog APIs return a set TenantDatabaseName
Diffstat (limited to 'src/mongo/db/commands/validate_db_metadata_cmd.cpp')
-rw-r--r-- | src/mongo/db/commands/validate_db_metadata_cmd.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/mongo/db/commands/validate_db_metadata_cmd.cpp b/src/mongo/db/commands/validate_db_metadata_cmd.cpp index 999865ba5b3..13b832c3257 100644 --- a/src/mongo/db/commands/validate_db_metadata_cmd.cpp +++ b/src/mongo/db/commands/validate_db_metadata_cmd.cpp @@ -40,6 +40,7 @@ #include "mongo/db/commands/validate_db_metadata_common.h" #include "mongo/db/commands/validate_db_metadata_gen.h" #include "mongo/db/db_raii.h" +#include "mongo/db/multitenancy.h" #include "mongo/db/views/view_catalog.h" #include "mongo/logv2/log.h" namespace mongo { @@ -119,19 +120,21 @@ public: // If there is no database name present in the input, run validation against all the // databases. - auto dbNames = validateCmdRequest.getDb() - ? std::vector<std::string>{validateCmdRequest.getDb()->toString()} + auto tenantDbNames = validateCmdRequest.getDb() + ? std::vector<TenantDatabaseName>{TenantDatabaseName( + getActiveTenant(opCtx), validateCmdRequest.getDb()->toString())} : collectionCatalog->getAllDbNames(); - for (const auto& dbName : dbNames) { - AutoGetDb autoDb(opCtx, dbName, LockMode::MODE_IS); + for (const auto& tenantDbName : tenantDbNames) { + AutoGetDb autoDb(opCtx, tenantDbName.dbName(), LockMode::MODE_IS); if (!autoDb.getDb()) { continue; } if (validateCmdRequest.getCollection()) { - if (!_validateNamespace( - opCtx, NamespaceString(dbName, *validateCmdRequest.getCollection()))) { + if (!_validateNamespace(opCtx, + NamespaceString(tenantDbName.dbName(), + *validateCmdRequest.getCollection()))) { return; } continue; @@ -139,13 +142,15 @@ public: // If there is no collection name present in the input, run validation against all // the collections. - if (auto viewCatalog = DatabaseHolder::get(opCtx)->getViewCatalog(opCtx, dbName)) { - viewCatalog->iterate(dbName, [this, opCtx](const ViewDefinition& view) { - return _validateView(opCtx, view); - }); + if (auto viewCatalog = + DatabaseHolder::get(opCtx)->getViewCatalog(opCtx, tenantDbName.dbName())) { + viewCatalog->iterate(tenantDbName.dbName(), + [this, opCtx](const ViewDefinition& view) { + return _validateView(opCtx, view); + }); } - for (auto collIt = collectionCatalog->begin(opCtx, dbName); + for (auto collIt = collectionCatalog->begin(opCtx, tenantDbName.dbName()); collIt != collectionCatalog->end(opCtx); ++collIt) { if (!_validateNamespace( |