diff options
author | gregs <greg@10gen.com> | 2011-07-12 10:58:42 -0400 |
---|---|---|
committer | gregs <greg@10gen.com> | 2011-07-12 11:17:33 -0400 |
commit | 1b048c3a01aaaca98dbc2625920a52f39245d987 (patch) | |
tree | 794a167bc7222a9cc7e9b3dbe831c80a61d331e9 | |
parent | 3337ab497cd55e25fbdbe732e6c40c724add857d (diff) | |
download | mongo-1b048c3a01aaaca98dbc2625920a52f39245d987.tar.gz |
supress sharded sub-connection warning for getLastError()
-rw-r--r-- | s/client.cpp | 4 | ||||
-rw-r--r-- | s/shard.h | 8 | ||||
-rw-r--r-- | s/shardconnection.cpp | 20 |
3 files changed, 16 insertions, 16 deletions
diff --git a/s/client.cpp b/s/client.cpp index c0d25fbeeb7..c0532896c48 100644 --- a/s/client.cpp +++ b/s/client.cpp @@ -141,7 +141,7 @@ namespace mongo { if ( shards->size() == 1 ) { string theShard = *(shards->begin() ); - ShardConnection conn( theShard , "" ); + ShardConnection conn( theShard , "", true ); BSONObj res; bool ok = false; @@ -211,7 +211,7 @@ namespace mongo { for ( set<string>::iterator i = shards->begin(); i != shards->end(); i++ ) { string theShard = *i; bbb.append( theShard ); - ShardConnection conn( theShard , "" ); + ShardConnection conn( theShard , "", true ); BSONObj res; bool ok = false; try { diff --git a/s/shard.h b/s/shard.h index 836ffe7753d..70e478c7351 100644 --- a/s/shard.h +++ b/s/shard.h @@ -213,9 +213,9 @@ namespace mongo { class ShardConnection : public AScopedConnection { public: - ShardConnection( const Shard * s , const string& ns ); - ShardConnection( const Shard& s , const string& ns ); - ShardConnection( const string& addr , const string& ns ); + ShardConnection( const Shard * s , const string& ns, bool ignoreDirect = false ); + ShardConnection( const Shard& s , const string& ns, bool ignoreDirect = false ); + ShardConnection( const string& addr , const string& ns, bool ignoreDirect = false ); ~ShardConnection(); @@ -265,7 +265,7 @@ namespace mongo { static void checkMyConnectionVersions( const string & ns ); private: - void _init(); + void _init( bool ignoreDirect = false ); void _finishInit(); bool _finishedInit; diff --git a/s/shardconnection.cpp b/s/shardconnection.cpp index 7aec50188df..ec14139bde2 100644 --- a/s/shardconnection.cpp +++ b/s/shardconnection.cpp @@ -79,12 +79,12 @@ namespace mongo { _hosts.clear(); } - DBClientBase * get( const string& addr , const string& ns ) { + DBClientBase * get( const string& addr , const string& ns, bool ignoreDirect = false ) { _check( ns ); // Determine if non-shard conn is RS member for warning // All shards added to _hosts if not present in _check() - if( ( logLevel >= 1 || ! printedShardConnWarning ) && _hosts.find( addr ) == _hosts.end() ){ + if( ( logLevel >= 1 || ! printedShardConnWarning ) && ! ignoreDirect && _hosts.find( addr ) == _hosts.end() ){ vector<Shard> all; Shard::getAllShards( all ); @@ -221,24 +221,24 @@ namespace mongo { thread_specific_ptr<ClientConnections> ClientConnections::_perThread; - ShardConnection::ShardConnection( const Shard * s , const string& ns ) + ShardConnection::ShardConnection( const Shard * s , const string& ns, bool ignoreDirect ) : _addr( s->getConnString() ) , _ns( ns ) { - _init(); + _init( ignoreDirect ); } - ShardConnection::ShardConnection( const Shard& s , const string& ns ) + ShardConnection::ShardConnection( const Shard& s , const string& ns, bool ignoreDirect ) : _addr( s.getConnString() ) , _ns( ns ) { - _init(); + _init( ignoreDirect ); } - ShardConnection::ShardConnection( const string& addr , const string& ns ) + ShardConnection::ShardConnection( const string& addr , const string& ns, bool ignoreDirect ) : _addr( addr ) , _ns( ns ) { - _init(); + _init( ignoreDirect ); } - void ShardConnection::_init() { + void ShardConnection::_init( bool ignoreDirect ) { assert( _addr.size() ); - _conn = ClientConnections::threadInstance()->get( _addr , _ns ); + _conn = ClientConnections::threadInstance()->get( _addr , _ns, ignoreDirect ); _finishedInit = false; } |