Fail gracefully when MD5 is unavailable

The glanceclient currently assumes that MD5 will always be available.
This is not the case, however, in a FIPS-compliant environment.  This
patch enables the glanceclient to fail gracefully in such a case.

Closes-bug: #1871675
Change-Id: Ibd89989e06cc5be7da71f5f21561d73b5abc4104
This commit is contained in:
Brian Rosmaita
2020-04-07 00:13:49 -04:00
parent cf5434a1b8
commit 56186d6d5a
6 changed files with 45 additions and 3 deletions
+8 -1
View File
@@ -436,7 +436,14 @@ def integrity_iter(iter, checksum):
:raises: IOError
"""
md5sum = hashlib.md5()
try:
md5sum = hashlib.new('md5')
except ValueError:
raise IOError(errno.EPIPE,
'Corrupt image download. Expected checksum is %s '
'but md5 algorithm is not available on the client' %
checksum)
for chunk in iter:
yield chunk
if isinstance(chunk, six.string_types):