summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgregs <greg@10gen.com>2011-07-12 10:58:42 -0400
committergregs <greg@10gen.com>2011-07-12 11:17:33 -0400
commit1b048c3a01aaaca98dbc2625920a52f39245d987 (patch)
tree794a167bc7222a9cc7e9b3dbe831c80a61d331e9
parent3337ab497cd55e25fbdbe732e6c40c724add857d (diff)
downloadmongo-1b048c3a01aaaca98dbc2625920a52f39245d987.tar.gz
supress sharded sub-connection warning for getLastError()
-rw-r--r--s/client.cpp4
-rw-r--r--s/shard.h8
-rw-r--r--s/shardconnection.cpp20
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;
}