Fixes minor issues in the read() retries patch
Follow-up to commitc5b97eb781
. Two things slipped through the cracks: * ImageDownloadError was instantiated incorrectly, resulting in a wrong error message. This was uncovered by using assertRaisesRegext in tests. * We allowed calling write(None). This was uncovered by avoiding sleep(4) in tests and enabling more failed calls before timeout. Change-Id: If5e798c5461ea3e474a153574b0db2da96f2dfa8 (cherry picked from commit00ad03b709
)
This commit is contained in:
parent
3d7592c063
commit
aa500ec923
|
@ -366,13 +366,14 @@ class ImageDownload(object):
|
|||
if chunk:
|
||||
self._last_chunk_time = time.time()
|
||||
self._hash_algo.update(chunk)
|
||||
yield chunk
|
||||
elif (time.time() - self._last_chunk_time
|
||||
> CONF.image_download_connection_timeout):
|
||||
LOG.error('Timeout reached waiting for a chunk of data from '
|
||||
'a remote server.')
|
||||
raise errors.ImageDownloadError(
|
||||
self._image_info['id'],
|
||||
'Timed out reading next chunk from webserver')
|
||||
yield chunk
|
||||
|
||||
def verify_image(self, image_location):
|
||||
"""Verifies the checksum of the local images matches expectations.
|
||||
|
|
|
@ -1188,8 +1188,8 @@ class TestStandbyExtension(base.IronicAgentTest):
|
|||
return self
|
||||
|
||||
def __next__(self):
|
||||
if self.count == 1:
|
||||
time.sleep(4)
|
||||
if self.count:
|
||||
time.sleep(0.1)
|
||||
return None
|
||||
if self.count < 3:
|
||||
self.count += 1
|
||||
|
@ -1211,8 +1211,9 @@ class TestStandbyExtension(base.IronicAgentTest):
|
|||
hexdigest_mock = md5_mock.return_value.hexdigest
|
||||
hexdigest_mock.return_value = image_info['checksum']
|
||||
requests_mock.side_effect = create_timeout
|
||||
self.assertRaises(
|
||||
self.assertRaisesRegex(
|
||||
errors.ImageDownloadError,
|
||||
'Timed out reading next chunk',
|
||||
self.agent_extension._stream_raw_image_onto_device,
|
||||
image_info,
|
||||
'/dev/foo')
|
||||
|
|
Loading…
Reference in New Issue