mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-08 14:22:46 +00:00
Properly check for prompting state when re-using ssh connection
Fixes #13278
This commit is contained in:
@@ -75,6 +75,7 @@ class ConnectionBase(with_metaclass(ABCMeta, object)):
|
||||
|
||||
self.success_key = None
|
||||
self.prompt = None
|
||||
self._connected = False
|
||||
|
||||
# load the shell plugin for this action/connection
|
||||
if play_context.shell:
|
||||
@@ -88,6 +89,10 @@ class ConnectionBase(with_metaclass(ABCMeta, object)):
|
||||
if not self._shell:
|
||||
raise AnsibleError("Invalid shell type specified (%s), or the plugin for that shell type is missing." % shell_type)
|
||||
|
||||
@property
|
||||
def connected(self):
|
||||
return self._connected
|
||||
|
||||
def _become_method_supported(self):
|
||||
''' Checks if the current class supports this privilege escalation method '''
|
||||
|
||||
|
||||
@@ -372,7 +372,7 @@ class Connection(ConnectionBase):
|
||||
# wait for a password prompt.
|
||||
state = states.index('awaiting_prompt')
|
||||
display.debug('Initial state: %s: %s' % (states[state], self._play_context.prompt))
|
||||
elif self._play_context.become and self._play_context.success_key:
|
||||
elif self._play_context.become and self._play_context.success_key and not self._connected:
|
||||
# We're requesting escalation without a password, so we have to
|
||||
# detect success/failure before sending any initial data.
|
||||
state = states.index('awaiting_escalation')
|
||||
|
||||
Reference in New Issue
Block a user