clarify code by separating accumulator into two counters

This commit is contained in:
Michael Barton
2010-10-17 01:20:22 +00:00
parent 7c484d9237
commit 6bf591ee14

View File

@@ -363,22 +363,23 @@ class ObjectReplicator(Daemon):
do_listdir=(self.replication_count % 10) == 0,
reclaim_age=self.reclaim_age)
self.suffix_hash += hashed
not_unmounted = 0
unmounted = 0
attempted = 0
nodes = itertools.chain(job['nodes'],
self.object_ring.get_more_nodes(int(job['partition'])))
while not_unmounted < (self.object_ring.replica_count - 1):
while (attempted - unmounted) < (self.object_ring.replica_count - 1):
node = next(nodes)
not_unmounted += 1
attempted += 1
try:
with Timeout(60):
resp = http_connect(node['ip'], node['port'],
node['device'], job['partition'], 'REPLICATE',
'', headers={'Content-Length': '0'}).getresponse()
if resp.status == 507:
not_unmounted -= 1
if resp.status != 200:
self.logger.error("Invalid response %s from %s" %
(resp.status, node['ip']))
if resp.status == 507:
unmounted += 1
continue
remote_hash = pickle.loads(resp.read())
del resp