diff options
author | Daniel Alabi <alabidan@gmail.com> | 2015-05-13 15:02:57 -0400 |
---|---|---|
committer | Daniel Alabi <alabidan@gmail.com> | 2015-05-14 11:04:49 -0400 |
commit | 825567624244ab595ef9468ca50473e489363a6a (patch) | |
tree | 4d367c5117ab3063a9ba159055437767062a19b7 | |
parent | 256c7a5f5673ba42b24d008b59e814ce59542fd9 (diff) | |
download | mongo-825567624244ab595ef9468ca50473e489363a6a.tar.gz |
SERVER-18127 User cache invalidator job should use the catalog manager to get cache generation
-rw-r--r-- | src/mongo/db/auth/user_cache_invalidator_job.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/mongo/db/auth/user_cache_invalidator_job.cpp b/src/mongo/db/auth/user_cache_invalidator_job.cpp index 7c4494adc2b..0989c05a354 100644 --- a/src/mongo/db/auth/user_cache_invalidator_job.cpp +++ b/src/mongo/db/auth/user_cache_invalidator_job.cpp @@ -41,7 +41,8 @@ #include "mongo/db/client.h" #include "mongo/db/commands.h" #include "mongo/db/server_parameters.h" -#include "mongo/s/config.h" +#include "mongo/s/catalog/catalog_manager.h" +#include "mongo/s/grid.h" #include "mongo/util/background.h" #include "mongo/util/exit.h" #include "mongo/util/log.h" @@ -90,19 +91,15 @@ namespace { StatusWith<OID> getCurrentCacheGeneration() { try { - ConnectionString config = configServer.getConnectionString(); - ScopedDbConnection conn(config.toString(), 30); - - BSONObj result; - conn->runCommand("admin", BSON("_getUserCacheGeneration" << 1), result); - conn.done(); - - Status status = Command::getStatusFromCommandResult(result); - if (!status.isOK()) { - return StatusWith<OID>(status); + BSONObjBuilder result; + const bool ok = grid.catalogManager()->runUserManagementReadCommand( + "admin", + BSON("_getUserCacheGeneration" << 1), + &result); + if (!ok) { + return Command::getStatusFromCommandResult(result.obj()); } - - return StatusWith<OID>(result["cacheGeneration"].OID()); + return result.obj()["cacheGeneration"].OID(); } catch (const DBException& e) { return StatusWith<OID>(e.toStatus()); } catch (const std::exception& e) { |