@@ -103,13 +103,10 @@ def __init__(self, task, connection, *args, **kwargs):
103103
104104 # required for python interpreter discovery
105105 connection .templar = self ._templar
106- self ._finding_python_interpreter = False
107- self ._rediscovered_python = False
108- # redeclaring interpreter discovery vars here in case running ansible < 2.8.0
109- self ._discovered_interpreter_key = None
110- self ._discovered_interpreter = False
111- self ._discovery_deprecation_warnings = []
112- self ._discovery_warnings = []
106+
107+ self ._mitogen_discovering_interpreter = False
108+ self ._mitogen_interpreter_candidate = None
109+ self ._mitogen_rediscovered_interpreter = False
113110
114111 def run (self , tmp = None , task_vars = None ):
115112 """
@@ -402,7 +399,7 @@ def _execute_module(self, module_name=None, module_args=None, tmp=None,
402399 # only cache discovered_interpreter if we're not running a rediscovery
403400 # rediscovery happens in places like docker connections that could have different
404401 # python interpreters than the main host
405- if not self ._rediscovered_python :
402+ if not self ._mitogen_rediscovered_interpreter :
406403 result ['ansible_facts' ][self ._discovered_interpreter_key ] = self ._discovered_interpreter
407404
408405 if self ._discovery_warnings :
@@ -462,7 +459,7 @@ def _low_level_execute_command(self, cmd, sudoable=True, in_data=None,
462459 # calling exec_command until we run into the right python we'll use
463460 # chicken-and-egg issue, mitogen needs a python to run low_level_execute_command
464461 # which is required by Ansible's discover_interpreter function
465- if self ._finding_python_interpreter :
462+ if self ._mitogen_discovering_interpreter :
466463 possible_pythons = [
467464 '/usr/bin/python' ,
468465 'python3' ,
@@ -479,32 +476,27 @@ def _low_level_execute_command(self, cmd, sudoable=True, in_data=None,
479476 # not used, just adding a filler value
480477 possible_pythons = ['python' ]
481478
482- def _run_cmd ():
483- return self ._connection .exec_command (
484- cmd = cmd ,
485- in_data = in_data ,
486- sudoable = sudoable ,
487- mitogen_chdir = chdir ,
488- )
489-
490479 for possible_python in possible_pythons :
491480 try :
492- self ._possible_python_interpreter = possible_python
493- rc , stdout , stderr = _run_cmd ()
481+ self ._mitogen_interpreter_candidate = possible_python
482+ rc , stdout , stderr = self ._connection .exec_command (
483+ cmd , in_data , sudoable , mitogen_chdir = chdir ,
484+ )
494485 # TODO: what exception is thrown?
495486 except :
496487 # we've reached the last python attempted and failed
497- # TODO: could use enumerate(), need to check which version of python first had it though
498- if possible_python == 'python' :
488+ if possible_python == possible_pythons [- 1 ]:
499489 raise
500490 else :
501491 continue
502492
503493 stdout_text = to_text (stdout , errors = encoding_errors )
494+ stderr_text = to_text (stderr , errors = encoding_errors )
504495
505496 return {
506497 'rc' : rc ,
507498 'stdout' : stdout_text ,
508499 'stdout_lines' : stdout_text .splitlines (),
509- 'stderr' : stderr ,
500+ 'stderr' : stderr_text ,
501+ 'stderr_lines' : stderr_text .splitlines (),
510502 }
0 commit comments