Merge pull request #1818 from sivel/issue/13660
Catch errors related to insufficient (old) versions of pexpect.
This commit is contained in:
commit
33a557cc59
1 changed files with 17 additions and 2 deletions
|
@ -188,8 +188,23 @@ def main():
|
||||||
startd = datetime.datetime.now()
|
startd = datetime.datetime.now()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
out, rc = pexpect.runu(args, timeout=timeout, withexitstatus=True,
|
try:
|
||||||
events=events, cwd=chdir, echo=echo)
|
# Prefer pexpect.run from pexpect>=4
|
||||||
|
out, rc = pexpect.run(args, timeout=timeout, withexitstatus=True,
|
||||||
|
events=events, cwd=chdir, echo=echo,
|
||||||
|
encoding='utf-8')
|
||||||
|
except TypeError:
|
||||||
|
# Use pexpect.runu in pexpect>=3.3,<4
|
||||||
|
out, rc = pexpect.runu(args, timeout=timeout, withexitstatus=True,
|
||||||
|
events=events, cwd=chdir, echo=echo)
|
||||||
|
except (TypeError, AttributeError), e:
|
||||||
|
# This should catch all insufficient versions of pexpect
|
||||||
|
# We deem them insufficient for their lack of ability to specify
|
||||||
|
# to not echo responses via the run/runu functions, which would
|
||||||
|
# potentially leak sensentive information
|
||||||
|
module.fail_json(msg='Insufficient version of pexpect installed '
|
||||||
|
'(%s), this module requires pexpect>=3.3. '
|
||||||
|
'Error was %s' % (pexpect.__version__, e))
|
||||||
except pexpect.ExceptionPexpect, e:
|
except pexpect.ExceptionPexpect, e:
|
||||||
module.fail_json(msg='%s' % e)
|
module.fail_json(msg='%s' % e)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue