summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorTed Tuckman <ted.tuckman@mongodb.com>2018-10-10 10:17:12 -0400
committerTed Tuckman <ted.tuckman@mongodb.com>2018-10-12 09:45:05 -0400
commit8e638c938ed3c17d090a85de8b35676af31f8db5 (patch)
treef1f4047458badda283a3991dee841112b2918bc9 /src/mongo
parent65eced031a2c8d8b1c5e5815881466b8fbb3bc01 (diff)
downloadmongo-8e638c938ed3c17d090a85de8b35676af31f8db5.tar.gz
Remove listLocalCursors
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/auth/role_graph_builtin_roles.cpp2
-rw-r--r--src/mongo/db/pipeline/SConscript1
-rw-r--r--src/mongo/db/pipeline/document_source_list_local_cursors.cpp73
-rw-r--r--src/mongo/db/pipeline/document_source_list_local_cursors.h115
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