diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/audit.cpp | 16 | ||||
-rw-r--r-- | src/mongo/db/audit.h | 29 | ||||
-rw-r--r-- | src/mongo/s/commands_admin.cpp | 5 |
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(); |