summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/audit.cpp16
-rw-r--r--src/mongo/db/audit.h29
-rw-r--r--src/mongo/s/commands_admin.cpp5
3 files changed, 50 insertions, 0 deletions
diff --git a/src/mongo/db/audit.cpp b/src/mongo/db/audit.cpp
index 28ee3ee1c96..051cc54c856 100644
--- a/src/mongo/db/audit.cpp
+++ b/src/mongo/db/audit.cpp
@@ -195,6 +195,22 @@ namespace audit {
void logRenameCollection(ClientBasic* client,
const StringData& source,
const StringData& target) MONGO_AUDIT_STUB
+
+ void logEnableSharding(ClientBasic* client,
+ const StringData& dbname) MONGO_AUDIT_STUB
+
+ void logAddShard(ClientBasic* client,
+ const StringData& name,
+ const std::string& servers,
+ long long maxsize) MONGO_AUDIT_STUB
+
+ void logRemoveShard(ClientBasic* client,
+ const StringData& shardname) MONGO_AUDIT_STUB
+
+ void logShardCollection(ClientBasic* client,
+ const StringData& ns,
+ const BSONObj& keyPattern,
+ bool unique) MONGO_AUDIT_STUB
} // namespace audit
} // namespace mongo
diff --git a/src/mongo/db/audit.h b/src/mongo/db/audit.h
index 2012f14d865..1b131df23b5 100644
--- a/src/mongo/db/audit.h
+++ b/src/mongo/db/audit.h
@@ -326,5 +326,34 @@ namespace audit {
void logRenameCollection(ClientBasic* client,
const StringData& source,
const StringData& target);
+
+ /**
+ * Logs the result of a enableSharding command.
+ */
+ void logEnableSharding(ClientBasic* client,
+ const StringData& dbname);
+
+ /**
+ * Logs the result of a addShard command.
+ */
+ void logAddShard(ClientBasic* client,
+ const StringData& name,
+ const std::string& servers,
+ long long maxsize);
+
+ /**
+ * Logs the result of a removeShard command.
+ */
+ void logRemoveShard(ClientBasic* client,
+ const StringData& shardname);
+
+ /**
+ * Logs the result of a shardCollection command.
+ */
+ void logShardCollection(ClientBasic* client,
+ const StringData& ns,
+ const BSONObj& keyPattern,
+ bool unique);
+
} // namespace audit
} // namespace mongo
diff --git a/src/mongo/s/commands_admin.cpp b/src/mongo/s/commands_admin.cpp
index 0400b0d12a2..434d506be99 100644
--- a/src/mongo/s/commands_admin.cpp
+++ b/src/mongo/s/commands_admin.cpp
@@ -32,6 +32,7 @@
#include "mongo/client/connpool.h"
#include "mongo/client/dbclientcursor.h"
+#include "mongo/db/audit.h"
#include "mongo/db/auth/action_set.h"
#include "mongo/db/auth/action_type.h"
#include "mongo/db/auth/authorization_manager.h"
@@ -405,6 +406,7 @@ namespace mongo {
log() << "enabling sharding on: " << dbname << endl;
+ audit::logEnableSharding(ClientBasic::getCurrent(), dbname);
config->enableSharding();
return true;
@@ -714,6 +716,7 @@ namespace mongo {
MONGO_TLOG(0) << "CMD: shardcollection: " << cmdObj << endl;
+ audit::logShardCollection(ClientBasic::getCurrent(), ns, proposedKey, careAboutUnique);
config->shardCollection( ns , proposedKey , careAboutUnique , &initSplits );
result << "collectionsharded" << ns;
@@ -1169,6 +1172,7 @@ namespace mongo {
maxSize = cmdObj[ ShardType::maxSize() ].numberLong();
}
+ audit::logAddShard(ClientBasic::getCurrent(), name, servers.toString(), maxSize);
if ( ! grid.addShard( &name , servers , maxSize , errmsg ) ) {
log() << "addshard request " << cmdObj << " failed: " << errmsg << endl;
return false;
@@ -1294,6 +1298,7 @@ namespace mongo {
long long dbCount = conn->count( DatabaseType::ConfigNS , primaryDoc );
if ( ( chunkCount == 0 ) && ( dbCount == 0 ) ) {
log() << "going to remove shard: " << s.getName() << endl;
+ audit::logRemoveShard(ClientBasic::getCurrent(), s.getName());
conn->remove( ShardType::ConfigNS , searchDoc );
errmsg = conn->getLastError();