summaryrefslogtreecommitdiff
path: root/src/mongo/s/commands/cluster_drop_cmd.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-03-12 17:27:34 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-03-12 17:27:34 -0400
commit8125c55a251805899552d0af4776930216223703 (patch)
tree3e1a43aa762a2136422b4fa66f70ee89222d29a1 /src/mongo/s/commands/cluster_drop_cmd.cpp
parentae2518adace4ba7ed6a16eba6943bff6ea4ade10 (diff)
downloadmongo-8125c55a251805899552d0af4776930216223703.tar.gz
Revert "SERVER-22611 Sharding catalog cache refactor"
This reverts commit ae2518adace4ba7ed6a16eba6943bff6ea4ade10.
Diffstat (limited to 'src/mongo/s/commands/cluster_drop_cmd.cpp')
-rw-r--r--src/mongo/s/commands/cluster_drop_cmd.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/mongo/s/commands/cluster_drop_cmd.cpp b/src/mongo/s/commands/cluster_drop_cmd.cpp
index 583c8902cbf..2c44a5a1dbc 100644
--- a/src/mongo/s/commands/cluster_drop_cmd.cpp
+++ b/src/mongo/s/commands/cluster_drop_cmd.cpp
@@ -41,6 +41,7 @@
#include "mongo/s/commands/cluster_commands_common.h"
#include "mongo/s/commands/sharded_command_processing.h"
#include "mongo/s/grid.h"
+#include "mongo/s/sharding_raii.h"
#include "mongo/s/stale_exception.h"
#include "mongo/util/log.h"
@@ -79,20 +80,20 @@ public:
BSONObjBuilder& result) override {
const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj));
- auto const catalogCache = Grid::get(opCtx)->catalogCache();
-
- auto routingInfoStatus = catalogCache->getCollectionRoutingInfo(opCtx, nss);
- if (routingInfoStatus == ErrorCodes::NamespaceNotFound) {
+ auto scopedDbStatus = ScopedShardDatabase::getExisting(opCtx, dbname);
+ if (scopedDbStatus == ErrorCodes::NamespaceNotFound) {
return true;
}
- auto routingInfo = uassertStatusOK(std::move(routingInfoStatus));
+ uassertStatusOK(scopedDbStatus.getStatus());
+
+ auto const db = scopedDbStatus.getValue().db();
- if (!routingInfo.cm()) {
- _dropUnshardedCollectionFromShard(opCtx, routingInfo.primaryId(), nss, &result);
+ if (!db->isSharded(nss.ns())) {
+ _dropUnshardedCollectionFromShard(opCtx, db->getPrimaryId(), nss, &result);
} else {
uassertStatusOK(Grid::get(opCtx)->catalogClient(opCtx)->dropCollection(opCtx, nss));
- catalogCache->invalidateShardedCollection(nss);
+ db->markNSNotSharded(nss.ns());
}
return true;