Replace it.next() with next(it) for py3 compat

The Python 2 next() method of iterators was renamed to __next__() on
Python 3. Use the builtin next() function instead which works on Python
2 and Python 3.

Change-Id: Ic948bc574b58f1d28c5c58e3985906dee17fa51d
This commit is contained in:
janonymous 2015-06-15 22:10:45 +05:30
parent 0e22371cd0
commit 09e7477a39
42 changed files with 350 additions and 350 deletions

View File

@ -105,7 +105,7 @@ def roundrobin_datadirs(datadirs):
while its: while its:
for it in its: for it in its:
try: try:
yield it.next() yield next(it)
except StopIteration: except StopIteration:
its.remove(it) its.remove(it)
@ -525,7 +525,7 @@ class Replicator(Daemon):
success = self._repl_to_node(node, broker, partition, info, success = self._repl_to_node(node, broker, partition, info,
different_region) different_region)
except DriveNotMounted: except DriveNotMounted:
repl_nodes.append(more_nodes.next()) repl_nodes.append(next(more_nodes))
self.logger.error(_('ERROR Remote drive not mounted %s'), node) self.logger.error(_('ERROR Remote drive not mounted %s'), node)
except (Exception, Timeout): except (Exception, Timeout):
self.logger.exception(_('ERROR syncing %(file)s with node' self.logger.exception(_('ERROR syncing %(file)s with node'

View File

@ -420,7 +420,7 @@ class Bulk(object):
separator = '\r\n\r\n' separator = '\r\n\r\n'
last_yield = time() last_yield = time()
yield ' ' yield ' '
tar_info = tar.next() tar_info = next(tar)
if tar_info is None or \ if tar_info is None or \
len(failed_files) >= self.max_failed_extractions: len(failed_files) >= self.max_failed_extractions:
break break

View File

@ -394,7 +394,7 @@ class FormPost(object):
i = iter(self.app(subenv, _start_response)) i = iter(self.app(subenv, _start_response))
try: try:
i.next() next(i)
except StopIteration: except StopIteration:
pass pass
return substatus[0], subheaders[0], '' return substatus[0], subheaders[0], ''

View File

@ -248,9 +248,9 @@ class ProxyLoggingMiddleware(object):
def iter_response(iterable): def iter_response(iterable):
iterator = iter(iterable) iterator = iter(iterable)
try: try:
chunk = iterator.next() chunk = next(iterator)
while not chunk: while not chunk:
chunk = iterator.next() chunk = next(iterator)
except StopIteration: except StopIteration:
chunk = '' chunk = ''
for h, v in start_response_args[0][1]: for h, v in start_response_args[0][1]:
@ -281,7 +281,7 @@ class ProxyLoggingMiddleware(object):
while chunk: while chunk:
bytes_sent += len(chunk) bytes_sent += len(chunk)
yield chunk yield chunk
chunk = iterator.next() chunk = next(iterator)
except GeneratorExit: # generator was closed before we finished except GeneratorExit: # generator was closed before we finished
client_disconnect = True client_disconnect = True
raise raise

View File

@ -420,7 +420,7 @@ class SegmentedIterable(object):
self.validated_first_segment = True self.validated_first_segment = True
try: try:
self.peeked_chunk = self.app_iter.next() self.peeked_chunk = next(self.app_iter)
except StopIteration: except StopIteration:
pass pass

View File

@ -459,7 +459,7 @@ class FileLikeIter(object):
def next(self): def next(self):
""" """
x.next() -> the next value, or raise StopIteration next(x) -> the next value, or raise StopIteration
""" """
if self.closed: if self.closed:
raise ValueError('I/O operation on closed file') raise ValueError('I/O operation on closed file')
@ -468,7 +468,7 @@ class FileLikeIter(object):
self.buf = None self.buf = None
return rv return rv
else: else:
return self.iterator.next() return next(self.iterator)
def read(self, size=-1): def read(self, size=-1):
""" """
@ -489,7 +489,7 @@ class FileLikeIter(object):
self.buf = None self.buf = None
else: else:
try: try:
chunk = self.iterator.next() chunk = next(self.iterator)
except StopIteration: except StopIteration:
return '' return ''
if len(chunk) > size: if len(chunk) > size:
@ -1027,7 +1027,7 @@ class RateLimitedIterator(object):
else: else:
self.running_time = ratelimit_sleep(self.running_time, self.running_time = ratelimit_sleep(self.running_time,
self.elements_per_second) self.elements_per_second)
return self.iterator.next() return next(self.iterator)
class GreenthreadSafeIterator(object): class GreenthreadSafeIterator(object):
@ -1050,7 +1050,7 @@ class GreenthreadSafeIterator(object):
def next(self): def next(self):
with self.semaphore: with self.semaphore:
return self.unsafe_iter.next() return next(self.unsafe_iter)
class NullLogger(object): class NullLogger(object):
@ -2274,7 +2274,7 @@ class GreenAsyncPile(object):
try: try:
with GreenAsyncPileWaitallTimeout(timeout): with GreenAsyncPileWaitallTimeout(timeout):
while True: while True:
results.append(self.next()) results.append(next(self))
except (GreenAsyncPileWaitallTimeout, StopIteration): except (GreenAsyncPileWaitallTimeout, StopIteration):
pass pass
return results return results

View File

@ -613,7 +613,7 @@ class WSGIContext(object):
return resp return resp
resp = iter(resp) resp = iter(resp)
try: try:
first_chunk = resp.next() first_chunk = next(resp)
except StopIteration: except StopIteration:
return iter([]) return iter([])
else: # We got a first_chunk else: # We got a first_chunk

View File

@ -142,7 +142,7 @@ class BrainSplitter(object):
""" """
put container with next storage policy put container with next storage policy
""" """
policy = self.policies.next() policy = next(self.policies)
if policy_index is not None: if policy_index is not None:
policy = POLICIES.get_by_index(int(policy_index)) policy = POLICIES.get_by_index(int(policy_index))
if not policy: if not policy:

View File

@ -89,7 +89,7 @@ class TestEmptyDevice(ReplProbeTest):
# let's directly verify it. # let's directly verify it.
# Directly to handoff server assert we can get container/obj # Directly to handoff server assert we can get container/obj
another_onode = self.object_ring.get_more_nodes(opart).next() another_onode = next(self.object_ring.get_more_nodes(opart))
odata = direct_client.direct_get_object( odata = direct_client.direct_get_object(
another_onode, opart, self.account, container, obj, another_onode, opart, self.account, container, obj,
headers={'X-Backend-Storage-Policy-Index': self.policy.idx})[-1] headers={'X-Backend-Storage-Policy-Index': self.policy.idx})[-1]

View File

@ -67,7 +67,7 @@ class TestObjectHandoff(ReplProbeTest):
# We've indirectly verified the handoff node has the container/object, # We've indirectly verified the handoff node has the container/object,
# but let's directly verify it. # but let's directly verify it.
another_onode = self.object_ring.get_more_nodes(opart).next() another_onode = next(self.object_ring.get_more_nodes(opart))
odata = direct_client.direct_get_object( odata = direct_client.direct_get_object(
another_onode, opart, self.account, container, obj, headers={ another_onode, opart, self.account, container, obj, headers={
'X-Backend-Storage-Policy-Index': self.policy.idx})[-1] 'X-Backend-Storage-Policy-Index': self.policy.idx})[-1]

View File

@ -53,7 +53,7 @@ class Body(object):
return self.chunk return self.chunk
def __next__(self): def __next__(self):
return self.next() return next(self)
class TestReconstructorPropDurable(ECProbeTest): class TestReconstructorPropDurable(ECProbeTest):

View File

@ -54,7 +54,7 @@ class Body(object):
return self.chunk return self.chunk
def __next__(self): def __next__(self):
return self.next() return next(self)
class TestReconstructorRebuild(ECProbeTest): class TestReconstructorRebuild(ECProbeTest):

View File

@ -54,7 +54,7 @@ class Body(object):
return self.chunk return self.chunk
def __next__(self): def __next__(self):
return self.next() return next(self)
class TestReconstructorRevert(ECProbeTest): class TestReconstructorRevert(ECProbeTest):

View File

@ -878,7 +878,7 @@ def fake_http_connect(*code_iter, **kwargs):
# when timestamp is None, HeaderKeyDict raises KeyError # when timestamp is None, HeaderKeyDict raises KeyError
headers.pop('x-timestamp', None) headers.pop('x-timestamp', None)
try: try:
if container_ts_iter.next() is False: if next(container_ts_iter) is False:
headers['x-container-timestamp'] = '1' headers['x-container-timestamp'] = '1'
except StopIteration: except StopIteration:
pass pass
@ -955,24 +955,24 @@ def fake_http_connect(*code_iter, **kwargs):
kwargs['give_content_type'](args[6]['Content-Type']) kwargs['give_content_type'](args[6]['Content-Type'])
else: else:
kwargs['give_content_type']('') kwargs['give_content_type']('')
i, status = conn_id_and_code_iter.next() i, status = next(conn_id_and_code_iter)
if 'give_connect' in kwargs: if 'give_connect' in kwargs:
give_conn_fn = kwargs['give_connect'] give_conn_fn = kwargs['give_connect']
argspec = inspect.getargspec(give_conn_fn) argspec = inspect.getargspec(give_conn_fn)
if argspec.keywords or 'connection_id' in argspec.args: if argspec.keywords or 'connection_id' in argspec.args:
ckwargs['connection_id'] = i ckwargs['connection_id'] = i
give_conn_fn(*args, **ckwargs) give_conn_fn(*args, **ckwargs)
etag = etag_iter.next() etag = next(etag_iter)
headers = headers_iter.next() headers = next(headers_iter)
expect_headers = expect_headers_iter.next() expect_headers = next(expect_headers_iter)
timestamp = timestamps_iter.next() timestamp = next(timestamps_iter)
if status <= 0: if status <= 0:
raise HTTPException() raise HTTPException()
if body_iter is None: if body_iter is None:
body = static_body or '' body = static_body or ''
else: else:
body = body_iter.next() body = next(body_iter)
return FakeConn(status, etag, body=body, timestamp=timestamp, return FakeConn(status, etag, body=body, timestamp=timestamp,
headers=headers, expect_headers=expect_headers, headers=headers, expect_headers=expect_headers,
connection_id=i, give_send=kwargs.get('give_send')) connection_id=i, give_send=kwargs.get('give_send'))

View File

@ -180,7 +180,7 @@ class TestAccountBroker(unittest.TestCase):
def test_delete_db_status(self): def test_delete_db_status(self):
ts = (Timestamp(t).internal for t in itertools.count(int(time()))) ts = (Timestamp(t).internal for t in itertools.count(int(time())))
start = ts.next() start = next(ts)
broker = AccountBroker(':memory:', account='a') broker = AccountBroker(':memory:', account='a')
broker.initialize(start) broker.initialize(start)
info = broker.get_info() info = broker.get_info()
@ -194,7 +194,7 @@ class TestAccountBroker(unittest.TestCase):
Timestamp(start).internal) Timestamp(start).internal)
# delete it # delete it
delete_timestamp = ts.next() delete_timestamp = next(ts)
broker.delete_db(delete_timestamp) broker.delete_db(delete_timestamp)
info = broker.get_info() info = broker.get_info()
self.assertEqual(info['put_timestamp'], Timestamp(start).internal) self.assertEqual(info['put_timestamp'], Timestamp(start).internal)
@ -643,7 +643,7 @@ class TestAccountBroker(unittest.TestCase):
def test_get_policy_stats(self): def test_get_policy_stats(self):
ts = (Timestamp(t).internal for t in itertools.count(int(time()))) ts = (Timestamp(t).internal for t in itertools.count(int(time())))
broker = AccountBroker(':memory:', account='a') broker = AccountBroker(':memory:', account='a')
broker.initialize(ts.next()) broker.initialize(next(ts))
# check empty policy_stats # check empty policy_stats
self.assertTrue(broker.empty()) self.assertTrue(broker.empty())
policy_stats = broker.get_policy_stats() policy_stats = broker.get_policy_stats()
@ -652,7 +652,7 @@ class TestAccountBroker(unittest.TestCase):
# add some empty containers # add some empty containers
for policy in POLICIES: for policy in POLICIES:
container_name = 'c-%s' % policy.name container_name = 'c-%s' % policy.name
put_timestamp = ts.next() put_timestamp = next(ts)
broker.put_container(container_name, broker.put_container(container_name,
put_timestamp, 0, put_timestamp, 0,
0, 0, 0, 0,
@ -667,7 +667,7 @@ class TestAccountBroker(unittest.TestCase):
# update the containers object & byte count # update the containers object & byte count
for policy in POLICIES: for policy in POLICIES:
container_name = 'c-%s' % policy.name container_name = 'c-%s' % policy.name
put_timestamp = ts.next() put_timestamp = next(ts)
count = policy.idx * 100 # good as any integer count = policy.idx * 100 # good as any integer
broker.put_container(container_name, broker.put_container(container_name,
put_timestamp, 0, put_timestamp, 0,
@ -693,7 +693,7 @@ class TestAccountBroker(unittest.TestCase):
# now delete the containers one by one # now delete the containers one by one
for policy in POLICIES: for policy in POLICIES:
container_name = 'c-%s' % policy.name container_name = 'c-%s' % policy.name
delete_timestamp = ts.next() delete_timestamp = next(ts)
broker.put_container(container_name, broker.put_container(container_name,
0, delete_timestamp, 0, delete_timestamp,
0, 0, 0, 0,
@ -711,14 +711,14 @@ class TestAccountBroker(unittest.TestCase):
def test_policy_stats_tracking(self): def test_policy_stats_tracking(self):
ts = (Timestamp(t).internal for t in itertools.count(int(time()))) ts = (Timestamp(t).internal for t in itertools.count(int(time())))
broker = AccountBroker(':memory:', account='a') broker = AccountBroker(':memory:', account='a')
broker.initialize(ts.next()) broker.initialize(next(ts))
# policy 0 # policy 0
broker.put_container('con1', ts.next(), 0, 12, 2798641, 0) broker.put_container('con1', next(ts), 0, 12, 2798641, 0)
broker.put_container('con1', ts.next(), 0, 13, 8156441, 0) broker.put_container('con1', next(ts), 0, 13, 8156441, 0)
# policy 1 # policy 1
broker.put_container('con2', ts.next(), 0, 7, 5751991, 1) broker.put_container('con2', next(ts), 0, 7, 5751991, 1)
broker.put_container('con2', ts.next(), 0, 8, 6085379, 1) broker.put_container('con2', next(ts), 0, 8, 6085379, 1)
stats = broker.get_policy_stats() stats = broker.get_policy_stats()
self.assertEqual(len(stats), 2) self.assertEqual(len(stats), 2)
@ -1064,12 +1064,12 @@ class TestAccountBrokerBeforeSPI(TestAccountBroker):
ts = (Timestamp(t).internal for t in itertools.count(int(time()))) ts = (Timestamp(t).internal for t in itertools.count(int(time())))
broker = AccountBroker(db_path, account='a') broker = AccountBroker(db_path, account='a')
broker.initialize(ts.next()) broker.initialize(next(ts))
self.assertTrue(broker.empty()) self.assertTrue(broker.empty())
# add a container (to pending file) # add a container (to pending file)
broker.put_container('c', ts.next(), 0, 0, 0, broker.put_container('c', next(ts), 0, 0, 0,
POLICIES.default.idx) POLICIES.default.idx)
real_get = broker.get real_get = broker.get
@ -1127,10 +1127,10 @@ class TestAccountBrokerBeforeSPI(TestAccountBroker):
# make and two account database "replicas" # make and two account database "replicas"
old_broker = AccountBroker(os.path.join(tempdir, 'old_account.db'), old_broker = AccountBroker(os.path.join(tempdir, 'old_account.db'),
account='a') account='a')
old_broker.initialize(ts.next().internal) old_broker.initialize(next(ts).internal)
new_broker = AccountBroker(os.path.join(tempdir, 'new_account.db'), new_broker = AccountBroker(os.path.join(tempdir, 'new_account.db'),
account='a') account='a')
new_broker.initialize(ts.next().internal) new_broker.initialize(next(ts).internal)
# manually insert an existing row to avoid migration for old database # manually insert an existing row to avoid migration for old database
with old_broker.get() as conn: with old_broker.get() as conn:
@ -1139,7 +1139,7 @@ class TestAccountBrokerBeforeSPI(TestAccountBroker):
delete_timestamp, object_count, bytes_used, delete_timestamp, object_count, bytes_used,
deleted) deleted)
VALUES (?, ?, ?, ?, ?, ?) VALUES (?, ?, ?, ?, ?, ?)
''', ('test_name', ts.next().internal, 0, 1, 2, 0)) ''', ('test_name', next(ts).internal, 0, 1, 2, 0))
conn.commit() conn.commit()
# get replication info and rows form old database # get replication info and rows form old database

View File

@ -1728,13 +1728,13 @@ class TestAccountController(unittest.TestCase):
ts = itertools.count() ts = itertools.count()
# create the account # create the account
req = Request.blank('/sda1/p/a', method='PUT', headers={ req = Request.blank('/sda1/p/a', method='PUT', headers={
'X-Timestamp': normalize_timestamp(ts.next())}) 'X-Timestamp': normalize_timestamp(next(ts))})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity self.assertEqual(resp.status_int, 201) # sanity
# add a container # add a container
req = Request.blank('/sda1/p/a/c1', method='PUT', headers={ req = Request.blank('/sda1/p/a/c1', method='PUT', headers={
'X-Put-Timestamp': normalize_timestamp(ts.next()), 'X-Put-Timestamp': normalize_timestamp(next(ts)),
'X-Delete-Timestamp': '0', 'X-Delete-Timestamp': '0',
'X-Object-Count': '2', 'X-Object-Count': '2',
'X-Bytes-Used': '4', 'X-Bytes-Used': '4',
@ -1763,7 +1763,7 @@ class TestAccountController(unittest.TestCase):
ts = itertools.count() ts = itertools.count()
# create the account # create the account
req = Request.blank('/sda1/p/a', method='PUT', headers={ req = Request.blank('/sda1/p/a', method='PUT', headers={
'X-Timestamp': normalize_timestamp(ts.next())}) 'X-Timestamp': normalize_timestamp(next(ts))})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity self.assertEqual(resp.status_int, 201) # sanity
@ -1771,7 +1771,7 @@ class TestAccountController(unittest.TestCase):
non_default_policies = [p for p in POLICIES if not p.is_default] non_default_policies = [p for p in POLICIES if not p.is_default]
policy = random.choice(non_default_policies) policy = random.choice(non_default_policies)
req = Request.blank('/sda1/p/a/c1', method='PUT', headers={ req = Request.blank('/sda1/p/a/c1', method='PUT', headers={
'X-Put-Timestamp': normalize_timestamp(ts.next()), 'X-Put-Timestamp': normalize_timestamp(next(ts)),
'X-Delete-Timestamp': '0', 'X-Delete-Timestamp': '0',
'X-Object-Count': '2', 'X-Object-Count': '2',
'X-Bytes-Used': '4', 'X-Bytes-Used': '4',
@ -1801,7 +1801,7 @@ class TestAccountController(unittest.TestCase):
ts = itertools.count() ts = itertools.count()
# create the account # create the account
req = Request.blank('/sda1/p/a', method='PUT', headers={ req = Request.blank('/sda1/p/a', method='PUT', headers={
'X-Timestamp': normalize_timestamp(ts.next())}) 'X-Timestamp': normalize_timestamp(next(ts))})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity self.assertEqual(resp.status_int, 201) # sanity
@ -1816,7 +1816,7 @@ class TestAccountController(unittest.TestCase):
ts = itertools.count() ts = itertools.count()
# create the account # create the account
req = Request.blank('/sda1/p/a', method='PUT', headers={ req = Request.blank('/sda1/p/a', method='PUT', headers={
'X-Timestamp': normalize_timestamp(ts.next())}) 'X-Timestamp': normalize_timestamp(next(ts))})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity self.assertEqual(resp.status_int, 201) # sanity
@ -1831,7 +1831,7 @@ class TestAccountController(unittest.TestCase):
# add a container # add a container
policy = random.choice(POLICIES) policy = random.choice(POLICIES)
req = Request.blank('/sda1/p/a/c1', method='PUT', headers={ req = Request.blank('/sda1/p/a/c1', method='PUT', headers={
'X-Put-Timestamp': normalize_timestamp(ts.next()), 'X-Put-Timestamp': normalize_timestamp(next(ts)),
'X-Delete-Timestamp': '0', 'X-Delete-Timestamp': '0',
'X-Object-Count': '2', 'X-Object-Count': '2',
'X-Bytes-Used': '4', 'X-Bytes-Used': '4',
@ -1853,7 +1853,7 @@ class TestAccountController(unittest.TestCase):
ts = itertools.count() ts = itertools.count()
# create the account # create the account
req = Request.blank('/sda1/p/a', method='PUT', headers={ req = Request.blank('/sda1/p/a', method='PUT', headers={
'X-Timestamp': normalize_timestamp(ts.next())}) 'X-Timestamp': normalize_timestamp(next(ts))})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity self.assertEqual(resp.status_int, 201) # sanity
@ -1863,7 +1863,7 @@ class TestAccountController(unittest.TestCase):
container_path = '/sda1/p/a/c_%s' % policy.name container_path = '/sda1/p/a/c_%s' % policy.name
req = Request.blank( req = Request.blank(
container_path, method='PUT', headers={ container_path, method='PUT', headers={
'X-Put-Timestamp': normalize_timestamp(ts.next()), 'X-Put-Timestamp': normalize_timestamp(next(ts)),
'X-Delete-Timestamp': '0', 'X-Delete-Timestamp': '0',
'X-Object-Count': count, 'X-Object-Count': count,
'X-Bytes-Used': count, 'X-Bytes-Used': count,

View File

@ -98,8 +98,8 @@ class TestAccountUtils(unittest.TestCase):
total_objects = 0 total_objects = 0
total_bytes = 0 total_bytes = 0
for policy in POLICIES: for policy in POLICIES:
delete_timestamp = ts.next() delete_timestamp = next(ts)
put_timestamp = ts.next() put_timestamp = next(ts)
object_count = int(policy) object_count = int(policy)
bytes_used = int(policy) * 10 bytes_used = int(policy) * 10
broker.put_container('c-%s' % policy.name, put_timestamp, broker.put_container('c-%s' % policy.name, put_timestamp,
@ -145,8 +145,8 @@ class TestAccountUtils(unittest.TestCase):
total_objects = 0 total_objects = 0
total_bytes = 0 total_bytes = 0
for policy in POLICIES: for policy in POLICIES:
delete_timestamp = ts.next() delete_timestamp = next(ts)
put_timestamp = ts.next() put_timestamp = next(ts)
object_count = int(policy) object_count = int(policy)
bytes_used = int(policy) * 10 bytes_used = int(policy) * 10
broker.put_container('c-%s' % policy.name, put_timestamp, broker.put_container('c-%s' % policy.name, put_timestamp,

View File

@ -59,7 +59,7 @@ class FakeApp(object):
resp = env['swift.authorize'](self.requests[-1]) resp = env['swift.authorize'](self.requests[-1])
if resp: if resp:
return resp(env, start_response) return resp(env, start_response)
status, headers, body = self.status_headers_body_iter.next() status, headers, body = next(self.status_headers_body_iter)
return Response(status=status, headers=headers, return Response(status=status, headers=headers,
body=body)(env, start_response) body=body)(env, start_response)
except EOFError: except EOFError:

View File

@ -89,7 +89,7 @@ class FakeApp(object):
context = {'method': self.request.method, context = {'method': self.request.method,
'headers': self.request.headers} 'headers': self.request.headers}
self.call_contexts.append(context) self.call_contexts.append(context)
status, headers, body = self.status_headers_body_iter.next() status, headers, body = next(self.status_headers_body_iter)
return Response(status=status, headers=headers, return Response(status=status, headers=headers,
body=body)(env, start_response) body=body)(env, start_response)

View File

@ -551,7 +551,7 @@ class TestProxyLogging(unittest.TestCase):
def test_no_content_length_no_transfer_encoding_with_list_body(self): def test_no_content_length_no_transfer_encoding_with_list_body(self):
app = proxy_logging.ProxyLoggingMiddleware( app = proxy_logging.ProxyLoggingMiddleware(
FakeAppNoContentLengthNoTransferEncoding( FakeAppNoContentLengthNoTransferEncoding(
# test the "while not chunk: chunk = iterator.next()" # test the "while not chunk: chunk = next(iterator)"
body=['', '', 'line1\n', 'line2\n'], body=['', '', 'line1\n', 'line2\n'],
), {}) ), {})
app.access_logger = FakeLogger() app.access_logger = FakeLogger()
@ -569,7 +569,7 @@ class TestProxyLogging(unittest.TestCase):
def test_no_content_length_no_transfer_encoding_with_empty_strings(self): def test_no_content_length_no_transfer_encoding_with_empty_strings(self):
app = proxy_logging.ProxyLoggingMiddleware( app = proxy_logging.ProxyLoggingMiddleware(
FakeAppNoContentLengthNoTransferEncoding( FakeAppNoContentLengthNoTransferEncoding(
# test the "while not chunk: chunk = iterator.next()" # test the "while not chunk: chunk = next(iterator)"
body=['', '', ''], body=['', '', ''],
), {}) ), {})
app.access_logger = FakeLogger() app.access_logger = FakeLogger()

View File

@ -76,7 +76,7 @@ class OpenAndReadTester(object):
def read(self, *args, **kwargs): def read(self, *args, **kwargs):
self.read_calls.append((args, kwargs)) self.read_calls.append((args, kwargs))
try: try:
return self.output_iter.next() return next(self.output_iter)
except StopIteration: except StopIteration:
return '' return ''

View File

@ -78,7 +78,7 @@ class FakeApp(object):
resp = env['swift.authorize'](self.request) resp = env['swift.authorize'](self.request)
if resp: if resp:
return resp(env, start_response) return resp(env, start_response)
status, headers, body = self.status_headers_body_iter.next() status, headers, body = next(self.status_headers_body_iter)
return Response(status=status, headers=headers, return Response(status=status, headers=headers,
body=body)(env, start_response) body=body)(env, start_response)
@ -95,7 +95,7 @@ class FakeConn(object):
self.calls += 1 self.calls += 1
self.request_path = path self.request_path = path
self.status, self.headers, self.body = \ self.status, self.headers, self.body = \
self.status_headers_body_iter.next() next(self.status_headers_body_iter)
self.status, self.reason = self.status.split(' ', 1) self.status, self.reason = self.status.split(' ', 1)
self.status = int(self.status) self.status = int(self.status)

View File

@ -57,7 +57,7 @@ class FakeApp(object):
resp = env['swift.authorize'](self.request) resp = env['swift.authorize'](self.request)
if resp: if resp:
return resp(env, start_response) return resp(env, start_response)
status, headers, body = self.status_headers_body_iter.next() status, headers, body = next(self.status_headers_body_iter)
return Response(status=status, headers=headers, return Response(status=status, headers=headers,
body=body)(env, start_response) body=body)(env, start_response)

View File

@ -234,7 +234,7 @@ class TestRing(TestRingBase):
self.intended_replica2part2dev_id, self.intended_replica2part2dev_id,
self.intended_devs, self.intended_part_shift).save(self.testgz) self.intended_devs, self.intended_part_shift).save(self.testgz)
sleep(0.1) sleep(0.1)
self.ring.get_more_nodes(part).next() next(self.ring.get_more_nodes(part))
self.assertEquals(len(self.ring.devs), 8) self.assertEquals(len(self.ring.devs), 8)
self.assertNotEquals(self.ring._mtime, orig_mtime) self.assertNotEquals(self.ring._mtime, orig_mtime)
@ -503,7 +503,7 @@ class TestRing(TestRingBase):
# The first handoff nodes for each partition in the ring # The first handoff nodes for each partition in the ring
devs = [] devs = []
for part in xrange(r.partition_count): for part in xrange(r.partition_count):
devs.append(r.get_more_nodes(part).next()['id']) devs.append(next(r.get_more_nodes(part))['id'])
self.assertEquals(devs, exp_first_handoffs) self.assertEquals(devs, exp_first_handoffs)
# Add a new device we can handoff to. # Add a new device we can handoff to.
@ -539,7 +539,7 @@ class TestRing(TestRingBase):
devs = [] devs = []
for part in xrange(r.partition_count): for part in xrange(r.partition_count):
devs.append(r.get_more_nodes(part).next()['id']) devs.append(next(r.get_more_nodes(part))['id'])
for part in xrange(r.partition_count): for part in xrange(r.partition_count):
self.assertEquals( self.assertEquals(
devs[part], exp_first_handoffs[part], devs[part], exp_first_handoffs[part],
@ -588,7 +588,7 @@ class TestRing(TestRingBase):
devs = [] devs = []
for part in xrange(r.partition_count): for part in xrange(r.partition_count):
devs.append(r.get_more_nodes(part).next()['id']) devs.append(next(r.get_more_nodes(part))['id'])
for part in xrange(r.partition_count): for part in xrange(r.partition_count):
self.assertEquals( self.assertEquals(
devs[part], exp_first_handoffs[part], devs[part], exp_first_handoffs[part],
@ -669,7 +669,7 @@ class TestRing(TestRingBase):
devs = [] devs = []
for part in xrange(r.partition_count): for part in xrange(r.partition_count):
devs.append(r.get_more_nodes(part).next()['id']) devs.append(next(r.get_more_nodes(part))['id'])
for part in xrange(r.partition_count): for part in xrange(r.partition_count):
self.assertEquals( self.assertEquals(
devs[part], exp_first_handoffs[part], devs[part], exp_first_handoffs[part],

View File

@ -69,9 +69,9 @@ class TestDictFactory(unittest.TestCase):
conn.execute('INSERT INTO test (one, two) VALUES ("def", 456)') conn.execute('INSERT INTO test (one, two) VALUES ("def", 456)')
conn.commit() conn.commit()
curs = conn.execute('SELECT one, two FROM test') curs = conn.execute('SELECT one, two FROM test')
self.assertEquals(dict_factory(curs, curs.next()), self.assertEquals(dict_factory(curs, next(curs)),
{'one': 'abc', 'two': 123}) {'one': 'abc', 'two': 123})
self.assertEquals(dict_factory(curs, curs.next()), self.assertEquals(dict_factory(curs, next(curs)),
{'one': 'def', 'two': 456}) {'one': 'def', 'two': 456})
@ -97,12 +97,12 @@ class TestChexor(unittest.TestCase):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
objects = [ objects = [
('frank', ts.next()), ('frank', next(ts)),
('bob', ts.next()), ('bob', next(ts)),
('tom', ts.next()), ('tom', next(ts)),
('frank', ts.next()), ('frank', next(ts)),
('tom', ts.next()), ('tom', next(ts)),
('bob', ts.next()), ('bob', next(ts)),
] ]
hash_ = '0' hash_ = '0'
random.shuffle(objects) random.shuffle(objects)

View File

@ -135,11 +135,11 @@ class FakeProcess(object):
class Failure(object): class Failure(object):
def communicate(innerself): def communicate(innerself):
next = self.codes.next() next_item = next(self.codes)
if isinstance(next, int): if isinstance(next_item, int):
innerself.returncode = next innerself.returncode = next_item
return next return next_item
raise next raise next_item
return Failure() return Failure()

View File

@ -156,7 +156,7 @@ class TestManagerModule(unittest.TestCase):
def waitpid(self, pid, options): def waitpid(self, pid, options):
try: try:
rv = self.pid_map[pid].next() rv = next(self.pid_map[pid])
except StopIteration: except StopIteration:
raise OSError(errno.ECHILD, os.strerror(errno.ECHILD)) raise OSError(errno.ECHILD, os.strerror(errno.ECHILD))
except KeyError: except KeyError:
@ -176,7 +176,7 @@ class TestManagerModule(unittest.TestCase):
def time(self): def time(self):
try: try:
self.tock += self.ticks.next() self.tock += next(self.ticks)
except StopIteration: except StopIteration:
self.tock += 1 self.tock += 1
return self.tock return self.tock
@ -191,7 +191,7 @@ class TestManagerModule(unittest.TestCase):
def get_running_pids(self): def get_running_pids(self):
try: try:
rv = self.heartbeat.next() rv = next(self.heartbeat)
return rv return rv
except StopIteration: except StopIteration:
return {} return {}
@ -602,7 +602,7 @@ class TestServer(unittest.TestCase):
server = manager.Server('proxy', run_dir=t) server = manager.Server('proxy', run_dir=t)
# test get one file # test get one file
iter = server.iter_pid_files() iter = server.iter_pid_files()
pid_file, pid = iter.next() pid_file, pid = next(iter)
self.assertEquals(pid_file, self.join_run_dir('proxy-server.pid')) self.assertEquals(pid_file, self.join_run_dir('proxy-server.pid'))
self.assertEquals(pid, 1) self.assertEquals(pid, 1)
# ... and only one file # ... and only one file
@ -1021,7 +1021,7 @@ class TestServer(unittest.TestCase):
self.pids = (p for p in pids) self.pids = (p for p in pids)
def Popen(self, args, **kwargs): def Popen(self, args, **kwargs):
return MockProc(self.pids.next(), args, **kwargs) return MockProc(next(self.pids), args, **kwargs)
class MockProc(object): class MockProc(object):
@ -1295,7 +1295,7 @@ class TestServer(unittest.TestCase):
def __call__(self, conf_file, **kwargs): def __call__(self, conf_file, **kwargs):
self.conf_files.append(conf_file) self.conf_files.append(conf_file)
self.kwargs.append(kwargs) self.kwargs.append(kwargs)
rv = self.pids.next() rv = next(self.pids)
if isinstance(rv, Exception): if isinstance(rv, Exception):
raise rv raise rv
else: else:

View File

@ -1060,8 +1060,8 @@ class TestResponse(unittest.TestCase):
req.method = 'GET' req.method = 'GET'
status, headers, app_iter = req.call_application(test_app) status, headers, app_iter = req.call_application(test_app)
iterator = iter(app_iter) iterator = iter(app_iter)
self.assertEqual('igloo', iterator.next()) self.assertEqual('igloo', next(iterator))
self.assertEqual('shindig', iterator.next()) self.assertEqual('shindig', next(iterator))
app_iter.close() app_iter.close()
self.assertRaises(StopIteration, iterator.next) self.assertRaises(StopIteration, iterator.next)

View File

@ -3298,7 +3298,7 @@ class TestFileLikeIter(unittest.TestCase):
iter_file = utils.FileLikeIter(in_iter) iter_file = utils.FileLikeIter(in_iter)
while True: while True:
try: try:
chunk = iter_file.next() chunk = next(iter_file)
except StopIteration: except StopIteration:
break break
chunks.append(chunk) chunks.append(chunk)
@ -3388,7 +3388,7 @@ class TestFileLikeIter(unittest.TestCase):
def test_close(self): def test_close(self):
iter_file = utils.FileLikeIter('abcdef') iter_file = utils.FileLikeIter('abcdef')
self.assertEquals(iter_file.next(), 'a') self.assertEquals(next(iter_file), 'a')
iter_file.close() iter_file.close()
self.assertTrue(iter_file.closed) self.assertTrue(iter_file.closed)
self.assertRaises(ValueError, iter_file.next) self.assertRaises(ValueError, iter_file.next)
@ -3719,7 +3719,7 @@ class TestRateLimitedIterator(unittest.TestCase):
started_at = time.time() started_at = time.time()
try: try:
while time.time() - started_at < 0.1: while time.time() - started_at < 0.1:
got.append(limited_iterator.next()) got.append(next(limited_iterator))
except StopIteration: except StopIteration:
pass pass
return got return got
@ -3738,7 +3738,7 @@ class TestRateLimitedIterator(unittest.TestCase):
started_at = time.time() started_at = time.time()
try: try:
while time.time() - started_at < 0.1: while time.time() - started_at < 0.1:
got.append(limited_iterator.next()) got.append(next(limited_iterator))
except StopIteration: except StopIteration:
pass pass
return got return got
@ -4642,7 +4642,7 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
it = utils.iter_multipart_mime_documents(StringIO('blah'), 'unique') it = utils.iter_multipart_mime_documents(StringIO('blah'), 'unique')
exc = None exc = None
try: try:
it.next() next(it)
except MimeInvalid as err: except MimeInvalid as err:
exc = err exc = err
self.assertTrue('invalid starting boundary' in str(exc)) self.assertTrue('invalid starting boundary' in str(exc))
@ -4651,11 +4651,11 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
def test_empty(self): def test_empty(self):
it = utils.iter_multipart_mime_documents(StringIO('--unique'), it = utils.iter_multipart_mime_documents(StringIO('--unique'),
'unique') 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), '') self.assertEquals(fp.read(), '')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)
@ -4663,11 +4663,11 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
def test_basic(self): def test_basic(self):
it = utils.iter_multipart_mime_documents( it = utils.iter_multipart_mime_documents(
StringIO('--unique\r\nabcdefg\r\n--unique--'), 'unique') StringIO('--unique\r\nabcdefg\r\n--unique--'), 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), 'abcdefg') self.assertEquals(fp.read(), 'abcdefg')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)
@ -4676,13 +4676,13 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
it = utils.iter_multipart_mime_documents( it = utils.iter_multipart_mime_documents(
StringIO('--unique\r\nabcdefg\r\n--unique\r\nhijkl\r\n--unique--'), StringIO('--unique\r\nabcdefg\r\n--unique\r\nhijkl\r\n--unique--'),
'unique') 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), 'abcdefg') self.assertEquals(fp.read(), 'abcdefg')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), 'hijkl') self.assertEquals(fp.read(), 'hijkl')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)
@ -4691,17 +4691,17 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
it = utils.iter_multipart_mime_documents( it = utils.iter_multipart_mime_documents(
StringIO('--unique\r\nabcdefg\r\n--unique\r\nhijkl\r\n--unique--'), StringIO('--unique\r\nabcdefg\r\n--unique\r\nhijkl\r\n--unique--'),
'unique') 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(2), 'ab') self.assertEquals(fp.read(2), 'ab')
self.assertEquals(fp.read(2), 'cd') self.assertEquals(fp.read(2), 'cd')
self.assertEquals(fp.read(2), 'ef') self.assertEquals(fp.read(2), 'ef')
self.assertEquals(fp.read(2), 'g') self.assertEquals(fp.read(2), 'g')
self.assertEquals(fp.read(2), '') self.assertEquals(fp.read(2), '')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), 'hijkl') self.assertEquals(fp.read(), 'hijkl')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)
@ -4710,14 +4710,14 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
it = utils.iter_multipart_mime_documents( it = utils.iter_multipart_mime_documents(
StringIO('--unique\r\nabcdefg\r\n--unique\r\nhijkl\r\n--unique--'), StringIO('--unique\r\nabcdefg\r\n--unique\r\nhijkl\r\n--unique--'),
'unique') 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(65536), 'abcdefg') self.assertEquals(fp.read(65536), 'abcdefg')
self.assertEquals(fp.read(), '') self.assertEquals(fp.read(), '')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), 'hijkl') self.assertEquals(fp.read(), 'hijkl')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)
@ -4727,10 +4727,10 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
StringIO('\r\n\r\n\r\n--unique\r\nabcdefg\r\n' StringIO('\r\n\r\n\r\n--unique\r\nabcdefg\r\n'
'--unique\r\nhijkl\r\n--unique--'), '--unique\r\nhijkl\r\n--unique--'),
'unique') 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(65536), 'abcdefg') self.assertEquals(fp.read(65536), 'abcdefg')
self.assertEquals(fp.read(), '') self.assertEquals(fp.read(), '')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), 'hijkl') self.assertEquals(fp.read(), 'hijkl')
self.assertRaises(StopIteration, it.next) self.assertRaises(StopIteration, it.next)
@ -4739,11 +4739,11 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
# whole request, in case the partial form is still useful. # whole request, in case the partial form is still useful.
it = utils.iter_multipart_mime_documents( it = utils.iter_multipart_mime_documents(
StringIO('--unique\r\nabc'), 'unique') StringIO('--unique\r\nabc'), 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.read(), 'abc') self.assertEquals(fp.read(), 'abc')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)
@ -4752,17 +4752,17 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
it = utils.iter_multipart_mime_documents( it = utils.iter_multipart_mime_documents(
StringIO('--unique\r\nab\r\ncd\ref\ng\r\n--unique\r\nhi\r\n\r\n' StringIO('--unique\r\nab\r\ncd\ref\ng\r\n--unique\r\nhi\r\n\r\n'
'jkl\r\n\r\n--unique--'), 'unique') 'jkl\r\n\r\n--unique--'), 'unique')
fp = it.next() fp = next(it)
self.assertEquals(fp.readline(), 'ab\r\n') self.assertEquals(fp.readline(), 'ab\r\n')
self.assertEquals(fp.readline(), 'cd\ref\ng') self.assertEquals(fp.readline(), 'cd\ref\ng')
self.assertEquals(fp.readline(), '') self.assertEquals(fp.readline(), '')
fp = it.next() fp = next(it)
self.assertEquals(fp.readline(), 'hi\r\n') self.assertEquals(fp.readline(), 'hi\r\n')
self.assertEquals(fp.readline(), '\r\n') self.assertEquals(fp.readline(), '\r\n')
self.assertEquals(fp.readline(), 'jkl\r\n') self.assertEquals(fp.readline(), 'jkl\r\n')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)
@ -4773,17 +4773,17 @@ class TestIterMultipartMimeDocuments(unittest.TestCase):
'\r\njkl\r\n\r\n--unique--'), '\r\njkl\r\n\r\n--unique--'),
'unique', 'unique',
read_chunk_size=2) read_chunk_size=2)
fp = it.next() fp = next(it)
self.assertEquals(fp.readline(), 'ab\r\n') self.assertEquals(fp.readline(), 'ab\r\n')
self.assertEquals(fp.readline(), 'cd\ref\ng') self.assertEquals(fp.readline(), 'cd\ref\ng')
self.assertEquals(fp.readline(), '') self.assertEquals(fp.readline(), '')
fp = it.next() fp = next(it)
self.assertEquals(fp.readline(), 'hi\r\n') self.assertEquals(fp.readline(), 'hi\r\n')
self.assertEquals(fp.readline(), '\r\n') self.assertEquals(fp.readline(), '\r\n')
self.assertEquals(fp.readline(), 'jkl\r\n') self.assertEquals(fp.readline(), 'jkl\r\n')
exc = None exc = None
try: try:
it.next() next(it)
except StopIteration as err: except StopIteration as err:
exc = err exc = err
self.assertTrue(exc is not None) self.assertTrue(exc is not None)

View File

@ -786,8 +786,8 @@ class TestWSGIContext(unittest.TestCase):
self.assertEquals(wc._response_status, '200 OK') self.assertEquals(wc._response_status, '200 OK')
iterator = iter(iterable) iterator = iter(iterable)
self.assertEqual('aaaaa', iterator.next()) self.assertEqual('aaaaa', next(iterator))
self.assertEqual('bbbbb', iterator.next()) self.assertEqual('bbbbb', next(iterator))
iterable.close() iterable.close()
self.assertRaises(StopIteration, iterator.next) self.assertRaises(StopIteration, iterator.next)

View File

@ -57,7 +57,7 @@ class TestContainerBroker(unittest.TestCase):
for policy in POLICIES: for policy in POLICIES:
broker = ContainerBroker(':memory:', account='a', broker = ContainerBroker(':memory:', account='a',
container='policy_%s' % policy.name) container='policy_%s' % policy.name)
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
with broker.get() as conn: with broker.get() as conn:
try: try:
conn.execute('''SELECT storage_policy_index conn.execute('''SELECT storage_policy_index
@ -168,7 +168,7 @@ class TestContainerBroker(unittest.TestCase):
broker = ContainerBroker(':memory:', account='test_account', broker = ContainerBroker(':memory:', account='test_account',
container='test_container') container='test_container')
# create it # create it
broker.initialize(ts.next(), POLICIES.default.idx) broker.initialize(next(ts), POLICIES.default.idx)
info, is_deleted = broker.get_info_is_deleted() info, is_deleted = broker.get_info_is_deleted()
self.assertEqual(is_deleted, broker.is_deleted()) self.assertEqual(is_deleted, broker.is_deleted())
self.assertEqual(is_deleted, False) # sanity self.assertEqual(is_deleted, False) # sanity
@ -185,7 +185,7 @@ class TestContainerBroker(unittest.TestCase):
Timestamp(start).internal) Timestamp(start).internal)
# delete it # delete it
delete_timestamp = ts.next() delete_timestamp = next(ts)
broker.delete_db(delete_timestamp) broker.delete_db(delete_timestamp)
info, is_deleted = broker.get_info_is_deleted() info, is_deleted = broker.get_info_is_deleted()
self.assertEqual(is_deleted, True) # sanity self.assertEqual(is_deleted, True) # sanity
@ -197,7 +197,7 @@ class TestContainerBroker(unittest.TestCase):
self.assertEqual(info['status_changed_at'], delete_timestamp) self.assertEqual(info['status_changed_at'], delete_timestamp)
# bring back to life # bring back to life
broker.put_object('obj', ts.next(), 0, 'text/plain', 'etag', broker.put_object('obj', next(ts), 0, 'text/plain', 'etag',
storage_policy_index=broker.storage_policy_index) storage_policy_index=broker.storage_policy_index)
info, is_deleted = broker.get_info_is_deleted() info, is_deleted = broker.get_info_is_deleted()
self.assertEqual(is_deleted, False) # sanity self.assertEqual(is_deleted, False) # sanity
@ -437,14 +437,14 @@ class TestContainerBroker(unittest.TestCase):
itertools.count(int(time()))) itertools.count(int(time())))
broker = ContainerBroker(':memory:', broker = ContainerBroker(':memory:',
account='a', container='c') account='a', container='c')
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# migration tests may not honor policy on initialize # migration tests may not honor policy on initialize
if isinstance(self, ContainerBrokerMigrationMixin): if isinstance(self, ContainerBrokerMigrationMixin):
real_storage_policy_index = \ real_storage_policy_index = \
broker.get_info()['storage_policy_index'] broker.get_info()['storage_policy_index']
policy = filter(lambda p: p.idx == real_storage_policy_index, policy = filter(lambda p: p.idx == real_storage_policy_index,
POLICIES)[0] POLICIES)[0]
broker.put_object('correct_o', ts.next(), 123, 'text/plain', broker.put_object('correct_o', next(ts), 123, 'text/plain',
'5af83e3196bf99f440f31f2e1a6c9afe', '5af83e3196bf99f440f31f2e1a6c9afe',
storage_policy_index=policy.idx) storage_policy_index=policy.idx)
info = broker.get_info() info = broker.get_info()
@ -452,7 +452,7 @@ class TestContainerBroker(unittest.TestCase):
self.assertEqual(123, info['bytes_used']) self.assertEqual(123, info['bytes_used'])
other_policy = random.choice([p for p in POLICIES other_policy = random.choice([p for p in POLICIES
if p is not policy]) if p is not policy])
broker.put_object('wrong_o', ts.next(), 123, 'text/plain', broker.put_object('wrong_o', next(ts), 123, 'text/plain',
'5af83e3196bf99f440f31f2e1a6c9afe', '5af83e3196bf99f440f31f2e1a6c9afe',
storage_policy_index=other_policy.idx) storage_policy_index=other_policy.idx)
self.assertEqual(1, info['object_count']) self.assertEqual(1, info['object_count'])
@ -465,19 +465,19 @@ class TestContainerBroker(unittest.TestCase):
itertools.count(int(time()))) itertools.count(int(time())))
broker = ContainerBroker(':memory:', broker = ContainerBroker(':memory:',
account='a', container='c') account='a', container='c')
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# migration tests may not honor policy on initialize # migration tests may not honor policy on initialize
if isinstance(self, ContainerBrokerMigrationMixin): if isinstance(self, ContainerBrokerMigrationMixin):
real_storage_policy_index = \ real_storage_policy_index = \
broker.get_info()['storage_policy_index'] broker.get_info()['storage_policy_index']
policy = filter(lambda p: p.idx == real_storage_policy_index, policy = filter(lambda p: p.idx == real_storage_policy_index,
POLICIES)[0] POLICIES)[0]
broker.put_object('correct_o', ts.next(), 123, 'text/plain', broker.put_object('correct_o', next(ts), 123, 'text/plain',
'5af83e3196bf99f440f31f2e1a6c9afe', '5af83e3196bf99f440f31f2e1a6c9afe',
storage_policy_index=policy.idx) storage_policy_index=policy.idx)
self.assertFalse(broker.has_multiple_policies()) self.assertFalse(broker.has_multiple_policies())
other_policy = [p for p in POLICIES if p is not policy][0] other_policy = [p for p in POLICIES if p is not policy][0]
broker.put_object('wrong_o', ts.next(), 123, 'text/plain', broker.put_object('wrong_o', next(ts), 123, 'text/plain',
'5af83e3196bf99f440f31f2e1a6c9afe', '5af83e3196bf99f440f31f2e1a6c9afe',
storage_policy_index=other_policy.idx) storage_policy_index=other_policy.idx)
self.assert_(broker.has_multiple_policies()) self.assert_(broker.has_multiple_policies())
@ -489,7 +489,7 @@ class TestContainerBroker(unittest.TestCase):
itertools.count(int(time()))) itertools.count(int(time())))
broker = ContainerBroker(':memory:', broker = ContainerBroker(':memory:',
account='a', container='c') account='a', container='c')
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# migration tests may not honor policy on initialize # migration tests may not honor policy on initialize
if isinstance(self, ContainerBrokerMigrationMixin): if isinstance(self, ContainerBrokerMigrationMixin):
real_storage_policy_index = \ real_storage_policy_index = \
@ -501,7 +501,7 @@ class TestContainerBroker(unittest.TestCase):
self.assertEqual(policy_stats, expected) self.assertEqual(policy_stats, expected)
# add an object # add an object
broker.put_object('correct_o', ts.next(), 123, 'text/plain', broker.put_object('correct_o', next(ts), 123, 'text/plain',
'5af83e3196bf99f440f31f2e1a6c9afe', '5af83e3196bf99f440f31f2e1a6c9afe',
storage_policy_index=policy.idx) storage_policy_index=policy.idx)
policy_stats = broker.get_policy_stats() policy_stats = broker.get_policy_stats()
@ -511,7 +511,7 @@ class TestContainerBroker(unittest.TestCase):
# add a misplaced object # add a misplaced object
other_policy = random.choice([p for p in POLICIES other_policy = random.choice([p for p in POLICIES
if p is not policy]) if p is not policy])
broker.put_object('wrong_o', ts.next(), 123, 'text/plain', broker.put_object('wrong_o', next(ts), 123, 'text/plain',
'5af83e3196bf99f440f31f2e1a6c9afe', '5af83e3196bf99f440f31f2e1a6c9afe',
storage_policy_index=other_policy.idx) storage_policy_index=other_policy.idx)
policy_stats = broker.get_policy_stats() policy_stats = broker.get_policy_stats()
@ -526,7 +526,7 @@ class TestContainerBroker(unittest.TestCase):
itertools.count(int(time()))) itertools.count(int(time())))
broker = ContainerBroker(':memory:', broker = ContainerBroker(':memory:',
account='a', container='c') account='a', container='c')
broker.initialize(ts.next(), POLICIES.default.idx) broker.initialize(next(ts), POLICIES.default.idx)
stats = defaultdict(dict) stats = defaultdict(dict)
iters = 100 iters = 100
@ -534,7 +534,7 @@ class TestContainerBroker(unittest.TestCase):
policy_index = random.randint(0, iters * 0.1) policy_index = random.randint(0, iters * 0.1)
name = 'object-%s' % random.randint(0, iters * 0.1) name = 'object-%s' % random.randint(0, iters * 0.1)
size = random.randint(0, iters) size = random.randint(0, iters)
broker.put_object(name, ts.next(), size, 'text/plain', broker.put_object(name, next(ts), size, 'text/plain',
'5af83e3196bf99f440f31f2e1a6c9afe', '5af83e3196bf99f440f31f2e1a6c9afe',
storage_policy_index=policy_index) storage_policy_index=policy_index)
# track the size of the latest timestamp put for each object # track the size of the latest timestamp put for each object
@ -1343,7 +1343,7 @@ class TestContainerBroker(unittest.TestCase):
itertools.count(int(time()))) itertools.count(int(time())))
broker = ContainerBroker(':memory:', account='test_account', broker = ContainerBroker(':memory:', account='test_account',
container='test_container') container='test_container')
timestamp = ts.next() timestamp = next(ts)
broker.initialize(timestamp, 0) broker.initialize(timestamp, 0)
info = broker.get_info() info = broker.get_info()
@ -1359,7 +1359,7 @@ class TestContainerBroker(unittest.TestCase):
expected = {0: {'object_count': 0, 'bytes_used': 0}} expected = {0: {'object_count': 0, 'bytes_used': 0}}
self.assertEqual(expected, broker.get_policy_stats()) self.assertEqual(expected, broker.get_policy_stats())
timestamp = ts.next() timestamp = next(ts)
broker.set_storage_policy_index(111, timestamp) broker.set_storage_policy_index(111, timestamp)
self.assertEqual(broker.storage_policy_index, 111) self.assertEqual(broker.storage_policy_index, 111)
info = broker.get_info() info = broker.get_info()
@ -1370,7 +1370,7 @@ class TestContainerBroker(unittest.TestCase):
expected[111] = {'object_count': 0, 'bytes_used': 0} expected[111] = {'object_count': 0, 'bytes_used': 0}
self.assertEqual(expected, broker.get_policy_stats()) self.assertEqual(expected, broker.get_policy_stats())
timestamp = ts.next() timestamp = next(ts)
broker.set_storage_policy_index(222, timestamp) broker.set_storage_policy_index(222, timestamp)
self.assertEqual(broker.storage_policy_index, 222) self.assertEqual(broker.storage_policy_index, 222)
info = broker.get_info() info = broker.get_info()
@ -1381,7 +1381,7 @@ class TestContainerBroker(unittest.TestCase):
expected[222] = {'object_count': 0, 'bytes_used': 0} expected[222] = {'object_count': 0, 'bytes_used': 0}
self.assertEqual(expected, broker.get_policy_stats()) self.assertEqual(expected, broker.get_policy_stats())
old_timestamp, timestamp = timestamp, ts.next() old_timestamp, timestamp = timestamp, next(ts)
broker.set_storage_policy_index(222, timestamp) # it's idempotent broker.set_storage_policy_index(222, timestamp) # it's idempotent
info = broker.get_info() info = broker.get_info()
self.assertEqual(222, info['storage_policy_index']) self.assertEqual(222, info['storage_policy_index'])
@ -1419,13 +1419,13 @@ class TestContainerBroker(unittest.TestCase):
# first init an acct DB without the policy_stat table present # first init an acct DB without the policy_stat table present
broker = ContainerBroker(db_path, account='a', container='c') broker = ContainerBroker(db_path, account='a', container='c')
broker.initialize(ts.next(), 1) broker.initialize(next(ts), 1)
# manually make some pending entries lacking storage_policy_index # manually make some pending entries lacking storage_policy_index
with open(broker.pending_file, 'a+b') as fp: with open(broker.pending_file, 'a+b') as fp:
for i in range(10): for i in range(10):
name, timestamp, size, content_type, etag, deleted = ( name, timestamp, size, content_type, etag, deleted = (
'o%s' % i, ts.next(), 0, 'c', 'e', 0) 'o%s' % i, next(ts), 0, 'c', 'e', 0)
fp.write(':') fp.write(':')
fp.write(pickle.dumps( fp.write(pickle.dumps(
(name, timestamp, size, content_type, etag, deleted), (name, timestamp, size, content_type, etag, deleted),
@ -1442,7 +1442,7 @@ class TestContainerBroker(unittest.TestCase):
else: else:
size = 2 size = 2
storage_policy_index = 1 storage_policy_index = 1
broker.put_object(name, ts.next(), size, 'c', 'e', 0, broker.put_object(name, next(ts), size, 'c', 'e', 0,
storage_policy_index=storage_policy_index) storage_policy_index=storage_policy_index)
broker._commit_puts_stale_ok() broker._commit_puts_stale_ok()

View File

@ -237,15 +237,15 @@ class TestReconcilerUtils(unittest.TestCase):
mock_path = 'swift.container.reconciler.direct_head_container' mock_path = 'swift.container.reconciler.direct_head_container'
stub_resp_headers = [ stub_resp_headers = [
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=0, storage_policy_index=0,
), ),
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=1, storage_policy_index=1,
), ),
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=0, storage_policy_index=0,
), ),
] ]
@ -268,11 +268,11 @@ class TestReconcilerUtils(unittest.TestCase):
mock_path = 'swift.container.reconciler.direct_head_container' mock_path = 'swift.container.reconciler.direct_head_container'
stub_resp_headers = [ stub_resp_headers = [
container_resp_headers( container_resp_headers(
status_change_at=ts.next(), status_change_at=next(ts),
storage_policy_index=2, storage_policy_index=2,
), ),
container_resp_headers( container_resp_headers(
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=1, storage_policy_index=1,
), ),
# old timestamp, but 500 should be ignored... # old timestamp, but 500 should be ignored...
@ -297,11 +297,11 @@ class TestReconcilerUtils(unittest.TestCase):
mock_path = 'swift.container.reconciler.direct_head_container' mock_path = 'swift.container.reconciler.direct_head_container'
stub_resp_headers = [ stub_resp_headers = [
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=1, storage_policy_index=1,
), ),
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=0, storage_policy_index=0,
), ),
socket.error(errno.ECONNREFUSED, os.strerror(errno.ECONNREFUSED)), socket.error(errno.ECONNREFUSED, os.strerror(errno.ECONNREFUSED)),
@ -318,7 +318,7 @@ class TestReconcilerUtils(unittest.TestCase):
mock_path = 'swift.container.reconciler.direct_head_container' mock_path = 'swift.container.reconciler.direct_head_container'
stub_resp_headers = [ stub_resp_headers = [
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=0, storage_policy_index=0,
), ),
socket.error(errno.ECONNREFUSED, os.strerror(errno.ECONNREFUSED)), socket.error(errno.ECONNREFUSED, os.strerror(errno.ECONNREFUSED)),
@ -326,7 +326,7 @@ class TestReconcilerUtils(unittest.TestCase):
'Container Server blew up', 'Container Server blew up',
http_status=500, http_reason='Server Error', http_status=500, http_reason='Server Error',
http_headers=container_resp_headers( http_headers=container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=1, storage_policy_index=1,
), ),
), ),
@ -376,9 +376,9 @@ class TestReconcilerUtils(unittest.TestCase):
'Container Not Found', 'Container Not Found',
http_status=404, http_reason='Not Found', http_status=404, http_reason='Not Found',
http_headers=container_resp_headers( http_headers=container_resp_headers(
put_timestamp=ts.next(), put_timestamp=next(ts),
delete_timestamp=ts.next(), delete_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=0, storage_policy_index=0,
), ),
), ),
@ -386,9 +386,9 @@ class TestReconcilerUtils(unittest.TestCase):
'Container Not Found', 'Container Not Found',
http_status=404, http_reason='Not Found', http_status=404, http_reason='Not Found',
http_headers=container_resp_headers( http_headers=container_resp_headers(
put_timestamp=ts.next(), put_timestamp=next(ts),
delete_timestamp=ts.next(), delete_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=1, storage_policy_index=1,
), ),
), ),
@ -396,9 +396,9 @@ class TestReconcilerUtils(unittest.TestCase):
'Container Not Found', 'Container Not Found',
http_status=404, http_reason='Not Found', http_status=404, http_reason='Not Found',
http_headers=container_resp_headers( http_headers=container_resp_headers(
put_timestamp=ts.next(), put_timestamp=next(ts),
delete_timestamp=ts.next(), delete_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=2, storage_policy_index=2,
), ),
), ),
@ -417,8 +417,8 @@ class TestReconcilerUtils(unittest.TestCase):
# old put, no recreate # old put, no recreate
container_resp_headers( container_resp_headers(
delete_timestamp=0, delete_timestamp=0,
put_timestamp=ts.next(), put_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=0, storage_policy_index=0,
), ),
# recently deleted # recently deleted
@ -426,17 +426,17 @@ class TestReconcilerUtils(unittest.TestCase):
'Container Not Found', 'Container Not Found',
http_status=404, http_reason='Not Found', http_status=404, http_reason='Not Found',
http_headers=container_resp_headers( http_headers=container_resp_headers(
put_timestamp=ts.next(), put_timestamp=next(ts),
delete_timestamp=ts.next(), delete_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=1, storage_policy_index=1,
), ),
), ),
# recently recreated # recently recreated
container_resp_headers( container_resp_headers(
delete_timestamp=ts.next(), delete_timestamp=next(ts),
put_timestamp=ts.next(), put_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=2, storage_policy_index=2,
), ),
] ]
@ -454,22 +454,22 @@ class TestReconcilerUtils(unittest.TestCase):
# oldest put # oldest put
container_resp_headers( container_resp_headers(
delete_timestamp=0, delete_timestamp=0,
put_timestamp=ts.next(), put_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=0, storage_policy_index=0,
), ),
# old recreate # old recreate
container_resp_headers( container_resp_headers(
delete_timestamp=ts.next(), delete_timestamp=next(ts),
put_timestamp=ts.next(), put_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=1, storage_policy_index=1,
), ),
# recently put # recently put
container_resp_headers( container_resp_headers(
delete_timestamp=0, delete_timestamp=0,
put_timestamp=ts.next(), put_timestamp=next(ts),
status_changed_at=ts.next(), status_changed_at=next(ts),
storage_policy_index=2, storage_policy_index=2,
), ),
] ]
@ -486,15 +486,15 @@ class TestReconcilerUtils(unittest.TestCase):
mock_path = 'swift.container.reconciler.direct_head_container' mock_path = 'swift.container.reconciler.direct_head_container'
stub_resp_headers = [ stub_resp_headers = [
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=0, storage_policy_index=0,
), ),
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=1, storage_policy_index=1,
), ),
container_resp_headers( container_resp_headers(
status_changed_at=Timestamp(ts.next()).internal, status_changed_at=Timestamp(next(ts)).internal,
storage_policy_index=0, storage_policy_index=0,
), ),
] ]

