diff options
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/auth/role_graph_builtin_roles.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/pipeline/SConscript | 1 | ||||
-rw-r--r-- | src/mongo/db/pipeline/document_source_list_local_cursors.cpp | 73 | ||||
-rw-r--r-- | src/mongo/db/pipeline/document_source_list_local_cursors.h | 115 |
4 files changed, 0 insertions, 191 deletions
diff --git a/src/mongo/db/auth/role_graph_builtin_roles.cpp b/src/mongo/db/auth/role_graph_builtin_roles.cpp index d9875a20f96..589a4feb0e8 100644 --- a/src/mongo/db/auth/role_graph_builtin_roles.cpp +++ b/src/mongo/db/auth/role_graph_builtin_roles.cpp @@ -182,7 +182,6 @@ MONGO_INITIALIZER(AuthorizationBuiltinRoles)(InitializerContext* context) { << ActionType::getParameter << ActionType::getShardMap << ActionType::hostInfo - << ActionType::listCursors // clusterManager gets this also << ActionType::listDatabases << ActionType::listSessions // clusterManager gets this also << ActionType::listShards // clusterManager gets this also @@ -238,7 +237,6 @@ MONGO_INITIALIZER(AuthorizationBuiltinRoles)(InitializerContext* context) { << ActionType::resync // hostManager gets this also << ActionType::addShard << ActionType::removeShard - << ActionType::listCursors // clusterManager gets this also << ActionType::listSessions // clusterMonitor gets this also << ActionType::listShards // clusterMonitor gets this also << ActionType::flushRouterConfig // hostManager gets this also diff --git a/src/mongo/db/pipeline/SConscript b/src/mongo/db/pipeline/SConscript index 1e07bb15e4f..c236e273752 100644 --- a/src/mongo/db/pipeline/SConscript +++ b/src/mongo/db/pipeline/SConscript @@ -361,7 +361,6 @@ pipelineeEnv.Library( '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', 'document_source_lookup.cpp', diff --git a/src/mongo/db/pipeline/document_source_list_local_cursors.cpp b/src/mongo/db/pipeline/document_source_list_local_cursors.cpp deleted file mode 100644 index 4e63c792df8..00000000000 --- a/src/mongo/db/pipeline/document_source_list_local_cursors.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (C) 2017 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_local_cursors.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(listLocalCursors, - DocumentSourceListLocalCursors::LiteParsed::parse, - DocumentSourceListLocalCursors::createFromBson); - -const char* DocumentSourceListLocalCursors::kStageName = "$listLocalCursors"; - -DocumentSource::GetNextResult DocumentSourceListLocalCursors::getNext() { - pExpCtx->checkForInterrupt(); - - if (!_cursors.empty()) { - Document doc(_cursors.back().toBSON()); - _cursors.pop_back(); - return std::move(doc); - } - - return GetNextResult::makeEOF(); -} - -boost::intrusive_ptr<DocumentSource> DocumentSourceListLocalCursors::createFromBson( - BSONElement spec, const boost::intrusive_ptr<ExpressionContext>& pExpCtx) { - - uassert(ErrorCodes::BadValue, - str::stream() << kStageName << " must be run as { " << kStageName << ": {}}", - spec.isABSONObj() && spec.Obj().isEmpty()); - - return new DocumentSourceListLocalCursors(pExpCtx); -} - -DocumentSourceListLocalCursors::DocumentSourceListLocalCursors( - const boost::intrusive_ptr<ExpressionContext>& pExpCtx) - : DocumentSource(pExpCtx), - _cursors(pExpCtx->mongoProcessInterface->getIdleCursors( - pExpCtx, MongoProcessInterface::CurrentOpUserMode::kIncludeAll)) {} -} diff --git a/src/mongo/db/pipeline/document_source_list_local_cursors.h b/src/mongo/db/pipeline/document_source_list_local_cursors.h deleted file mode 100644 index 1725cc70f44..00000000000 --- a/src/mongo/db/pipeline/document_source_list_local_cursors.h +++ /dev/null @@ -1,115 +0,0 @@ -/** - * Copyright (C) 2017 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 <vector> - -#include "mongo/bson/bsonmisc.h" -#include "mongo/bson/bsonobj.h" -#include "mongo/db/generic_cursor.h" -#include "mongo/db/pipeline/document_source.h" -#include "mongo/db/pipeline/lite_parsed_document_source.h" - -namespace mongo { - -/** - * Produces one document per session in the local cache if 'allUsers' is specified - * as true, and returns just sessions for the currently logged in user if - * 'allUsers' is specified as false, or not specified at all. - */ -class DocumentSourceListLocalCursors 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::forClusterResource(), ActionType::listCursors)}; - } - - 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: - DocumentSourceListLocalCursors(const boost::intrusive_ptr<ExpressionContext>& pExpCtx); - - std::vector<GenericCursor> _cursors; -}; - -} // namespace mongo |