summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline
diff options
context:
space:
mode:
authorBen Caimano <ben.caimano@10gen.com>2018-07-31 18:26:07 -0400
committerBen Caimano <ben.caimano@10gen.com>2018-07-31 18:32:19 -0400
commit6711ab3bbc02ca98da1af2fe115f07e37bb076e4 (patch)
treef1859ba3692a982b0afbd06fcb523c830136c25c /src/mongo/db/pipeline
parent35757e8ef3134fad1a09cb09a69882929d9ebb76 (diff)
downloadmongo-6711ab3bbc02ca98da1af2fe115f07e37bb076e4.tar.gz
Revert "SERVER-35890 refactor User cache into InvalidatingLRUCache and UserHandle"
This reverts commit 78dec3622268ad27bb855eda4c6a4ed345412fd9.
Diffstat (limited to 'src/mongo/db/pipeline')
-rw-r--r--src/mongo/db/pipeline/SConscript1
-rw-r--r--src/mongo/db/pipeline/document_source_list_cached_and_active_users.cpp83
-rw-r--r--src/mongo/db/pipeline/document_source_list_cached_and_active_users.h113
3 files changed, 0 insertions, 197 deletions
diff --git a/src/mongo/db/pipeline/SConscript b/src/mongo/db/pipeline/SConscript
index 0195c38f596..a9bad067648 100644
--- a/src/mongo/db/pipeline/SConscript
+++ b/src/mongo/db/pipeline/SConscript
@@ -287,7 +287,6 @@ pipelineeEnv.Library(
'document_source_internal_inhibit_optimization.cpp',
'document_source_internal_split_pipeline.cpp',
'document_source_limit.cpp',
- 'document_source_list_cached_and_active_users.cpp',
'document_source_list_local_cursors.cpp',
'document_source_list_local_sessions.cpp',
'document_source_list_sessions.cpp',
diff --git a/src/mongo/db/pipeline/document_source_list_cached_and_active_users.cpp b/src/mongo/db/pipeline/document_source_list_cached_and_active_users.cpp
deleted file mode 100644
index 0c9fd53fefe..00000000000
--- a/src/mongo/db/pipeline/document_source_list_cached_and_active_users.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Copyright (C) 2018 MongoDB Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * As a special exception, the copyright holders give permission to link the
- * code of portions of this program with the OpenSSL library under certain
- * conditions as described in each individual source file and distribute
- * linked combinations including the program with the OpenSSL library. You
- * must comply with the GNU Affero General Public License in all respects
- * for all of the code used other than as permitted herein. If you modify
- * file(s) with this exception, you may extend this exception to your
- * version of the file(s), but you are not obligated to do so. If you do not
- * wish to do so, delete this exception statement from your version. If you
- * delete this exception statement from all source files in the program,
- * then also delete it in the license file.
- */
-
-#include "mongo/platform/basic.h"
-
-#include "mongo/db/pipeline/document_source_list_cached_and_active_users.h"
-
-#include "mongo/db/auth/authorization_session.h"
-#include "mongo/db/auth/user_name.h"
-#include "mongo/db/commands/test_commands_enabled.h"
-#include "mongo/db/logical_session_id_helpers.h"
-
-namespace mongo {
-
-REGISTER_TEST_DOCUMENT_SOURCE(listCachedAndActiveUsers,
- DocumentSourceListCachedAndActiveUsers::LiteParsed::parse,
- DocumentSourceListCachedAndActiveUsers::createFromBson);
-
-const char* DocumentSourceListCachedAndActiveUsers::kStageName = "$listCachedAndActiveUsers";
-
-DocumentSource::GetNextResult DocumentSourceListCachedAndActiveUsers::getNext() {
- pExpCtx->checkForInterrupt();
-
- if (!_users.empty()) {
- const auto info = std::move(_users.back());
- _users.pop_back();
- return Document(BSON("username" << info.userName.getUser() << "db" << info.userName.getDB()
- << "active"
- << info.active));
- }
-
- return GetNextResult::makeEOF();
-}
-
-boost::intrusive_ptr<DocumentSource> DocumentSourceListCachedAndActiveUsers::createFromBson(
- BSONElement spec, const boost::intrusive_ptr<ExpressionContext>& pExpCtx) {
-
- uassert(
- ErrorCodes::InvalidNamespace,
- str::stream() << kStageName
- << " must be run against the database with {aggregate: 1}, not a collection",
- pExpCtx->ns.isCollectionlessAggregateNS());
-
- uassert(ErrorCodes::BadValue,
- str::stream() << kStageName << " must be run as { " << kStageName << ": {}}",
- spec.isABSONObj() && spec.Obj().isEmpty());
-
- return new DocumentSourceListCachedAndActiveUsers(pExpCtx);
-}
-
-DocumentSourceListCachedAndActiveUsers::DocumentSourceListCachedAndActiveUsers(
- const boost::intrusive_ptr<ExpressionContext>& pExpCtx)
- : DocumentSource(pExpCtx), _users() {
- auto authMgr = AuthorizationManager::get(pExpCtx->opCtx->getServiceContext());
- _users = authMgr->getUserCacheInfo();
-}
-
-} // namespace mongo
diff --git a/src/mongo/db/pipeline/document_source_list_cached_and_active_users.h b/src/mongo/db/pipeline/document_source_list_cached_and_active_users.h
deleted file mode 100644
index c46fe59cbaa..00000000000
--- a/src/mongo/db/pipeline/document_source_list_cached_and_active_users.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * Copyright (C) 2018 MongoDB Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * As a special exception, the copyright holders give permission to link the
- * code of portions of this program with the OpenSSL library under certain
- * conditions as described in each individual source file and distribute
- * linked combinations including the program with the OpenSSL library. You
- * must comply with the GNU Affero General Public License in all respects
- * for all of the code used other than as permitted herein. If you modify
- * file(s) with this exception, you may extend this exception to your
- * version of the file(s), but you are not obligated to do so. If you do not
- * wish to do so, delete this exception statement from your version. If you
- * delete this exception statement from all source files in the program,
- * then also delete it in the license file.
- */
-
-#pragma once
-
-#include "mongo/bson/bsonmisc.h"
-#include "mongo/bson/bsonobj.h"
-#include "mongo/db/auth/authorization_manager.h"
-#include "mongo/db/pipeline/document_source.h"
-#include "mongo/db/pipeline/lite_parsed_document_source.h"
-
-namespace mongo {
-
-/*
- * This implements an aggregation document source that lists the active/cached users in the
- * authorization manager. It is intended for diagnostic and reporting purposes.
- */
-class DocumentSourceListCachedAndActiveUsers final : public DocumentSource {
-public:
- static const char* kStageName;
-
- class LiteParsed final : public LiteParsedDocumentSource {
- public:
- static std::unique_ptr<LiteParsed> parse(const AggregationRequest& request,
- const BSONElement& spec) {
- return stdx::make_unique<LiteParsed>();
- }
-
- stdx::unordered_set<NamespaceString> getInvolvedNamespaces() const final {
- return stdx::unordered_set<NamespaceString>();
- }
-
- PrivilegeVector requiredPrivileges(bool isMongos) const final {
- return {Privilege(ResourcePattern::forAnyNormalResource(),
- ActionType::listCachedAndActiveUsers)};
- }
-
- bool isInitialSource() const final {
- return true;
- }
-
- bool allowedToForwardFromMongos() const final {
- return false;
- }
-
- void assertSupportsReadConcern(const repl::ReadConcernArgs& readConcern) const {
- uassert(ErrorCodes::InvalidOptions,
- str::stream() << "Aggregation stage " << kStageName << " cannot run with a "
- << "readConcern other than 'local', or in a multi-document "
- << "transaction. Current readConcern: "
- << readConcern.toString(),
- readConcern.getLevel() == repl::ReadConcernLevel::kLocalReadConcern);
- }
- };
-
- GetNextResult getNext() final;
-
- const char* getSourceName() const final {
- return kStageName;
- }
-
- Value serialize(boost::optional<ExplainOptions::Verbosity> explain = boost::none) const final {
- return Value(Document{{getSourceName(), Document{}}});
- }
-
- StageConstraints constraints(Pipeline::SplitState pipeState) const final {
- StageConstraints constraints(StreamType::kStreaming,
- PositionRequirement::kFirst,
- HostTypeRequirement::kLocalOnly,
- DiskUseRequirement::kNoDiskUse,
- FacetRequirement::kNotAllowed,
- TransactionRequirement::kNotAllowed);
-
- constraints.isIndependentOfAnyCollection = true;
- constraints.requiresInputDocSource = false;
- return constraints;
- }
-
- static boost::intrusive_ptr<DocumentSource> createFromBson(
- BSONElement elem, const boost::intrusive_ptr<ExpressionContext>& pExpCtx);
-
-private:
- DocumentSourceListCachedAndActiveUsers(const boost::intrusive_ptr<ExpressionContext>& pExpCtx);
-
- std::vector<AuthorizationManager::CachedUserInfo> _users;
-};
-
-} // namespace mongo