summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2014-09-25 12:35:38 -0400
committerDavid Storch <david.storch@10gen.com>2014-09-25 18:08:57 -0400
commit77b00970997d13d0758c745e5a94fc79982d4401 (patch)
tree2eba1844a398aa2188755553cbfec4f3a1f86d49 /src/mongo
parentf12b81dd15143d62768a4082f11ccc26692d6625 (diff)
downloadmongo-77b00970997d13d0758c745e5a94fc79982d4401.tar.gz
SERVER-15233 allow plan cache commands to run on secondaries is slaveOk explicitly set to true
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/commands/plan_cache_commands.cpp4
-rw-r--r--src/mongo/db/commands/plan_cache_commands.h2
-rw-r--r--src/mongo/s/commands/cluster_plan_cache_cmd.cpp8
3 files changed, 12 insertions, 2 deletions
diff --git a/src/mongo/db/commands/plan_cache_commands.cpp b/src/mongo/db/commands/plan_cache_commands.cpp
index 6ca998a1b71..601e9b47318 100644
--- a/src/mongo/db/commands/plan_cache_commands.cpp
+++ b/src/mongo/db/commands/plan_cache_commands.cpp
@@ -141,6 +141,10 @@ namespace mongo {
return false;
}
+ bool PlanCacheCommand::slaveOverrideOk() const {
+ return true;
+ }
+
void PlanCacheCommand::help(stringstream& ss) const {
ss << helpText;
}
diff --git a/src/mongo/db/commands/plan_cache_commands.h b/src/mongo/db/commands/plan_cache_commands.h
index 1a4a49a3c4f..34660d9a48b 100644
--- a/src/mongo/db/commands/plan_cache_commands.h
+++ b/src/mongo/db/commands/plan_cache_commands.h
@@ -65,6 +65,8 @@ namespace mongo {
virtual bool slaveOk() const;
+ virtual bool slaveOverrideOk() const;
+
virtual void help(std::stringstream& ss) const;
/**
diff --git a/src/mongo/s/commands/cluster_plan_cache_cmd.cpp b/src/mongo/s/commands/cluster_plan_cache_cmd.cpp
index 1aa015a495b..5bd87f4eb8a 100644
--- a/src/mongo/s/commands/cluster_plan_cache_cmd.cpp
+++ b/src/mongo/s/commands/cluster_plan_cache_cmd.cpp
@@ -58,6 +58,10 @@ namespace mongo {
return false;
}
+ bool slaveOverrideOk() const {
+ return true;
+ }
+
virtual bool isWriteCommandForConfigServer() const { return false; }
void help(stringstream& ss) const {
@@ -69,11 +73,11 @@ namespace mongo {
const BSONObj& cmdObj ) {
AuthorizationSession* authzSession = client->getAuthorizationSession();
ResourcePattern pattern = parseResourcePattern(dbname, cmdObj);
-
+
if (authzSession->isAuthorizedForActionsOnResource(pattern, _actionType)) {
return Status::OK();
}
-
+
return Status(ErrorCodes::Unauthorized, "unauthorized");
}