Merge "Make NodeIter require a logger argument"

This commit is contained in:
Zuul
2022-02-04 08:50:33 +00:00
committed by Gerrit Code Review
3 changed files with 13 additions and 10 deletions

View File

@@ -1586,18 +1586,19 @@ class NodeIter(object):
:param app: a proxy app
:param ring: ring to get yield nodes from
:param partition: ring partition to yield nodes for
:param logger: a logger instance
:param node_iter: optional iterable of nodes to try. Useful if you
want to filter or reorder the nodes.
:param policy: an instance of :class:`BaseStoragePolicy`. This should be
None for an account or container ring.
:param logger: a logger instance; defaults to the app logger
"""
def __init__(self, app, ring, partition, node_iter=None, policy=None,
logger=None):
def __init__(self, app, ring, partition, logger, node_iter=None,
policy=None):
self.app = app
self.ring = ring
self.partition = partition
self.logger = logger
part_nodes = ring.get_part_nodes(partition)
if node_iter is None:
@@ -1614,7 +1615,6 @@ class NodeIter(object):
policy=policy)
self.handoff_iter = node_iter
self._node_provider = None
self.logger = logger or self.app.logger
@property
def primaries_left(self):

View File

@@ -702,8 +702,8 @@ class Application(object):
'port': node['port'], 'device': node['device']})
def iter_nodes(self, ring, partition, logger, node_iter=None, policy=None):
return NodeIter(self, ring, partition, node_iter=node_iter,
policy=policy, logger=logger)
return NodeIter(self, ring, partition, logger, node_iter=node_iter,
policy=policy)
def exception_occurred(self, node, typ, additional_info,
**kwargs):

View File

@@ -1477,7 +1477,7 @@ class TestNodeIter(BaseTest):
def test_iter_default_fake_ring(self):
for ring in (self.account_ring, self.container_ring):
self.assertEqual(ring.replica_count, 3.0)
node_iter = NodeIter(self.app, ring, 0)
node_iter = NodeIter(self.app, ring, 0, self.logger)
self.assertEqual(6, node_iter.nodes_left)
self.assertEqual(3, node_iter.primaries_left)
count = 0
@@ -1491,7 +1491,8 @@ class TestNodeIter(BaseTest):
def test_iter_with_handoffs(self):
ring = FakeRing(replicas=3, max_more_nodes=20) # handoffs available
policy = StoragePolicy(0, 'zero', object_ring=ring)
node_iter = NodeIter(self.app, policy.object_ring, 0, policy=policy)
node_iter = NodeIter(self.app, policy.object_ring, 0, self.logger,
policy=policy)
self.assertEqual(6, node_iter.nodes_left)
self.assertEqual(3, node_iter.primaries_left)
primary_indexes = set()
@@ -1514,10 +1515,12 @@ class TestNodeIter(BaseTest):
policy = StoragePolicy(0, 'ec', object_ring=ring)
# sanity
node_iter = NodeIter(self.app, policy.object_ring, 0, policy=policy)
node_iter = NodeIter(self.app, policy.object_ring, 0, self.logger,
policy=policy)
self.assertEqual(16, len([n for n in node_iter]))
node_iter = NodeIter(self.app, policy.object_ring, 0, policy=policy)
node_iter = NodeIter(self.app, policy.object_ring, 0, self.logger,
policy=policy)
self.assertEqual(16, node_iter.nodes_left)
self.assertEqual(8, node_iter.primaries_left)
pile = GreenAsyncPile(5)