mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-25 16:06:43 +00:00
Fix a traceback with python3 and diff output
When retrieving file contents for diffing we need to get the contents as binary. Otherwise python3 will try to convert the file to text and fail with non-decodable contents. Fixes #23171
This commit is contained in:
@@ -952,12 +952,12 @@ class ActionBase(with_metaclass(ABCMeta, object)):
|
||||
else:
|
||||
display.debug("Reading local copy of the file %s" % source)
|
||||
try:
|
||||
src = open(source)
|
||||
src_contents = src.read()
|
||||
with open(source, 'rb') as src:
|
||||
src_contents = src.read()
|
||||
except Exception as e:
|
||||
raise AnsibleError("Unexpected error while reading source (%s) for diff: %s " % (source, str(e)))
|
||||
|
||||
if "\x00" in src_contents:
|
||||
if b"\x00" in src_contents:
|
||||
diff['src_binary'] = 1
|
||||
else:
|
||||
diff['after_header'] = source
|
||||
|
||||
Reference in New Issue
Block a user