View File

@ -102,14 +102,14 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
ts_iter = make_timestamp_iter() ts_iter = make_timestamp_iter()
# setup a local container # setup a local container
broker = self._get_broker('a', 'c', node_index=0) broker = self._get_broker('a', 'c', node_index=0)
put_timestamp = ts_iter.next() put_timestamp = next(ts_iter)
broker.initialize(put_timestamp.internal, POLICIES.default.idx) broker.initialize(put_timestamp.internal, POLICIES.default.idx)
broker.update_metadata( broker.update_metadata(
{'x-container-meta-test': ('foo', put_timestamp.internal)}) {'x-container-meta-test': ('foo', put_timestamp.internal)})
# setup remote container # setup remote container
remote_broker = self._get_broker('a', 'c', node_index=1) remote_broker = self._get_broker('a', 'c', node_index=1)
remote_broker.initialize(ts_iter.next().internal, POLICIES.default.idx) remote_broker.initialize(next(ts_iter).internal, POLICIES.default.idx)
timestamp = ts_iter.next() timestamp = next(ts_iter)
for db in (broker, remote_broker): for db in (broker, remote_broker):
db.put_object( db.put_object(
'/a/c/o', timestamp.internal, 0, 'content-type', 'etag', '/a/c/o', timestamp.internal, 0, 'content-type', 'etag',
@ -277,7 +277,7 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
def put_more_objects(op, *args): def put_more_objects(op, *args):
if op != 'merge_items': if op != 'merge_items':
return return
path = '/a/c/o_missing_%s' % missing_counter.next() path = '/a/c/o_missing_%s' % next(missing_counter)
broker.put_object(path, time.time(), 0, 'content-type', 'etag', broker.put_object(path, time.time(), 0, 'content-type', 'etag',
storage_policy_index=db.storage_policy_index) storage_policy_index=db.storage_policy_index)
test_db_replicator.FakeReplConnection = \ test_db_replicator.FakeReplConnection = \
@ -415,11 +415,11 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
# setup a local container # setup a local container
broker = self._get_broker('a', 'c', node_index=0) broker = self._get_broker('a', 'c', node_index=0)
put_timestamp = ts.next() put_timestamp = next(ts)
broker.initialize(put_timestamp, POLICIES.default.idx) broker.initialize(put_timestamp, POLICIES.default.idx)
# setup remote container # setup remote container
remote_broker = self._get_broker('a', 'c', node_index=1) remote_broker = self._get_broker('a', 'c', node_index=1)
remote_put_timestamp = ts.next() remote_put_timestamp = next(ts)
remote_broker.initialize(remote_put_timestamp, POLICIES.default.idx) remote_broker.initialize(remote_put_timestamp, POLICIES.default.idx)
# replicate, expect call to merge_timestamps on remote and local # replicate, expect call to merge_timestamps on remote and local
daemon = replicator.ContainerReplicator({}) daemon = replicator.ContainerReplicator({})
@ -460,11 +460,11 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
# create "local" broker # create "local" broker
local_broker = self._get_broker('a', 'c', node_index=0) local_broker = self._get_broker('a', 'c', node_index=0)
local_broker.initialize(ts.next(), policy.idx) local_broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker = self._get_broker('a', 'c', node_index=1) remote_broker = self._get_broker('a', 'c', node_index=1)
remote_broker.initialize(ts.next(), policy.idx) remote_broker.initialize(next(ts), policy.idx)
db_path = local_broker.db_file db_path = local_broker.db_file
self.assertTrue(os.path.exists(db_path)) # sanity check self.assertTrue(os.path.exists(db_path)) # sanity check
@ -515,7 +515,7 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
'both_rows': (broker, remote_broker), 'both_rows': (broker, remote_broker),
} }
dbs = variations[scenario_name] dbs = variations[scenario_name]
obj_ts = ts.next() obj_ts = next(ts)
for db in dbs: for db in dbs:
db.put_object('/a/c/o', obj_ts, 0, 'content-type', 'etag', db.put_object('/a/c/o', obj_ts, 0, 'content-type', 'etag',
storage_policy_index=db.storage_policy_index) storage_policy_index=db.storage_policy_index)
@ -547,19 +547,19 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
for setup in self._replication_scenarios(): for setup in self._replication_scenarios():
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
def test_sync_local_create_policy_over_newer_remote_delete(self): def test_sync_local_create_policy_over_newer_remote_delete(self):
for setup in self._replication_scenarios(): for setup in self._replication_scenarios():
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "local" broker # create older "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# delete "remote" broker # delete "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
def test_sync_local_create_policy_over_older_remote_delete(self): def test_sync_local_create_policy_over_older_remote_delete(self):
# remote_row & both_rows cases are covered by # remote_row & both_rows cases are covered by
@ -568,11 +568,11 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
'no_row', 'local_row'): 'no_row', 'local_row'):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "remote" broker # create older "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# delete older "remote" broker # delete older "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
def test_sync_local_half_delete_policy_over_newer_remote_create(self): def test_sync_local_half_delete_policy_over_newer_remote_create(self):
# no_row & remote_row cases are covered by # no_row & remote_row cases are covered by
@ -580,35 +580,35 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
for setup in self._replication_scenarios('local_row', 'both_rows'): for setup in self._replication_scenarios('local_row', 'both_rows'):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "local" broker # create older "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# half delete older "local" broker # half delete older "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
def test_sync_local_recreate_policy_over_newer_remote_create(self): def test_sync_local_recreate_policy_over_newer_remote_create(self):
for setup in self._replication_scenarios(): for setup in self._replication_scenarios():
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# older recreate "local" broker # older recreate "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
recreate_timestamp = ts.next() recreate_timestamp = next(ts)
broker.update_put_timestamp(recreate_timestamp) broker.update_put_timestamp(recreate_timestamp)
broker.update_status_changed_at(recreate_timestamp) broker.update_status_changed_at(recreate_timestamp)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
def test_sync_local_recreate_policy_over_older_remote_create(self): def test_sync_local_recreate_policy_over_older_remote_create(self):
for setup in self._replication_scenarios(): for setup in self._replication_scenarios():
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "remote" broker # create older "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# recreate "local" broker # recreate "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
recreate_timestamp = ts.next() recreate_timestamp = next(ts)
broker.update_put_timestamp(recreate_timestamp) broker.update_put_timestamp(recreate_timestamp)
broker.update_status_changed_at(recreate_timestamp) broker.update_status_changed_at(recreate_timestamp)
@ -616,29 +616,29 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
for setup in self._replication_scenarios(): for setup in self._replication_scenarios():
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# recreate "local" broker # recreate "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
recreate_timestamp = ts.next() recreate_timestamp = next(ts)
broker.update_put_timestamp(recreate_timestamp) broker.update_put_timestamp(recreate_timestamp)
broker.update_status_changed_at(recreate_timestamp) broker.update_status_changed_at(recreate_timestamp)
# older delete "remote" broker # older delete "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
def test_sync_local_recreate_policy_over_older_remote_delete(self): def test_sync_local_recreate_policy_over_older_remote_delete(self):
for setup in self._replication_scenarios(): for setup in self._replication_scenarios():
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# older delete "remote" broker # older delete "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
# recreate "local" broker # recreate "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
recreate_timestamp = ts.next() recreate_timestamp = next(ts)
broker.update_put_timestamp(recreate_timestamp) broker.update_put_timestamp(recreate_timestamp)
broker.update_status_changed_at(recreate_timestamp) broker.update_status_changed_at(recreate_timestamp)
@ -646,17 +646,17 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
for setup in self._replication_scenarios(): for setup in self._replication_scenarios():
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# older recreate "remote" broker # older recreate "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
remote_recreate_timestamp = ts.next() remote_recreate_timestamp = next(ts)
remote_broker.update_put_timestamp(remote_recreate_timestamp) remote_broker.update_put_timestamp(remote_recreate_timestamp)
remote_broker.update_status_changed_at(remote_recreate_timestamp) remote_broker.update_status_changed_at(remote_recreate_timestamp)
# recreate "local" broker # recreate "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
local_recreate_timestamp = ts.next() local_recreate_timestamp = next(ts)
broker.update_put_timestamp(local_recreate_timestamp) broker.update_put_timestamp(local_recreate_timestamp)
broker.update_status_changed_at(local_recreate_timestamp) broker.update_status_changed_at(local_recreate_timestamp)
@ -664,19 +664,19 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
for setup in self._replication_scenarios(remote_wins=True): for setup in self._replication_scenarios(remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "remote" broker # create older "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
def test_sync_remote_create_policy_over_newer_local_delete(self): def test_sync_remote_create_policy_over_newer_local_delete(self):
for setup in self._replication_scenarios(remote_wins=True): for setup in self._replication_scenarios(remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "remote" broker # create older "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# delete "local" broker # delete "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
def test_sync_remote_create_policy_over_older_local_delete(self): def test_sync_remote_create_policy_over_older_local_delete(self):
# local_row & both_rows cases are covered by # local_row & both_rows cases are covered by
@ -685,11 +685,11 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
'no_row', 'remote_row', remote_wins=True): 'no_row', 'remote_row', remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "local" broker # create older "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# delete older "local" broker # delete older "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
def test_sync_remote_half_delete_policy_over_newer_local_create(self): def test_sync_remote_half_delete_policy_over_newer_local_create(self):
# no_row & both_rows cases are covered by # no_row & both_rows cases are covered by
@ -698,35 +698,35 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
remote_wins=True): remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "remote" broker # create older "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# half delete older "remote" broker # half delete older "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
def test_sync_remote_recreate_policy_over_newer_local_create(self): def test_sync_remote_recreate_policy_over_newer_local_create(self):
for setup in self._replication_scenarios(remote_wins=True): for setup in self._replication_scenarios(remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# older recreate "remote" broker # older recreate "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
recreate_timestamp = ts.next() recreate_timestamp = next(ts)
remote_broker.update_put_timestamp(recreate_timestamp) remote_broker.update_put_timestamp(recreate_timestamp)
remote_broker.update_status_changed_at(recreate_timestamp) remote_broker.update_status_changed_at(recreate_timestamp)
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
def test_sync_remote_recreate_policy_over_older_local_create(self): def test_sync_remote_recreate_policy_over_older_local_create(self):
for setup in self._replication_scenarios(remote_wins=True): for setup in self._replication_scenarios(remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "local" broker # create older "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# recreate "remote" broker # recreate "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
recreate_timestamp = ts.next() recreate_timestamp = next(ts)
remote_broker.update_put_timestamp(recreate_timestamp) remote_broker.update_put_timestamp(recreate_timestamp)
remote_broker.update_status_changed_at(recreate_timestamp) remote_broker.update_status_changed_at(recreate_timestamp)
@ -734,29 +734,29 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
for setup in self._replication_scenarios(remote_wins=True): for setup in self._replication_scenarios(remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# recreate "remote" broker # recreate "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
remote_recreate_timestamp = ts.next() remote_recreate_timestamp = next(ts)
remote_broker.update_put_timestamp(remote_recreate_timestamp) remote_broker.update_put_timestamp(remote_recreate_timestamp)
remote_broker.update_status_changed_at(remote_recreate_timestamp) remote_broker.update_status_changed_at(remote_recreate_timestamp)
# older delete "local" broker # older delete "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
def test_sync_remote_recreate_policy_over_older_local_delete(self): def test_sync_remote_recreate_policy_over_older_local_delete(self):
for setup in self._replication_scenarios(remote_wins=True): for setup in self._replication_scenarios(remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create "local" broker # create "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# older delete "local" broker # older delete "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
# recreate "remote" broker # recreate "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
remote_recreate_timestamp = ts.next() remote_recreate_timestamp = next(ts)
remote_broker.update_put_timestamp(remote_recreate_timestamp) remote_broker.update_put_timestamp(remote_recreate_timestamp)
remote_broker.update_status_changed_at(remote_recreate_timestamp) remote_broker.update_status_changed_at(remote_recreate_timestamp)
@ -764,17 +764,17 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
for setup in self._replication_scenarios(remote_wins=True): for setup in self._replication_scenarios(remote_wins=True):
ts, policy, remote_policy, broker, remote_broker = setup ts, policy, remote_policy, broker, remote_broker = setup
# create older "local" broker # create older "local" broker
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# older recreate "local" broker # older recreate "local" broker
broker.delete_db(ts.next()) broker.delete_db(next(ts))
local_recreate_timestamp = ts.next() local_recreate_timestamp = next(ts)
broker.update_put_timestamp(local_recreate_timestamp) broker.update_put_timestamp(local_recreate_timestamp)
broker.update_status_changed_at(local_recreate_timestamp) broker.update_status_changed_at(local_recreate_timestamp)
# recreate "remote" broker # recreate "remote" broker
remote_broker.delete_db(ts.next()) remote_broker.delete_db(next(ts))
remote_recreate_timestamp = ts.next() remote_recreate_timestamp = next(ts)
remote_broker.update_put_timestamp(remote_recreate_timestamp) remote_broker.update_put_timestamp(remote_recreate_timestamp)
remote_broker.update_status_changed_at(remote_recreate_timestamp) remote_broker.update_status_changed_at(remote_recreate_timestamp)
@ -784,16 +784,16 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
# create "local" broker # create "local" broker
policy = random.choice(list(POLICIES)) policy = random.choice(list(POLICIES))
broker = self._get_broker('a', 'c', node_index=0) broker = self._get_broker('a', 'c', node_index=0)
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
# create "remote" broker # create "remote" broker
remote_policy = random.choice([p for p in POLICIES if p is not remote_policy = random.choice([p for p in POLICIES if p is not
policy]) policy])
remote_broker = self._get_broker('a', 'c', node_index=1) remote_broker = self._get_broker('a', 'c', node_index=1)
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# add misplaced row to remote_broker # add misplaced row to remote_broker
remote_broker.put_object( remote_broker.put_object(
'/a/c/o', ts.next(), 0, 'content-type', '/a/c/o', next(ts), 0, 'content-type',
'etag', storage_policy_index=remote_broker.storage_policy_index) 'etag', storage_policy_index=remote_broker.storage_policy_index)
# since this row matches policy index or remote, it shows up in count # since this row matches policy index or remote, it shows up in count
self.assertEqual(remote_broker.get_info()['object_count'], 1) self.assertEqual(remote_broker.get_info()['object_count'], 1)
@ -831,14 +831,14 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
policy = random.choice(list(POLICIES)) policy = random.choice(list(POLICIES))
broker = self._get_broker('a', 'c', node_index=0) broker = self._get_broker('a', 'c', node_index=0)
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
remote_policy = random.choice([p for p in POLICIES if p is not remote_policy = random.choice([p for p in POLICIES if p is not
policy]) policy])
remote_broker = self._get_broker('a', 'c', node_index=1) remote_broker = self._get_broker('a', 'c', node_index=1)
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# add a misplaced row to *local* broker # add a misplaced row to *local* broker
obj_put_timestamp = ts.next() obj_put_timestamp = next(ts)
broker.put_object( broker.put_object(
'o', obj_put_timestamp, 0, 'content-type', 'o', obj_put_timestamp, 0, 'content-type',
'etag', storage_policy_index=remote_policy.idx) 'etag', storage_policy_index=remote_policy.idx)
@ -891,16 +891,16 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
policy = random.choice(list(POLICIES)) policy = random.choice(list(POLICIES))
broker = self._get_broker('a', 'c', node_index=0) broker = self._get_broker('a', 'c', node_index=0)
broker.initialize(ts.next(), policy.idx) broker.initialize(next(ts), policy.idx)
remote_policy = random.choice([p for p in POLICIES if p is not remote_policy = random.choice([p for p in POLICIES if p is not
policy]) policy])
remote_broker = self._get_broker('a', 'c', node_index=1) remote_broker = self._get_broker('a', 'c', node_index=1)
remote_broker.initialize(ts.next(), remote_policy.idx) remote_broker.initialize(next(ts), remote_policy.idx)
# add some rows to brokers # add some rows to brokers
for db in (broker, remote_broker): for db in (broker, remote_broker):
for p in (policy, remote_policy): for p in (policy, remote_policy):
db.put_object('o-%s' % p.name, ts.next(), 0, 'content-type', db.put_object('o-%s' % p.name, next(ts), 0, 'content-type',
'etag', storage_policy_index=p.idx) 'etag', storage_policy_index=p.idx)
db._commit_puts() db._commit_puts()
@ -980,8 +980,8 @@ class TestReplicatorSync(test_db_replicator.TestReplicatorSync):
ts = (Timestamp(t).internal for t in ts = (Timestamp(t).internal for t in
itertools.count(int(time.time()))) itertools.count(int(time.time())))
broker = self._get_broker('a', 'c', node_index=0) broker = self._get_broker('a', 'c', node_index=0)
broker.initialize(ts.next(), 0) broker.initialize(next(ts), 0)
broker.put_object('foo', ts.next(), 0, 'text/plain', 'xyz', deleted=0, broker.put_object('foo', next(ts), 0, 'text/plain', 'xyz', deleted=0,
storage_policy_index=0) storage_policy_index=0)
info = broker.get_replication_info() info = broker.get_replication_info()
self.assertEqual(1, info['max_row']) self.assertEqual(1, info['max_row'])

View File

@ -175,7 +175,7 @@ class TestContainerController(unittest.TestCase):
start = int(time.time()) start = int(time.time())
ts = (Timestamp(t).internal for t in itertools.count(start)) ts = (Timestamp(t).internal for t in itertools.count(start))
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'x-timestamp': ts.next()}) 'x-timestamp': next(ts)})
req.get_response(self.controller) req.get_response(self.controller)
req = Request.blank('/sda1/p/a/c', method='HEAD') req = Request.blank('/sda1/p/a/c', method='HEAD')
response = req.get_response(self.controller) response = req.get_response(self.controller)
@ -184,7 +184,7 @@ class TestContainerController(unittest.TestCase):
self.assertEqual(response.headers['x-container-object-count'], '0') self.assertEqual(response.headers['x-container-object-count'], '0')
obj_put_request = Request.blank( obj_put_request = Request.blank(
'/sda1/p/a/c/o', method='PUT', headers={ '/sda1/p/a/c/o', method='PUT', headers={
'x-timestamp': ts.next(), 'x-timestamp': next(ts),
'x-size': 42, 'x-size': 42,
'x-content-type': 'text/plain', 'x-content-type': 'text/plain',
'x-etag': 'x', 'x-etag': 'x',
@ -240,8 +240,8 @@ class TestContainerController(unittest.TestCase):
ts = (Timestamp(t).internal for t in ts = (Timestamp(t).internal for t in
itertools.count(int(time.time()))) itertools.count(int(time.time())))
request_method_times = { request_method_times = {
'PUT': ts.next(), 'PUT': next(ts),
'DELETE': ts.next(), 'DELETE': next(ts),
} }
# setup a deleted container # setup a deleted container
for method in ('PUT', 'DELETE'): for method in ('PUT', 'DELETE'):
@ -425,7 +425,7 @@ class TestContainerController(unittest.TestCase):
policy = random.choice(list(POLICIES)) policy = random.choice(list(POLICIES))
# Set metadata header # Set metadata header
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': policy.idx}) 'X-Backend-Storage-Policy-Index': policy.idx})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEquals(resp.status_int, 201) self.assertEquals(resp.status_int, 201)
@ -439,7 +439,7 @@ class TestContainerController(unittest.TestCase):
# now try to update w/o changing the policy # now try to update w/o changing the policy
for method in ('POST', 'PUT'): for method in ('POST', 'PUT'):
req = Request.blank('/sda1/p/a/c', method=method, headers={ req = Request.blank('/sda1/p/a/c', method=method, headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': policy.idx 'X-Backend-Storage-Policy-Index': policy.idx
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
@ -456,7 +456,7 @@ class TestContainerController(unittest.TestCase):
policy = random.choice(list(POLICIES)) policy = random.choice(list(POLICIES))
# Set metadata header # Set metadata header
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': policy.idx}) 'X-Backend-Storage-Policy-Index': policy.idx})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEquals(resp.status_int, 201) self.assertEquals(resp.status_int, 201)
@ -471,7 +471,7 @@ class TestContainerController(unittest.TestCase):
for other_policy in other_policies: for other_policy in other_policies:
# now try to change it and make sure we get a conflict # now try to change it and make sure we get a conflict
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': other_policy.idx 'X-Backend-Storage-Policy-Index': other_policy.idx
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
@ -492,7 +492,7 @@ class TestContainerController(unittest.TestCase):
ts = (Timestamp(t).internal for t in itertools.count(time.time())) ts = (Timestamp(t).internal for t in itertools.count(time.time()))
policy = random.choice(list(POLICIES)) policy = random.choice(list(POLICIES))
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': policy.idx}) 'X-Backend-Storage-Policy-Index': policy.idx})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEquals(resp.status_int, 201) self.assertEquals(resp.status_int, 201)
@ -507,7 +507,7 @@ class TestContainerController(unittest.TestCase):
for other_policy in other_policies: for other_policy in other_policies:
# now try to change it and make sure we get a conflict # now try to change it and make sure we get a conflict
req = Request.blank('/sda1/p/a/c', method='POST', headers={ req = Request.blank('/sda1/p/a/c', method='POST', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': other_policy.idx 'X-Backend-Storage-Policy-Index': other_policy.idx
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
@ -528,7 +528,7 @@ class TestContainerController(unittest.TestCase):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
# create a container with the default storage policy # create a container with the default storage policy
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity check self.assertEqual(resp.status_int, 201) # sanity check
@ -542,7 +542,7 @@ class TestContainerController(unittest.TestCase):
# put again without specifying the storage policy # put again without specifying the storage policy
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 202) # sanity check self.assertEqual(resp.status_int, 202) # sanity check
@ -563,7 +563,7 @@ class TestContainerController(unittest.TestCase):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
# create a container with the default storage policy # create a container with the default storage policy
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Default': int(proxy_default), 'X-Backend-Storage-Policy-Default': int(proxy_default),
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
@ -578,7 +578,7 @@ class TestContainerController(unittest.TestCase):
# put again without proxy specifying the different default # put again without proxy specifying the different default
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Default': int(POLICIES.default), 'X-Backend-Storage-Policy-Default': int(POLICIES.default),
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
@ -596,7 +596,7 @@ class TestContainerController(unittest.TestCase):
non_default_policy = [p for p in POLICIES if not p.is_default][0] non_default_policy = [p for p in POLICIES if not p.is_default][0]
# create a container with the non-default storage policy # create a container with the non-default storage policy
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': non_default_policy.idx, 'X-Backend-Storage-Policy-Index': non_default_policy.idx,
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
@ -611,7 +611,7 @@ class TestContainerController(unittest.TestCase):
# put again without specifying the storage policy # put again without specifying the storage policy
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 202) # sanity check self.assertEqual(resp.status_int, 202) # sanity check
@ -1279,7 +1279,7 @@ class TestContainerController(unittest.TestCase):
policy = random.choice(list(POLICIES)) policy = random.choice(list(POLICIES))
req = Request.blank( req = Request.blank(
'/sda1/p/a/c', method='PUT', '/sda1/p/a/c', method='PUT',
headers={'X-Timestamp': ts.next(), headers={'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': policy.idx}) 'X-Backend-Storage-Policy-Index': policy.idx})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity check self.assertEqual(resp.status_int, 201) # sanity check
@ -1289,14 +1289,14 @@ class TestContainerController(unittest.TestCase):
for other_policy in other_policies: for other_policy in other_policies:
# first delete the existing container # first delete the existing container
req = Request.blank('/sda1/p/a/c', method='DELETE', headers={ req = Request.blank('/sda1/p/a/c', method='DELETE', headers={
'X-Timestamp': ts.next()}) 'X-Timestamp': next(ts)})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 204) # sanity check self.assertEqual(resp.status_int, 204) # sanity check
# at this point, the DB should still exist but be in a deleted # at this point, the DB should still exist but be in a deleted
# state, so changing the policy index is perfectly acceptable # state, so changing the policy index is perfectly acceptable
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': other_policy.idx}) 'X-Backend-Storage-Policy-Index': other_policy.idx})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity check self.assertEqual(resp.status_int, 201) # sanity check
@ -1313,7 +1313,7 @@ class TestContainerController(unittest.TestCase):
non_default_policy = random.choice([p for p in POLICIES non_default_policy = random.choice([p for p in POLICIES
if not p.is_default]) if not p.is_default])
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'X-Backend-Storage-Policy-Index': non_default_policy.idx, 'X-Backend-Storage-Policy-Index': non_default_policy.idx,
}) })
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
@ -1321,7 +1321,7 @@ class TestContainerController(unittest.TestCase):
req = Request.blank( req = Request.blank(
'/sda1/p/a/c', method='DELETE', '/sda1/p/a/c', method='DELETE',
headers={'X-Timestamp': ts.next()}) headers={'X-Timestamp': next(ts)})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 204) # sanity check self.assertEqual(resp.status_int, 204) # sanity check
@ -1329,7 +1329,7 @@ class TestContainerController(unittest.TestCase):
# so changing the policy index is perfectly acceptable # so changing the policy index is perfectly acceptable
req = Request.blank( req = Request.blank(
'/sda1/p/a/c', method='PUT', '/sda1/p/a/c', method='PUT',
headers={'X-Timestamp': ts.next()}) headers={'X-Timestamp': next(ts)})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) # sanity check self.assertEqual(resp.status_int, 201) # sanity check
@ -1354,20 +1354,20 @@ class TestContainerController(unittest.TestCase):
ts = (Timestamp(t).internal for t in ts = (Timestamp(t).internal for t in
itertools.count(3)) itertools.count(3))
req = Request.blank('/sda1/p/a/c', method='DELETE', headers={ req = Request.blank('/sda1/p/a/c', method='DELETE', headers={
'X-Timestamp': ts.next()}) 'X-Timestamp': next(ts)})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEquals(resp.status_int, 409) self.assertEquals(resp.status_int, 409)
req = Request.blank('/sda1/p/a/c/o', method='DELETE', headers={ req = Request.blank('/sda1/p/a/c/o', method='DELETE', headers={
'X-Timestamp': ts.next()}) 'X-Timestamp': next(ts)})
self._update_object_put_headers(req) self._update_object_put_headers(req)
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEquals(resp.status_int, 204) self.assertEquals(resp.status_int, 204)
req = Request.blank('/sda1/p/a/c', method='DELETE', headers={ req = Request.blank('/sda1/p/a/c', method='DELETE', headers={
'X-Timestamp': ts.next()}) 'X-Timestamp': next(ts)})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEquals(resp.status_int, 204) self.assertEquals(resp.status_int, 204)
req = Request.blank('/sda1/p/a/c', method='GET', headers={ req = Request.blank('/sda1/p/a/c', method='GET', headers={
'X-Timestamp': ts.next()}) 'X-Timestamp': next(ts)})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEquals(resp.status_int, 404) self.assertEquals(resp.status_int, 404)
@ -1376,7 +1376,7 @@ class TestContainerController(unittest.TestCase):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
# create container # create container
req = Request.blank('/sda1/p/a/c', method='PUT', headers={ req = Request.blank('/sda1/p/a/c', method='PUT', headers={
'X-Timestamp': ts.next()}) 'X-Timestamp': next(ts)})
resp = req.get_response(self.controller) resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 201) self.assertEqual(resp.status_int, 201)
# check status # check status
@ -1386,7 +1386,7 @@ class TestContainerController(unittest.TestCase):
self.assertEqual(int(resp.headers['X-Backend-Storage-Policy-Index']), self.assertEqual(int(resp.headers['X-Backend-Storage-Policy-Index']),
int(POLICIES.default)) int(POLICIES.default))
# create object # create object
obj_timestamp = ts.next() obj_timestamp = next(ts)
req = Request.blank( req = Request.blank(
'/sda1/p/a/c/o', method='PUT', headers={ '/sda1/p/a/c/o', method='PUT', headers={
'X-Timestamp': obj_timestamp, 'X-Size': 1, 'X-Timestamp': obj_timestamp, 'X-Size': 1,
@ -1432,7 +1432,7 @@ class TestContainerController(unittest.TestCase):
self.assertEqual(obj['hash'], 'y') self.assertEqual(obj['hash'], 'y')
self.assertEqual(obj['content_type'], 'text/html') self.assertEqual(obj['content_type'], 'text/html')
# now overwrite with a newer time # now overwrite with a newer time
delete_timestamp = ts.next() delete_timestamp = next(ts)
req = Request.blank( req = Request.blank(
'/sda1/p/a/c/o', method='DELETE', headers={ '/sda1/p/a/c/o', method='DELETE', headers={
'X-Timestamp': delete_timestamp}) 'X-Timestamp': delete_timestamp})

View File

@ -81,10 +81,10 @@ class MockProcess(object):
class Stream(object): class Stream(object):
def read(self): def read(self):
return MockProcess.ret_log.next() return next(MockProcess.ret_log)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
targs = MockProcess.check_args.next() targs = next(MockProcess.check_args)
for targ in targs: for targ in targs:
# Allow more than 2 candidate targs # Allow more than 2 candidate targs
# (e.g. a case that either node is fine when nodes shuffled) # (e.g. a case that either node is fine when nodes shuffled)
@ -103,7 +103,7 @@ class MockProcess(object):
self.stdout = self.Stream() self.stdout = self.Stream()
def wait(self): def wait(self):
return self.ret_code.next() return next(self.ret_code)
@contextmanager @contextmanager

View File

@ -2342,7 +2342,7 @@ class TestObjectController(unittest.TestCase):
def capture_updates(ip, port, method, path, headers, *args, **kwargs): def capture_updates(ip, port, method, path, headers, *args, **kwargs):
container_updates.append((ip, port, method, path, headers)) container_updates.append((ip, port, method, path, headers))
# create a new object # create a new object
create_timestamp = ts.next() create_timestamp = next(ts)
req = Request.blank('/sda1/p/a/c/o', method='PUT', body='test1', req = Request.blank('/sda1/p/a/c/o', method='PUT', body='test1',
headers={'X-Timestamp': create_timestamp, headers={'X-Timestamp': create_timestamp,
'X-Container-Host': '10.0.0.1:8080', 'X-Container-Host': '10.0.0.1:8080',
@ -2419,7 +2419,7 @@ class TestObjectController(unittest.TestCase):
offset_timestamp) offset_timestamp)
self.assertEqual(resp.body, 'test2') self.assertEqual(resp.body, 'test2')
# now overwrite with a newer time # now overwrite with a newer time
overwrite_timestamp = ts.next() overwrite_timestamp = next(ts)
req = Request.blank('/sda1/p/a/c/o', method='PUT', body='test3', req = Request.blank('/sda1/p/a/c/o', method='PUT', body='test3',
headers={'X-Timestamp': overwrite_timestamp, headers={'X-Timestamp': overwrite_timestamp,
'X-Container-Host': '10.0.0.1:8080', 'X-Container-Host': '10.0.0.1:8080',
@ -2489,7 +2489,7 @@ class TestObjectController(unittest.TestCase):
self.assertEqual(resp.headers['X-Timestamp'], None) self.assertEqual(resp.headers['X-Timestamp'], None)
self.assertEqual(resp.headers['X-Backend-Timestamp'], offset_delete) self.assertEqual(resp.headers['X-Backend-Timestamp'], offset_delete)
# and one more delete with a newer timestamp # and one more delete with a newer timestamp
delete_timestamp = ts.next() delete_timestamp = next(ts)
req = Request.blank('/sda1/p/a/c/o', method='DELETE', req = Request.blank('/sda1/p/a/c/o', method='DELETE',
headers={'X-Timestamp': delete_timestamp, headers={'X-Timestamp': delete_timestamp,
'X-Container-Host': '10.0.0.1:8080', 'X-Container-Host': '10.0.0.1:8080',
@ -3131,9 +3131,9 @@ class TestObjectController(unittest.TestCase):
def capture_updates(ip, port, method, path, headers, *args, **kwargs): def capture_updates(ip, port, method, path, headers, *args, **kwargs):
container_updates.append((ip, port, method, path, headers)) container_updates.append((ip, port, method, path, headers))
put_timestamp = ts.next().internal put_timestamp = next(ts).internal
delete_at_timestamp = utils.normalize_delete_at_timestamp( delete_at_timestamp = utils.normalize_delete_at_timestamp(
ts.next().normal) next(ts).normal)
delete_at_container = ( delete_at_container = (
int(delete_at_timestamp) / int(delete_at_timestamp) /
self.object_controller.expiring_objects_container_divisor * self.object_controller.expiring_objects_container_divisor *
@ -4831,7 +4831,7 @@ class TestObjectController(unittest.TestCase):
self.assertFalse(os.path.isdir(object_dir)) self.assertFalse(os.path.isdir(object_dir))
for method in methods: for method in methods:
headers = { headers = {
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'Content-Type': 'application/x-test', 'Content-Type': 'application/x-test',
'X-Backend-Storage-Policy-Index': index} 'X-Backend-Storage-Policy-Index': index}
if POLICIES[index].policy_type == EC_POLICY: if POLICIES[index].policy_type == EC_POLICY:
@ -4851,7 +4851,7 @@ class TestObjectController(unittest.TestCase):
req = Request.blank('/sda1/p/a/c/o', req = Request.blank('/sda1/p/a/c/o',
environ={'REQUEST_METHOD': method}, environ={'REQUEST_METHOD': method},
headers={ headers={
'X-Timestamp': ts.next(), 'X-Timestamp': next(ts),
'Content-Type': 'application/x-test', 'Content-Type': 'application/x-test',
'X-Backend-Storage-Policy-Index': index}) 'X-Backend-Storage-Policy-Index': index})
req.body = 'VERIFY' req.body = 'VERIFY'

View File

@ -1440,7 +1440,7 @@ class TestBaseSsync(BaseTestSender):
(('tx', ':UPDATES: END'), unexpected), (('tx', ':UPDATES: END'), unexpected),
(('rx', ':UPDATES: START'), rx_updates), (('rx', ':UPDATES: START'), rx_updates),
(('rx', ':UPDATES: END'), unexpected)]) (('rx', ':UPDATES: END'), unexpected)])
expect_handshake = handshakes.next() expect_handshake = next(handshakes)
phases = ('tx_missing', 'rx_missing', 'tx_updates', 'rx_updates') phases = ('tx_missing', 'rx_missing', 'tx_updates', 'rx_updates')
results = dict((k, []) for k in phases) results = dict((k, []) for k in phases)
handler = unexpected handler = unexpected
@ -1451,7 +1451,7 @@ class TestBaseSsync(BaseTestSender):
if line == expect_handshake[0]: if line == expect_handshake[0]:
handler = expect_handshake[1] handler = expect_handshake[1]
try: try:
expect_handshake = handshakes.next() expect_handshake = next(handshakes)
except StopIteration: except StopIteration:
# should be the last line # should be the last line
self.assertFalse( self.assertFalse(
@ -1461,7 +1461,7 @@ class TestBaseSsync(BaseTestSender):
try: try:
# check all handshakes occurred # check all handshakes occurred
missed = handshakes.next() missed = next(handshakes)
self.fail('Handshake %s not found' % str(missed[0])) self.fail('Handshake %s not found' % str(missed[0]))
except StopIteration: except StopIteration:
pass pass
@ -1536,25 +1536,25 @@ class TestSsyncEC(TestBaseSsync):
tx_df_mgr = self.daemon._diskfile_router[policy] tx_df_mgr = self.daemon._diskfile_router[policy]
rx_df_mgr = self.rx_controller._diskfile_router[policy] rx_df_mgr = self.rx_controller._diskfile_router[policy]
# o1 has primary and handoff fragment archives # o1 has primary and handoff fragment archives
t1 = self.ts_iter.next() t1 = next(self.ts_iter)
tx_objs['o1'] = self._create_ondisk_files( tx_objs['o1'] = self._create_ondisk_files(
tx_df_mgr, 'o1', policy, t1, (rx_node_index, tx_node_index)) tx_df_mgr, 'o1', policy, t1, (rx_node_index, tx_node_index))
# o2 only has primary # o2 only has primary
t2 = self.ts_iter.next() t2 = next(self.ts_iter)
tx_objs['o2'] = self._create_ondisk_files( tx_objs['o2'] = self._create_ondisk_files(
tx_df_mgr, 'o2', policy, t2, (tx_node_index,)) tx_df_mgr, 'o2', policy, t2, (tx_node_index,))
# o3 only has handoff # o3 only has handoff
t3 = self.ts_iter.next() t3 = next(self.ts_iter)
tx_objs['o3'] = self._create_ondisk_files( tx_objs['o3'] = self._create_ondisk_files(
tx_df_mgr, 'o3', policy, t3, (rx_node_index,)) tx_df_mgr, 'o3', policy, t3, (rx_node_index,))
# o4 primary and handoff fragment archives on tx, handoff in sync on rx # o4 primary and handoff fragment archives on tx, handoff in sync on rx
t4 = self.ts_iter.next() t4 = next(self.ts_iter)
tx_objs['o4'] = self._create_ondisk_files( tx_objs['o4'] = self._create_ondisk_files(
tx_df_mgr, 'o4', policy, t4, (tx_node_index, rx_node_index,)) tx_df_mgr, 'o4', policy, t4, (tx_node_index, rx_node_index,))
rx_objs['o4'] = self._create_ondisk_files( rx_objs['o4'] = self._create_ondisk_files(
rx_df_mgr, 'o4', policy, t4, (rx_node_index,)) rx_df_mgr, 'o4', policy, t4, (rx_node_index,))
# o5 is a tombstone, missing on receiver # o5 is a tombstone, missing on receiver
t5 = self.ts_iter.next() t5 = next(self.ts_iter)
tx_tombstones['o5'] = self._create_ondisk_files( tx_tombstones['o5'] = self._create_ondisk_files(
tx_df_mgr, 'o5', policy, t5, (tx_node_index,)) tx_df_mgr, 'o5', policy, t5, (tx_node_index,))
tx_tombstones['o5'][0].delete(t5) tx_tombstones['o5'][0].delete(t5)
@ -1621,25 +1621,25 @@ class TestSsyncEC(TestBaseSsync):
tx_df_mgr = self.daemon._diskfile_router[policy] tx_df_mgr = self.daemon._diskfile_router[policy]
rx_df_mgr = self.rx_controller._diskfile_router[policy] rx_df_mgr = self.rx_controller._diskfile_router[policy]
# o1 only has primary # o1 only has primary
t1 = self.ts_iter.next() t1 = next(self.ts_iter)
tx_objs['o1'] = self._create_ondisk_files( tx_objs['o1'] = self._create_ondisk_files(
tx_df_mgr, 'o1', policy, t1, (tx_node_index,)) tx_df_mgr, 'o1', policy, t1, (tx_node_index,))
# o2 only has primary # o2 only has primary
t2 = self.ts_iter.next() t2 = next(self.ts_iter)
tx_objs['o2'] = self._create_ondisk_files( tx_objs['o2'] = self._create_ondisk_files(
tx_df_mgr, 'o2', policy, t2, (tx_node_index,)) tx_df_mgr, 'o2', policy, t2, (tx_node_index,))
# o3 only has primary # o3 only has primary
t3 = self.ts_iter.next() t3 = next(self.ts_iter)
tx_objs['o3'] = self._create_ondisk_files( tx_objs['o3'] = self._create_ondisk_files(
tx_df_mgr, 'o3', policy, t3, (tx_node_index,)) tx_df_mgr, 'o3', policy, t3, (tx_node_index,))
# o4 primary fragment archives on tx, handoff in sync on rx # o4 primary fragment archives on tx, handoff in sync on rx
t4 = self.ts_iter.next() t4 = next(self.ts_iter)
tx_objs['o4'] = self._create_ondisk_files( tx_objs['o4'] = self._create_ondisk_files(
tx_df_mgr, 'o4', policy, t4, (tx_node_index,)) tx_df_mgr, 'o4', policy, t4, (tx_node_index,))
rx_objs['o4'] = self._create_ondisk_files( rx_objs['o4'] = self._create_ondisk_files(
rx_df_mgr, 'o4', policy, t4, (rx_node_index,)) rx_df_mgr, 'o4', policy, t4, (rx_node_index,))
# o5 is a tombstone, missing on receiver # o5 is a tombstone, missing on receiver
t5 = self.ts_iter.next() t5 = next(self.ts_iter)
tx_tombstones['o5'] = self._create_ondisk_files( tx_tombstones['o5'] = self._create_ondisk_files(
tx_df_mgr, 'o5', policy, t5, (tx_node_index,)) tx_df_mgr, 'o5', policy, t5, (tx_node_index,))
tx_tombstones['o5'][0].delete(t5) tx_tombstones['o5'][0].delete(t5)
@ -1729,26 +1729,26 @@ class TestSsyncReplication(TestBaseSsync):
tx_df_mgr = self.daemon._diskfile_router[policy] tx_df_mgr = self.daemon._diskfile_router[policy]
rx_df_mgr = self.rx_controller._diskfile_router[policy] rx_df_mgr = self.rx_controller._diskfile_router[policy]
# o1 and o2 are on tx only # o1 and o2 are on tx only
t1 = self.ts_iter.next() t1 = next(self.ts_iter)
tx_objs['o1'] = self._create_ondisk_files(tx_df_mgr, 'o1', policy, t1) tx_objs['o1'] = self._create_ondisk_files(tx_df_mgr, 'o1', policy, t1)
t2 = self.ts_iter.next() t2 = next(self.ts_iter)
tx_objs['o2'] = self._create_ondisk_files(tx_df_mgr, 'o2', policy, t2) tx_objs['o2'] = self._create_ondisk_files(tx_df_mgr, 'o2', policy, t2)
# o3 is on tx and older copy on rx # o3 is on tx and older copy on rx
t3a = self.ts_iter.next() t3a = next(self.ts_iter)
rx_objs['o3'] = self._create_ondisk_files(tx_df_mgr, 'o3', policy, t3a) rx_objs['o3'] = self._create_ondisk_files(tx_df_mgr, 'o3', policy, t3a)
t3b = self.ts_iter.next() t3b = next(self.ts_iter)
tx_objs['o3'] = self._create_ondisk_files(tx_df_mgr, 'o3', policy, t3b) tx_objs['o3'] = self._create_ondisk_files(tx_df_mgr, 'o3', policy, t3b)
# o4 in sync on rx and tx # o4 in sync on rx and tx
t4 = self.ts_iter.next() t4 = next(self.ts_iter)
tx_objs['o4'] = self._create_ondisk_files(tx_df_mgr, 'o4', policy, t4) tx_objs['o4'] = self._create_ondisk_files(tx_df_mgr, 'o4', policy, t4)
rx_objs['o4'] = self._create_ondisk_files(rx_df_mgr, 'o4', policy, t4) rx_objs['o4'] = self._create_ondisk_files(rx_df_mgr, 'o4', policy, t4)
# o5 is a tombstone, missing on receiver # o5 is a tombstone, missing on receiver
t5 = self.ts_iter.next() t5 = next(self.ts_iter)
tx_tombstones['o5'] = self._create_ondisk_files( tx_tombstones['o5'] = self._create_ondisk_files(
tx_df_mgr, 'o5', policy, t5) tx_df_mgr, 'o5', policy, t5)
tx_tombstones['o5'][0].delete(t5) tx_tombstones['o5'][0].delete(t5)
# o6 is a tombstone, in sync on tx and rx # o6 is a tombstone, in sync on tx and rx
t6 = self.ts_iter.next() t6 = next(self.ts_iter)
tx_tombstones['o6'] = self._create_ondisk_files( tx_tombstones['o6'] = self._create_ondisk_files(
tx_df_mgr, 'o6', policy, t6) tx_df_mgr, 'o6', policy, t6)
tx_tombstones['o6'][0].delete(t6) tx_tombstones['o6'][0].delete(t6)
@ -1756,9 +1756,9 @@ class TestSsyncReplication(TestBaseSsync):
rx_df_mgr, 'o6', policy, t6) rx_df_mgr, 'o6', policy, t6)
rx_tombstones['o6'][0].delete(t6) rx_tombstones['o6'][0].delete(t6)
# o7 is a tombstone on tx, older data on rx # o7 is a tombstone on tx, older data on rx
t7a = self.ts_iter.next() t7a = next(self.ts_iter)
rx_objs['o7'] = self._create_ondisk_files(rx_df_mgr, 'o7', policy, t7a) rx_objs['o7'] = self._create_ondisk_files(rx_df_mgr, 'o7', policy, t7a)
t7b = self.ts_iter.next() t7b = next(self.ts_iter)
tx_tombstones['o7'] = self._create_ondisk_files( tx_tombstones['o7'] = self._create_ondisk_files(
tx_df_mgr, 'o7', policy, t7b) tx_df_mgr, 'o7', policy, t7b)
tx_tombstones['o7'][0].delete(t7b) tx_tombstones['o7'][0].delete(t7b)

View File

@ -336,7 +336,7 @@ class TestObjectUpdater(unittest.TestCase):
with Timeout(3): with Timeout(3):
sock, addr = bindsock.accept() sock, addr = bindsock.accept()
events.append( events.append(
spawn(accepter, sock, codes.next())) spawn(accepter, sock, next(codes)))
for event in events: for event in events:
err = event.wait() err = event.wait()
if err: if err:
@ -407,12 +407,12 @@ class TestObjectUpdater(unittest.TestCase):
'x-size': 0, 'x-size': 0,
'x-content-type': 'text/plain', 'x-content-type': 'text/plain',
'x-etag': 'd41d8cd98f00b204e9800998ecf8427e', 'x-etag': 'd41d8cd98f00b204e9800998ecf8427e',
'x-timestamp': ts.next(), 'x-timestamp': next(ts),
}) })
data = {'op': op, 'account': account, 'container': container, data = {'op': op, 'account': account, 'container': container,
'obj': obj, 'headers': headers_out} 'obj': obj, 'headers': headers_out}
dfmanager.pickle_async_update(self.sda1, account, container, obj, dfmanager.pickle_async_update(self.sda1, account, container, obj,
data, ts.next(), policy) data, next(ts), policy)
request_log = [] request_log = []
@ -455,13 +455,13 @@ class TestObjectUpdater(unittest.TestCase):
'x-size': 0, 'x-size': 0,
'x-content-type': 'text/plain', 'x-content-type': 'text/plain',
'x-etag': 'd41d8cd98f00b204e9800998ecf8427e', 'x-etag': 'd41d8cd98f00b204e9800998ecf8427e',
'x-timestamp': ts.next(), 'x-timestamp': next(ts),
'X-Backend-Storage-Policy-Index': int(policy), 'X-Backend-Storage-Policy-Index': int(policy),
}) })
data = {'op': op, 'account': account, 'container': container, data = {'op': op, 'account': account, 'container': container,
'obj': obj, 'headers': headers_out} 'obj': obj, 'headers': headers_out}
dfmanager.pickle_async_update(self.sda1, account, container, obj, dfmanager.pickle_async_update(self.sda1, account, container, obj,
data, ts.next(), policy) data, next(ts), policy)
request_log = [] request_log = []

View File

@ -95,7 +95,7 @@ class DynamicResponseFactory(object):
def _get_response(self, type_): def _get_response(self, type_):
self.stats[type_] += 1 self.stats[type_] += 1
class_ = self.response_type[type_] class_ = self.response_type[type_]
return class_(self.statuses.next()) return class_(next(self.statuses))
def get_response(self, environ): def get_response(self, environ):
(version, account, container, obj) = split_path( (version, account, container, obj) = split_path(

View File

@ -127,7 +127,7 @@ class BaseObjectControllerMixin(object):
itertools.count(int(time.time()))) itertools.count(int(time.time())))
def ts(self): def ts(self):
return self._ts_iter.next() return next(self._ts_iter)
def replicas(self, policy=None): def replicas(self, policy=None):
policy = policy or POLICIES.default policy = policy or POLICIES.default
@ -464,9 +464,9 @@ class BaseObjectControllerMixin(object):
for policy_index in test_indexes: for policy_index in test_indexes:
req = swob.Request.blank( req = swob.Request.blank(
'/v1/a/c/o', method='DELETE', headers={ '/v1/a/c/o', method='DELETE', headers={
'X-Timestamp': ts.next().internal}) 'X-Timestamp': next(ts).internal})
codes = [409] * self.obj_ring.replicas codes = [409] * self.obj_ring.replicas
ts_iter = itertools.repeat(ts.next().internal) ts_iter = itertools.repeat(next(ts).internal)
with set_http_connect(*codes, timestamps=ts_iter): with set_http_connect(*codes, timestamps=ts_iter):
resp = req.get_response(self.app) resp = req.get_response(self.app)
self.assertEqual(resp.status_int, 409) self.assertEqual(resp.status_int, 409)
@ -736,8 +736,8 @@ class TestReplicatedObjController(BaseObjectControllerMixin,
req = swob.Request.blank( req = swob.Request.blank(
'/v1/a/c/o', method='PUT', headers={ '/v1/a/c/o', method='PUT', headers={
'Content-Length': 0, 'Content-Length': 0,
'X-Timestamp': ts.next().internal}) 'X-Timestamp': next(ts).internal})
ts_iter = itertools.repeat(ts.next().internal) ts_iter = itertools.repeat(next(ts).internal)
codes = [409] * self.obj_ring.replicas codes = [409] * self.obj_ring.replicas
with set_http_connect(*codes, timestamps=ts_iter): with set_http_connect(*codes, timestamps=ts_iter):
resp = req.get_response(self.app) resp = req.get_response(self.app)
@ -747,11 +747,11 @@ class TestReplicatedObjController(BaseObjectControllerMixin,
ts = (utils.Timestamp(t) for t in itertools.count(int(time.time()))) ts = (utils.Timestamp(t) for t in itertools.count(int(time.time())))
test_indexes = [None] + [int(p) for p in POLICIES] test_indexes = [None] + [int(p) for p in POLICIES]
for policy_index in test_indexes: for policy_index in test_indexes:
orig_timestamp = ts.next().internal orig_timestamp = next(ts).internal
req = swob.Request.blank( req = swob.Request.blank(
'/v1/a/c/o', method='PUT', headers={ '/v1/a/c/o', method='PUT', headers={
'Content-Length': 0, 'Content-Length': 0,
'X-Timestamp': ts.next().internal}) 'X-Timestamp': next(ts).internal})
ts_iter = itertools.repeat(orig_timestamp) ts_iter = itertools.repeat(orig_timestamp)
codes = [201] * self.obj_ring.replicas codes = [201] * self.obj_ring.replicas
with set_http_connect(*codes, timestamps=ts_iter): with set_http_connect(*codes, timestamps=ts_iter):
@ -763,8 +763,8 @@ class TestReplicatedObjController(BaseObjectControllerMixin,
req = swob.Request.blank( req = swob.Request.blank(
'/v1/a/c/o', method='PUT', headers={ '/v1/a/c/o', method='PUT', headers={
'Content-Length': 0, 'Content-Length': 0,
'X-Timestamp': ts.next().internal}) 'X-Timestamp': next(ts).internal})
ts_iter = iter([ts.next().internal, None, None]) ts_iter = iter([next(ts).internal, None, None])
codes = [409] + [201] * (self.obj_ring.replicas - 1) codes = [409] + [201] * (self.obj_ring.replicas - 1)
with set_http_connect(*codes, timestamps=ts_iter): with set_http_connect(*codes, timestamps=ts_iter):
resp = req.get_response(self.app) resp = req.get_response(self.app)
@ -774,7 +774,7 @@ class TestReplicatedObjController(BaseObjectControllerMixin,
ts = (utils.Timestamp(t) for t in itertools.count(int(time.time()))) ts = (utils.Timestamp(t) for t in itertools.count(int(time.time())))
test_indexes = [None] + [int(p) for p in POLICIES] test_indexes = [None] + [int(p) for p in POLICIES]
for policy_index in test_indexes: for policy_index in test_indexes:
put_timestamp = ts.next().internal put_timestamp = next(ts).internal
req = swob.Request.blank( req = swob.Request.blank(
'/v1/a/c/o', method='PUT', headers={ '/v1/a/c/o', method='PUT', headers={
'Content-Length': 0, 'Content-Length': 0,
@ -794,7 +794,7 @@ class TestReplicatedObjController(BaseObjectControllerMixin,
ts = (utils.Timestamp(t) for t in itertools.count(int(time.time()))) ts = (utils.Timestamp(t) for t in itertools.count(int(time.time())))
test_indexes = [None] + [int(p) for p in POLICIES] test_indexes = [None] + [int(p) for p in POLICIES]
for policy_index in test_indexes: for policy_index in test_indexes:
put_timestamp = ts.next().internal put_timestamp = next(ts).internal
req = swob.Request.blank( req = swob.Request.blank(
'/v1/a/c/o', method='PUT', headers={ '/v1/a/c/o', method='PUT', headers={
'Content-Length': 0, 'Content-Length': 0,

View File

@ -2879,7 +2879,7 @@ class TestObjectController(unittest.TestCase):
set_http_connect(201, 201, 201, 201, 201, set_http_connect(201, 201, 201, 201, 201,
give_content_type=lambda content_type: give_content_type=lambda content_type:
self.assertEquals(content_type, self.assertEquals(content_type,
expected.next())) next(expected)))
# We need into include a transfer-encoding to get past # We need into include a transfer-encoding to get past
# constraints.check_object_creation() # constraints.check_object_creation()
req = Request.blank('/v1/a/c/%s' % filename, {}, req = Request.blank('/v1/a/c/%s' % filename, {},
@ -4283,7 +4283,7 @@ class TestObjectController(unittest.TestCase):
unused_status_list = [] unused_status_list = []
while True: while True:
try: try:
unused_status_list.append(new_connect.code_iter.next()) unused_status_list.append(next(new_connect.code_iter))
except StopIteration: except StopIteration:
break break
if unused_status_list: if unused_status_list:

View File

@ -39,7 +39,7 @@ class FakeServerConnection(WSGIContext):
def read(self, amt=None): def read(self, amt=None):
try: try:
result = self.resp_iter.next() result = next(self.resp_iter)
return result return result
except StopIteration: except StopIteration:
return '' return ''