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
(cherry picked from commit 2fdb8e7f90
)
This commit is contained in:
parent
b8d6f23fb7
commit
53b19611e1
1 changed files with 3 additions and 3 deletions
|
@ -950,12 +950,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
|
||||
|
|
Loading…
Reference in a new issue