summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/validate_db_metadata_cmd.cpp
diff options
context:
space:
mode:
authorSophia Tan <sophia_tll@hotmail.com>2022-02-01 22:44:24 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-02-02 00:22:04 +0000
commit0d797a301311d07c79a1e71242b074ac143c26f2 (patch)
treedc65cc3bd551eb5192c8641d388fe95d1db528e2 /src/mongo/db/commands/validate_db_metadata_cmd.cpp
parentd309d6cdce21048301f7368d596db818c11e4663 (diff)
downloadmongo-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.cpp27
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(