This limitation of python-3.4 mkstemp() is the final reason we made
python-3.5 our minimum version. Since we know about it, give a nice
error to the user with a hint that Python3.4 could be the issue.
Fixes#18160
@ -1960,13 +1960,21 @@ class AnsibleModule(object):
except(OSError,IOError):
e=get_exception()
self.fail_json(msg='The destination directory (%s) is not writable by the current user. Error was: %s'%(os.path.dirname(dest),e))
exceptTypeError:
# We expect that this is happening because python3.4.x and
# below can't handle byte strings in mkstemp(). Traceback
# would end in something like:
# file = _os.path.join(dir, pre + name + suf)
# TypeError: can't concat bytes to str
self.fail_json(msg='Failed creating temp file for atomic move. This usually happens when using Python3 less than Python3.5. Please use Python2.x or Python3.5 or greater.',exception=sys.exc_info())