Rename "set_name" to "replica_set_name".
Rename the attributes of IsMaster, ServerDescription, TopologyDescription, and TopologySettings from "set_name" to "replica_set_name" for greater clarity.
This commit is contained in:
parent
5991635553
commit
0e222c4c4c
@ -79,7 +79,7 @@ class IsMaster(object):
|
||||
return None
|
||||
|
||||
@property
|
||||
def set_name(self):
|
||||
def replica_set_name(self):
|
||||
"""Replica set name or None."""
|
||||
return self._doc.get('setName')
|
||||
|
||||
|
||||
@ -305,7 +305,7 @@ class MongoClient(common.BaseObject):
|
||||
|
||||
self._topology_settings = TopologySettings(
|
||||
seeds=seeds,
|
||||
set_name=options.replica_set_name,
|
||||
replica_set_name=options.replica_set_name,
|
||||
pool_class=pool_class,
|
||||
pool_options=options.pool_options,
|
||||
monitor_class=monitor_class,
|
||||
|
||||
@ -28,7 +28,7 @@ class ServerDescription(object):
|
||||
"""
|
||||
|
||||
__slots__ = (
|
||||
'_address', '_server_type', '_all_hosts', '_tags', '_set_name',
|
||||
'_address', '_server_type', '_all_hosts', '_tags', '_replica_set_name',
|
||||
'_primary', '_max_bson_size', '_max_message_size',
|
||||
'_max_write_batch_size', '_min_wire_version', '_max_wire_version',
|
||||
'_round_trip_times', '_is_writable', '_is_readable')
|
||||
@ -45,7 +45,7 @@ class ServerDescription(object):
|
||||
self._server_type = ismaster.server_type
|
||||
self._all_hosts = ismaster.all_hosts
|
||||
self._tags = ismaster.tags
|
||||
self._set_name = ismaster.set_name
|
||||
self._replica_set_name = ismaster.replica_set_name
|
||||
self._primary = ismaster.primary
|
||||
self._max_bson_size = ismaster.max_bson_size
|
||||
self._max_message_size = ismaster.max_message_size
|
||||
@ -82,9 +82,9 @@ class ServerDescription(object):
|
||||
return self._tags
|
||||
|
||||
@property
|
||||
def set_name(self):
|
||||
def replica_set_name(self):
|
||||
"""Replica set name or None."""
|
||||
return self._set_name
|
||||
return self._replica_set_name
|
||||
|
||||
@property
|
||||
def primary(self):
|
||||
|
||||
@ -26,7 +26,7 @@ class TopologySettings(object):
|
||||
def __init__(
|
||||
self,
|
||||
seeds=None,
|
||||
set_name=None,
|
||||
replica_set_name=None,
|
||||
pool_class=None,
|
||||
pool_options=None,
|
||||
monitor_class=None,
|
||||
@ -37,12 +37,12 @@ class TopologySettings(object):
|
||||
Take a list of (host, port) pairs and optional replica set name.
|
||||
"""
|
||||
self._seeds = seeds or [('localhost', 27017)]
|
||||
self._set_name = set_name
|
||||
self._replica_set_name = replica_set_name
|
||||
self._pool_class = pool_class or pool.Pool
|
||||
self._pool_options = pool_options or PoolOptions()
|
||||
self._monitor_class = monitor_class or monitor.Monitor
|
||||
self._condition_class = condition_class or threading.Condition
|
||||
self._direct = (len(self._seeds) == 1 and not set_name)
|
||||
self._direct = (len(self._seeds) == 1 and not replica_set_name)
|
||||
|
||||
@property
|
||||
def seeds(self):
|
||||
@ -50,8 +50,8 @@ class TopologySettings(object):
|
||||
return self._seeds
|
||||
|
||||
@property
|
||||
def set_name(self):
|
||||
return self._set_name
|
||||
def replica_set_name(self):
|
||||
return self._replica_set_name
|
||||
|
||||
@property
|
||||
def pool_class(self):
|
||||
@ -73,14 +73,14 @@ class TopologySettings(object):
|
||||
def direct(self):
|
||||
"""Connect directly to a single server, or use a set of servers?
|
||||
|
||||
True if there is one seed and no set_name.
|
||||
True if there is one seed and no replica_set_name.
|
||||
"""
|
||||
return self._direct
|
||||
|
||||
def get_topology_type(self):
|
||||
if self.direct:
|
||||
return TOPOLOGY_TYPE.Single
|
||||
elif self.set_name is not None:
|
||||
elif self.replica_set_name is not None:
|
||||
return TOPOLOGY_TYPE.ReplicaSetNoPrimary
|
||||
else:
|
||||
return TOPOLOGY_TYPE.Unknown
|
||||
|
||||
@ -40,7 +40,7 @@ class Topology(object):
|
||||
topology_description = TopologyDescription(
|
||||
topology_settings.get_topology_type(),
|
||||
topology_settings.get_server_descriptions(),
|
||||
topology_settings.set_name)
|
||||
topology_settings.replica_set_name)
|
||||
|
||||
self._description = topology_description
|
||||
self._opened = False
|
||||
@ -93,7 +93,7 @@ class Topology(object):
|
||||
# internal hostnames or IPs and we're connecting from
|
||||
# outside. Or if we're a replica set and
|
||||
# server_descriptions is empty, we have the wrong
|
||||
# set_name. Include TopologyDescription's str() in
|
||||
# replica_set_name. Include TopologyDescription's str() in
|
||||
# exception msg.
|
||||
raise AutoReconnect("No suitable servers available")
|
||||
|
||||
|
||||
@ -28,17 +28,17 @@ TOPOLOGY_TYPE = namedtuple('TopologyType', ['Single', 'ReplicaSetNoPrimary',
|
||||
|
||||
|
||||
class TopologyDescription(object):
|
||||
def __init__(self, topology_type, server_descriptions, set_name):
|
||||
def __init__(self, topology_type, server_descriptions, replica_set_name):
|
||||
"""Represent a topology of servers.
|
||||
|
||||
:Parameters:
|
||||
- `topology_type`: initial type
|
||||
- `server_descriptions`: dict of (address, ServerDescription) for
|
||||
all seeds
|
||||
- `set_name`: replica set name or None
|
||||
- `replica_set_name`: replica set name or None
|
||||
"""
|
||||
self._topology_type = topology_type
|
||||
self._set_name = set_name
|
||||
self._replica_set_name = replica_set_name
|
||||
self._server_descriptions = server_descriptions
|
||||
|
||||
# Is PyMongo compatible with all servers' wire protocols?
|
||||
@ -93,7 +93,7 @@ class TopologyDescription(object):
|
||||
else:
|
||||
topology_type = self._topology_type
|
||||
|
||||
return TopologyDescription(topology_type, sds, self._set_name)
|
||||
return TopologyDescription(topology_type, sds, self._replica_set_name)
|
||||
|
||||
def reset(self):
|
||||
"""A copy of this description, with all servers marked Unknown."""
|
||||
@ -106,7 +106,7 @@ class TopologyDescription(object):
|
||||
sds = dict((address, ServerDescription(address))
|
||||
for address in self._server_descriptions)
|
||||
|
||||
return TopologyDescription(topology_type, sds, self._set_name)
|
||||
return TopologyDescription(topology_type, sds, self._replica_set_name)
|
||||
|
||||
def server_descriptions(self):
|
||||
"""Dict of (address, ServerDescription)."""
|
||||
@ -117,9 +117,9 @@ class TopologyDescription(object):
|
||||
return self._topology_type
|
||||
|
||||
@property
|
||||
def set_name(self):
|
||||
def replica_set_name(self):
|
||||
"""The replica set name."""
|
||||
return self._set_name
|
||||
return self._replica_set_name
|
||||
|
||||
@property
|
||||
def known_servers(self):
|
||||
@ -155,7 +155,7 @@ def updated_topology_description(topology_description, server_description):
|
||||
# These values will be updated, if necessary, to form the new
|
||||
# TopologyDescription.
|
||||
topology_type = topology_description.topology_type
|
||||
set_name = topology_description.set_name
|
||||
set_name = topology_description.replica_set_name
|
||||
server_type = server_description.server_type
|
||||
|
||||
# Don't mutate the original dict of server descriptions; copy it.
|
||||
@ -218,22 +218,22 @@ def updated_topology_description(topology_description, server_description):
|
||||
return TopologyDescription(topology_type, sds, set_name)
|
||||
|
||||
|
||||
def _update_rs_from_primary(sds, set_name, server_description):
|
||||
def _update_rs_from_primary(sds, replica_set_name, server_description):
|
||||
"""Update topology description from a primary's ismaster response.
|
||||
|
||||
Pass in a dict of ServerDescriptions, current replica set name, and the
|
||||
ServerDescription we are processing.
|
||||
|
||||
Returns (new topology type, new set_name).
|
||||
Returns (new topology type, new replica_set_name).
|
||||
"""
|
||||
if set_name is None:
|
||||
set_name = server_description.set_name
|
||||
if replica_set_name is None:
|
||||
replica_set_name = server_description.replica_set_name
|
||||
|
||||
elif set_name != server_description.set_name:
|
||||
# We found a primary but it doesn't have the set_name
|
||||
elif replica_set_name != server_description.replica_set_name:
|
||||
# We found a primary but it doesn't have the replica_set_name
|
||||
# provided by the user.
|
||||
sds.pop(server_description.address)
|
||||
return _check_has_primary(sds), set_name
|
||||
return _check_has_primary(sds), replica_set_name
|
||||
|
||||
# We've heard from the primary. Is it the same primary as before?
|
||||
for server in sds.values():
|
||||
@ -257,10 +257,13 @@ def _update_rs_from_primary(sds, set_name, server_description):
|
||||
|
||||
# If the host list differs from the seed list, we may not have a primary
|
||||
# after all.
|
||||
return _check_has_primary(sds), set_name
|
||||
return _check_has_primary(sds), replica_set_name
|
||||
|
||||
|
||||
def _update_rs_with_primary_from_member(sds, set_name, server_description):
|
||||
def _update_rs_with_primary_from_member(
|
||||
sds,
|
||||
replica_set_name,
|
||||
server_description):
|
||||
"""RS with known primary. Process a response from a non-primary.
|
||||
|
||||
Pass in a dict of ServerDescriptions, current replica set name, and the
|
||||
@ -268,30 +271,33 @@ def _update_rs_with_primary_from_member(sds, set_name, server_description):
|
||||
|
||||
Returns new topology type.
|
||||
"""
|
||||
assert set_name is not None
|
||||
assert replica_set_name is not None
|
||||
|
||||
if set_name != server_description.set_name:
|
||||
if replica_set_name != server_description.replica_set_name:
|
||||
sds.pop(server_description.address)
|
||||
|
||||
# Had this member been the primary?
|
||||
return _check_has_primary(sds)
|
||||
|
||||
|
||||
def _update_rs_no_primary_from_member(sds, set_name, server_description):
|
||||
def _update_rs_no_primary_from_member(
|
||||
sds,
|
||||
replica_set_name,
|
||||
server_description):
|
||||
"""RS without known primary. Update from a non-primary's response.
|
||||
|
||||
Pass in a dict of ServerDescriptions, current replica set name, and the
|
||||
ServerDescription we are processing.
|
||||
|
||||
Returns (new topology type, new set_name).
|
||||
Returns (new topology type, new replica_set_name).
|
||||
"""
|
||||
topology_type = TOPOLOGY_TYPE.ReplicaSetNoPrimary
|
||||
if set_name is None:
|
||||
set_name = server_description.set_name
|
||||
if replica_set_name is None:
|
||||
replica_set_name = server_description.replica_set_name
|
||||
|
||||
elif set_name != server_description.set_name:
|
||||
elif replica_set_name != server_description.replica_set_name:
|
||||
sds.pop(server_description.address)
|
||||
return topology_type, set_name
|
||||
return topology_type, replica_set_name
|
||||
|
||||
# This isn't the primary's response, so don't remove any servers
|
||||
# it doesn't report. Only add new servers.
|
||||
@ -299,7 +305,7 @@ def _update_rs_no_primary_from_member(sds, set_name, server_description):
|
||||
if address not in sds:
|
||||
sds[address] = ServerDescription(address)
|
||||
|
||||
return topology_type, set_name
|
||||
return topology_type, replica_set_name
|
||||
|
||||
|
||||
def _check_has_primary(sds):
|
||||
|
||||
@ -90,7 +90,7 @@ class ClientContext(object):
|
||||
self.ismaster = {}
|
||||
self.w = None
|
||||
self.nodes = set()
|
||||
self.setname = None
|
||||
self.replica_set_name = None
|
||||
self.rs_client = None
|
||||
self.cmd_line = None
|
||||
self.version = Version(-1) # Needs to be comparable with Version
|
||||
@ -113,13 +113,13 @@ class ClientContext(object):
|
||||
self.ismaster = self.client.admin.command('ismaster')
|
||||
self.w = len(self.ismaster.get("hosts", [])) or 1
|
||||
self.nodes = set([(host, port)])
|
||||
self.setname = self.ismaster.get('setName', '')
|
||||
self.replica_set_name = self.ismaster.get('setName', '')
|
||||
self.rs_client = None
|
||||
self.version = Version.from_client(self.client)
|
||||
if self.setname:
|
||||
if self.replica_set_name:
|
||||
self.is_rs = True
|
||||
self.rs_client = pymongo.MongoClient(
|
||||
pair, replicaSet=self.setname)
|
||||
pair, replicaSet=self.replica_set_name)
|
||||
|
||||
self.nodes = set([partition_node(node)
|
||||
for node in self.ismaster.get('hosts', [])])
|
||||
|
||||
@ -39,7 +39,7 @@ hostname = os.environ.get('HOSTNAME', 'localhost')
|
||||
port = int(os.environ.get('DBPORT', 27017))
|
||||
mongod = os.environ.get('MONGOD', 'mongod')
|
||||
mongos = os.environ.get('MONGOS', 'mongos')
|
||||
set_name = os.environ.get('SETNAME', 'repl0')
|
||||
replica_set_name = os.environ.get('SETNAME', 'repl0')
|
||||
ha_tools_debug = bool(os.environ.get('HA_TOOLS_DEBUG'))
|
||||
|
||||
|
||||
@ -140,7 +140,7 @@ def start_replica_set(members, auth=False, fresh=True):
|
||||
cmd = [mongod,
|
||||
'--dbpath', path,
|
||||
'--port', str(cur_port),
|
||||
'--replSet', set_name,
|
||||
'--replSet', replica_set_name,
|
||||
'--nojournal', '--oplogSize', '64',
|
||||
'--logappend', '--logpath', member_logpath]
|
||||
if auth:
|
||||
@ -158,7 +158,7 @@ def start_replica_set(members, auth=False, fresh=True):
|
||||
if not res:
|
||||
return None
|
||||
|
||||
config = {'_id': set_name, 'members': members}
|
||||
config = {'_id': replica_set_name, 'members': members}
|
||||
primary = members[0]['host']
|
||||
c = pymongo.MongoClient(primary)
|
||||
try:
|
||||
@ -196,7 +196,7 @@ def start_replica_set(members, auth=False, fresh=True):
|
||||
kill_all_members()
|
||||
raise Exception(
|
||||
"Replica set still not initalized after %s minutes" % patience)
|
||||
return primary, set_name
|
||||
return primary, replica_set_name
|
||||
|
||||
|
||||
def create_sharded_cluster(num_routers=3):
|
||||
@ -410,7 +410,7 @@ def add_member(auth=False):
|
||||
cmd = [mongod,
|
||||
'--dbpath', path,
|
||||
'--port', str(cur_port),
|
||||
'--replSet', set_name,
|
||||
'--replSet', replica_set_name,
|
||||
'--nojournal', '--oplogSize', '64',
|
||||
'--logappend', '--logpath', member_logpath]
|
||||
if auth:
|
||||
|
||||
@ -259,7 +259,7 @@ class TestSCRAMSHA1(unittest.TestCase):
|
||||
@client_context.require_auth
|
||||
@client_context.require_version_min(2, 7, 2)
|
||||
def setUp(self):
|
||||
self.set_name = client_context.setname
|
||||
self.replica_set_name = client_context.replica_set_name
|
||||
|
||||
# Before 2.7.7, SCRAM-SHA-1 had to be enabled from the command line.
|
||||
if client_context.version < Version(2, 7, 7):
|
||||
@ -285,16 +285,16 @@ class TestSCRAMSHA1(unittest.TestCase):
|
||||
'?authMechanism=SCRAM-SHA-1' % (host, port))
|
||||
client.pymongo_test.command('dbstats')
|
||||
|
||||
if self.set_name:
|
||||
if self.replica_set_name:
|
||||
client = MongoClient(host, port,
|
||||
replicaSet='%s' % (self.set_name,))
|
||||
replicaSet='%s' % (self.replica_set_name,))
|
||||
self.assertTrue(client.pymongo_test.authenticate(
|
||||
'user', 'pass', mechanism='SCRAM-SHA-1'))
|
||||
client.pymongo_test.command('dbstats')
|
||||
|
||||
uri = ('mongodb://user:pass'
|
||||
'@%s:%d/pymongo_test?authMechanism=SCRAM-SHA-1'
|
||||
'&replicaSet=%s' % (host, port, self.set_name))
|
||||
'&replicaSet=%s' % (host, port, self.replica_set_name))
|
||||
client = MongoClient(uri)
|
||||
client.pymongo_test.command('dbstats')
|
||||
client.read_preference = ReadPreference.SECONDARY
|
||||
@ -310,7 +310,7 @@ class TestAuthURIOptions(unittest.TestCase):
|
||||
def setUp(self):
|
||||
client = MongoClient(host, port)
|
||||
response = client.admin.command('ismaster')
|
||||
self.set_name = str(response.get('setName', ''))
|
||||
self.replica_set_name = str(response.get('setName', ''))
|
||||
client_context.client.admin.add_user('admin', 'pass',
|
||||
roles=['userAdminAnyDatabase',
|
||||
'dbAdminAnyDatabase',
|
||||
@ -320,7 +320,7 @@ class TestAuthURIOptions(unittest.TestCase):
|
||||
client.pymongo_test.add_user('user', 'pass',
|
||||
roles=['userAdmin', 'readWrite'])
|
||||
|
||||
if self.set_name:
|
||||
if self.replica_set_name:
|
||||
# GLE requires authentication.
|
||||
client.admin.authenticate('admin', 'pass')
|
||||
# Make sure the admin user is replicated after calling add_user
|
||||
@ -341,9 +341,9 @@ class TestAuthURIOptions(unittest.TestCase):
|
||||
client = MongoClient('mongodb://admin:pass@%s:%d' % (host, port))
|
||||
self.assertTrue(client.admin.command('dbstats'))
|
||||
|
||||
if self.set_name:
|
||||
if self.replica_set_name:
|
||||
uri = ('mongodb://admin:pass'
|
||||
'@%s:%d/?replicaSet=%s' % (host, port, self.set_name))
|
||||
'@%s:%d/?replicaSet=%s' % (host, port, self.replica_set_name))
|
||||
client = MongoClient(uri)
|
||||
self.assertTrue(client.admin.command('dbstats'))
|
||||
client.read_preference = ReadPreference.SECONDARY
|
||||
@ -355,9 +355,9 @@ class TestAuthURIOptions(unittest.TestCase):
|
||||
self.assertRaises(OperationFailure, client.admin.command, 'dbstats')
|
||||
self.assertTrue(client.pymongo_test.command('dbstats'))
|
||||
|
||||
if self.set_name:
|
||||
if self.replica_set_name:
|
||||
uri = ('mongodb://user:pass@%s:%d'
|
||||
'/pymongo_test?replicaSet=%s' % (host, port, self.set_name))
|
||||
'/pymongo_test?replicaSet=%s' % (host, port, self.replica_set_name))
|
||||
client = MongoClient(uri)
|
||||
self.assertRaises(OperationFailure,
|
||||
client.admin.command, 'dbstats')
|
||||
@ -373,9 +373,9 @@ class TestAuthURIOptions(unittest.TestCase):
|
||||
client.pymongo_test2.command, 'dbstats')
|
||||
self.assertTrue(client.pymongo_test.command('dbstats'))
|
||||
|
||||
if self.set_name:
|
||||
if self.replica_set_name:
|
||||
uri = ('mongodb://user:pass@%s:%d/pymongo_test2?replicaSet='
|
||||
'%s;authSource=pymongo_test' % (host, port, self.set_name))
|
||||
'%s;authSource=pymongo_test' % (host, port, self.replica_set_name))
|
||||
client = MongoClient(uri)
|
||||
self.assertRaises(OperationFailure,
|
||||
client.pymongo_test2.command, 'dbstats')
|
||||
|
||||
@ -552,7 +552,7 @@ class TestClient(IntegrationTest, TestRequestMixin):
|
||||
|
||||
uri = "mongodb://%s[::1]:%d" % (auth_str, port)
|
||||
if client_context.is_rs:
|
||||
uri += '/?replicaSet=' + client_context.setname
|
||||
uri += '/?replicaSet=' + client_context.replica_set_name
|
||||
|
||||
client = rs_or_single_client_noauth(uri)
|
||||
client.pymongo_test.test.save({"dummy": u("object")})
|
||||
@ -1121,7 +1121,7 @@ class TestClientLazyConnectBadSeeds(IntegrationTest):
|
||||
bad_seeds = ['%s.com' % chr(ord('a') + i) for i in range(10)]
|
||||
return MongoClient(
|
||||
bad_seeds,
|
||||
replicaSet=client_context.setname,
|
||||
replicaSet=client_context.replica_set_name,
|
||||
connect=False)
|
||||
|
||||
def test_connect(self):
|
||||
|
||||
@ -1277,7 +1277,7 @@ class TestCollection(IntegrationTest):
|
||||
self.db.test.remove({"x": 1}, w=1, wtimeout=1)
|
||||
self.db.test.update({"x": 1}, {"y": 2}, w=1, wtimeout=1)
|
||||
|
||||
if client_context.setname:
|
||||
if client_context.replica_set_name:
|
||||
# client_context.w is the number of hosts in the replica set
|
||||
w = client_context.w + 1
|
||||
|
||||
@ -1362,7 +1362,7 @@ class TestCollection(IntegrationTest):
|
||||
@client_context.require_version_min(2, 5, 1)
|
||||
def test_aggregation_cursor(self):
|
||||
db = self.db
|
||||
if client_context.setname:
|
||||
if client_context.replica_set_name:
|
||||
# Test that getMore messages are sent to the right server.
|
||||
db.read_preference = ReadPreference.SECONDARY
|
||||
|
||||
@ -1388,7 +1388,7 @@ class TestCollection(IntegrationTest):
|
||||
def test_parallel_scan(self):
|
||||
db = self.db
|
||||
db.drop_collection("test")
|
||||
if client_context.setname:
|
||||
if client_context.replica_set_name:
|
||||
# Test that getMore messages are sent to the right server.
|
||||
db.read_preference = ReadPreference.SECONDARY
|
||||
|
||||
|
||||
@ -223,12 +223,12 @@ class TestCommon(IntegrationTest):
|
||||
self.assertRaises(OperationFailure, coll.insert, doc, w=1)
|
||||
|
||||
m = MongoClient("mongodb://%s/" % (pair,),
|
||||
replicaSet=client_context.setname)
|
||||
replicaSet=client_context.replica_set_name)
|
||||
|
||||
coll = m.pymongo_test.write_concern_test
|
||||
self.assertRaises(OperationFailure, coll.insert, doc)
|
||||
m = MongoClient("mongodb://%s/?w=0" % (pair,),
|
||||
replicaSet=client_context.setname)
|
||||
replicaSet=client_context.replica_set_name)
|
||||
|
||||
coll = m.pymongo_test.write_concern_test
|
||||
self.assertTrue(coll.insert(doc))
|
||||
|
||||
@ -77,13 +77,13 @@ def create_mock_topology(uri, monitor_class=MockMonitor):
|
||||
# Some tests in the spec include URIs like mongodb://A/?connect=direct,
|
||||
# but PyMongo considers any single-seed URI with no setName to be "direct".
|
||||
parsed_uri = parse_uri(uri.replace('connect=direct', ''))
|
||||
set_name = None
|
||||
replica_set_name = None
|
||||
if 'replicaset' in parsed_uri['options']:
|
||||
set_name = parsed_uri['options']['replicaset']
|
||||
replica_set_name = parsed_uri['options']['replicaset']
|
||||
|
||||
topology_settings = TopologySettings(
|
||||
parsed_uri['nodelist'],
|
||||
set_name=set_name,
|
||||
replica_set_name=replica_set_name,
|
||||
pool_class=MockPool,
|
||||
monitor_class=monitor_class)
|
||||
|
||||
@ -149,9 +149,9 @@ def check_outcome(self, topology, outcome):
|
||||
|
||||
self.assertEqual(
|
||||
expected_server['setName'],
|
||||
actual_server_description.set_name)
|
||||
actual_server_description.replica_set_name)
|
||||
|
||||
self.assertEqual(outcome['setName'], topology.description.set_name)
|
||||
self.assertEqual(outcome['setName'], topology.description.replica_set_name)
|
||||
expected_topology_type = getattr(TOPOLOGY_TYPE, outcome['topologyType'])
|
||||
self.assertEqual(topology_type_name(expected_topology_type),
|
||||
topology_type_name(topology.description.topology_type))
|
||||
|
||||
@ -58,7 +58,7 @@ class TestReplicaSetClientBase(IntegrationTest):
|
||||
@client_context.require_replica_set
|
||||
def setUpClass(cls):
|
||||
super(TestReplicaSetClientBase, cls).setUpClass()
|
||||
cls.name = client_context.setname
|
||||
cls.name = client_context.replica_set_name
|
||||
cls.w = client_context.w
|
||||
|
||||
ismaster = client_context.ismaster
|
||||
|
||||
@ -90,11 +90,14 @@ class SetNameDiscoverySettings(TopologySettings):
|
||||
address = ('a', 27017)
|
||||
|
||||
|
||||
def create_mock_topology(seeds=None, set_name=None, monitor_class=MockMonitor):
|
||||
def create_mock_topology(
|
||||
seeds=None,
|
||||
replica_set_name=None,
|
||||
monitor_class=MockMonitor):
|
||||
partitioned_seeds = list(imap(common.partition_node, seeds or ['a']))
|
||||
topology_settings = TopologySettings(
|
||||
partitioned_seeds,
|
||||
set_name=set_name,
|
||||
replica_set_name=replica_set_name,
|
||||
pool_class=MockPool,
|
||||
monitor_class=monitor_class)
|
||||
|
||||
@ -239,7 +242,7 @@ class TestSingleServerTopology(TopologyTest):
|
||||
|
||||
class TestMultiServerTopology(TopologyTest):
|
||||
def test_close(self):
|
||||
t = create_mock_topology(set_name='rs')
|
||||
t = create_mock_topology(replica_set_name='rs')
|
||||
got_ismaster(t, ('a', 27017), {
|
||||
'ok': 1,
|
||||
'ismaster': True,
|
||||
@ -262,7 +265,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
self.assertEqual(2, len(t.description.server_descriptions()))
|
||||
self.assertEqual(SERVER_TYPE.Unknown, get_type(t, 'a'))
|
||||
self.assertEqual(SERVER_TYPE.Unknown, get_type(t, 'b'))
|
||||
self.assertEqual('rs', t.description.set_name)
|
||||
self.assertEqual('rs', t.description.replica_set_name)
|
||||
self.assertEqual(TOPOLOGY_TYPE.ReplicaSetNoPrimary,
|
||||
t.description.topology_type)
|
||||
|
||||
@ -278,7 +281,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
t.description.topology_type)
|
||||
|
||||
def test_reset_server(self):
|
||||
t = create_mock_topology(set_name='rs')
|
||||
t = create_mock_topology(replica_set_name='rs')
|
||||
got_ismaster(t, ('a', 27017), {
|
||||
'ok': 1,
|
||||
'ismaster': True,
|
||||
@ -295,7 +298,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
t.reset_server(('a', 27017))
|
||||
self.assertEqual(SERVER_TYPE.Unknown, get_type(t, 'a'))
|
||||
self.assertEqual(SERVER_TYPE.RSSecondary, get_type(t, 'b'))
|
||||
self.assertEqual('rs', t.description.set_name)
|
||||
self.assertEqual('rs', t.description.replica_set_name)
|
||||
self.assertEqual(TOPOLOGY_TYPE.ReplicaSetNoPrimary,
|
||||
t.description.topology_type)
|
||||
|
||||
@ -312,12 +315,12 @@ class TestMultiServerTopology(TopologyTest):
|
||||
t.reset_server(('b', 27017))
|
||||
self.assertEqual(SERVER_TYPE.RSPrimary, get_type(t, 'a'))
|
||||
self.assertEqual(SERVER_TYPE.Unknown, get_type(t, 'b'))
|
||||
self.assertEqual('rs', t.description.set_name)
|
||||
self.assertEqual('rs', t.description.replica_set_name)
|
||||
self.assertEqual(TOPOLOGY_TYPE.ReplicaSetWithPrimary,
|
||||
t.description.topology_type)
|
||||
|
||||
def test_reset_removed_server(self):
|
||||
t = create_mock_topology(set_name='rs')
|
||||
t = create_mock_topology(replica_set_name='rs')
|
||||
|
||||
# No error resetting a server not in the TopologyDescription.
|
||||
t.reset_server(('b', 27017))
|
||||
@ -334,7 +337,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
monitor_class=MockMonitor)
|
||||
|
||||
t = Topology(topology_settings)
|
||||
self.assertEqual(t.description.set_name, None)
|
||||
self.assertEqual(t.description.replica_set_name, None)
|
||||
self.assertEqual(t.description.topology_type,
|
||||
TOPOLOGY_TYPE.ReplicaSetNoPrimary)
|
||||
|
||||
@ -344,7 +347,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
'setName': 'rs',
|
||||
'hosts': ['a']})
|
||||
|
||||
self.assertEqual(t.description.set_name, 'rs')
|
||||
self.assertEqual(t.description.replica_set_name, 'rs')
|
||||
self.assertEqual(t.description.topology_type,
|
||||
TOPOLOGY_TYPE.ReplicaSetWithPrimary)
|
||||
|
||||
@ -357,7 +360,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
'hosts': ['a']})
|
||||
|
||||
# No change.
|
||||
self.assertEqual(t.description.set_name, 'rs')
|
||||
self.assertEqual(t.description.replica_set_name, 'rs')
|
||||
self.assertEqual(t.description.topology_type,
|
||||
TOPOLOGY_TYPE.ReplicaSetWithPrimary)
|
||||
|
||||
@ -370,7 +373,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
monitor_class=MockMonitor)
|
||||
|
||||
t = Topology(topology_settings)
|
||||
self.assertEqual(t.description.set_name, None)
|
||||
self.assertEqual(t.description.replica_set_name, None)
|
||||
self.assertEqual(t.description.topology_type,
|
||||
TOPOLOGY_TYPE.ReplicaSetNoPrimary)
|
||||
|
||||
@ -381,12 +384,12 @@ class TestMultiServerTopology(TopologyTest):
|
||||
'setName': 'rs',
|
||||
'hosts': ['a']})
|
||||
|
||||
self.assertEqual(t.description.set_name, 'rs')
|
||||
self.assertEqual(t.description.replica_set_name, 'rs')
|
||||
self.assertEqual(t.description.topology_type,
|
||||
TOPOLOGY_TYPE.ReplicaSetNoPrimary)
|
||||
|
||||
def test_wire_version(self):
|
||||
t = create_mock_topology(set_name='rs')
|
||||
t = create_mock_topology(replica_set_name='rs')
|
||||
t.description.check_compatible() # No error.
|
||||
|
||||
got_ismaster(t, address, {
|
||||
@ -430,7 +433,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
self.fail('No error with incompatible wire version')
|
||||
|
||||
def test_max_write_batch_size(self):
|
||||
t = create_mock_topology(seeds=['a', 'b'], set_name='rs')
|
||||
t = create_mock_topology(seeds=['a', 'b'], replica_set_name='rs')
|
||||
|
||||
def write_batch_size():
|
||||
s = t.select_server(writable_server_selector)
|
||||
|
||||
@ -65,13 +65,13 @@ def single_client(h=host, p=port, **kwargs):
|
||||
def rs_client_noauth(h=host, p=port, **kwargs):
|
||||
"""Connect to the replica set. Don't authenticate."""
|
||||
return MongoClient(_connection_string_noauth(h, p),
|
||||
replicaSet=client_context.setname, **kwargs)
|
||||
replicaSet=client_context.replica_set_name, **kwargs)
|
||||
|
||||
|
||||
def rs_client(h=host, p=port, **kwargs):
|
||||
"""Connect to the replica set and authenticate if necessary."""
|
||||
return MongoClient(_connection_string(h, p),
|
||||
replicaSet=client_context.setname, **kwargs)
|
||||
replicaSet=client_context.replica_set_name, **kwargs)
|
||||
|
||||
|
||||
def rs_or_single_client_noauth(h=host, p=port, **kwargs):
|
||||
@ -79,7 +79,7 @@ def rs_or_single_client_noauth(h=host, p=port, **kwargs):
|
||||
|
||||
Like rs_or_single_client, but does not authenticate.
|
||||
"""
|
||||
if client_context.setname:
|
||||
if client_context.replica_set_name:
|
||||
return rs_client_noauth(h, p, **kwargs)
|
||||
else:
|
||||
return single_client_noauth(h, p, **kwargs)
|
||||
@ -90,7 +90,7 @@ def rs_or_single_client(h=host, p=port, **kwargs):
|
||||
|
||||
Authenticates if necessary.
|
||||
"""
|
||||
if client_context.setname:
|
||||
if client_context.replica_set_name:
|
||||
return rs_client(h, p, **kwargs)
|
||||
else:
|
||||
return single_client(h, p, **kwargs)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user