summaryrefslogtreecommitdiff
path: root/src/mongo/s/commands/commands_public.cpp
diff options
context:
space:
mode:
authorJudah Schvimer <judah@mongodb.com>2016-04-12 19:11:23 -0400
committerJudah Schvimer <judah@mongodb.com>2016-04-12 19:11:23 -0400
commit7ed530a55304bd9cc2b80c054f379b10d9cea8e2 (patch)
treeff1dac44961da031f3369f0288fb38a347d0d690 /src/mongo/s/commands/commands_public.cpp
parentb0c0acc6767a74ed2e5aa50361ad4474291951f9 (diff)
downloadmongo-7ed530a55304bd9cc2b80c054f379b10d9cea8e2.tar.gz
SERVER-20224 commands that write support writeConcern
Diffstat (limited to 'src/mongo/s/commands/commands_public.cpp')
-rw-r--r--src/mongo/s/commands/commands_public.cpp82
1 files changed, 80 insertions, 2 deletions
diff --git a/src/mongo/s/commands/commands_public.cpp b/src/mongo/s/commands/commands_public.cpp
index 933877fc369..96293f9d698 100644
--- a/src/mongo/s/commands/commands_public.cpp
+++ b/src/mongo/s/commands/commands_public.cpp
@@ -252,6 +252,9 @@ public:
actions.addAction(ActionType::dropIndex);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
} dropIndexesCmd;
class CreateIndexesCmd : public AllShardsCollectionCommand {
@@ -361,6 +364,10 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
+
} createIndexesCmd;
class ReIndexCmd : public AllShardsCollectionCommand {
@@ -373,6 +380,10 @@ public:
actions.addAction(ActionType::reIndex);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
} reIndexCmd;
class CollectionModCmd : public AllShardsCollectionCommand {
@@ -385,6 +396,10 @@ public:
actions.addAction(ActionType::collMod);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
} collectionModCmd;
@@ -399,6 +414,10 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
+
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -476,6 +495,9 @@ public:
return Status(ErrorCodes::Unauthorized, "unauthorized");
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -505,6 +527,10 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
+
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -537,7 +563,6 @@ public:
return true;
}
-
} dropCmd;
class RenameCollectionCmd : public PublicGridCommand {
@@ -551,6 +576,9 @@ public:
virtual bool adminOnly() const {
return true;
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -590,6 +618,9 @@ public:
const BSONObj& cmdObj) {
return copydb::checkAuthForCopydbCommand(client, dbname, cmdObj);
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
bool run(OperationContext* txn,
const string& dbName,
@@ -637,7 +668,6 @@ public:
return adminPassthrough(txn, confTo, fixed, result);
}
}
-
} clusterCopyDBCmd;
class CollectionStats : public PublicGridCommand {
@@ -651,6 +681,10 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
+
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -815,6 +849,9 @@ public:
actions.addAction(ActionType::find);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -896,6 +933,10 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
+
} convertToCappedCmd;
class GroupCmd : public NotAllowedOnShardedCollectionCmd {
@@ -909,6 +950,10 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
+
virtual bool passOptions() const {
return true;
}
@@ -993,6 +1038,9 @@ public:
virtual bool passOptions() const {
return true;
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
virtual Status checkAuthForCommand(ClientBasic* client,
const std::string& dbname,
const BSONObj& cmdObj) {
@@ -1038,6 +1086,9 @@ public:
actions.addAction(ActionType::find);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
bool run(OperationContext* txn,
const string& dbName,
@@ -1166,6 +1217,10 @@ public:
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), ActionType::find));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
+
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -1293,6 +1348,9 @@ public:
actions.addAction(ActionType::find);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
bool run(OperationContext* txn,
const string& dbName,
@@ -1414,6 +1472,9 @@ public:
// applyOps can do pretty much anything, so require all privileges.
RoleGraph::generateUniversalPrivileges(out);
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return true;
+ }
virtual bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -1435,6 +1496,9 @@ public:
actions.addAction(ActionType::compact);
out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions));
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
virtual bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -1455,6 +1519,9 @@ public:
// $eval can do pretty much anything, so require all privileges.
RoleGraph::generateUniversalPrivileges(out);
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
virtual bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -1500,6 +1567,10 @@ public:
str::stream() << "Not authorized to create users on db: " << dbname);
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
+
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -1539,6 +1610,10 @@ public:
<< "Not authorized to list indexes on collection: " << ns.coll());
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
+
bool run(OperationContext* txn,
const string& dbName,
BSONObj& cmdObj,
@@ -1567,6 +1642,9 @@ public:
const BSONObj& cmdObj) {
return Status::OK();
}
+ virtual bool supportsWriteConcern(const BSONObj& cmd) const override {
+ return false;
+ }
virtual bool run(OperationContext* txn,
const string& dbname,