summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNilashish Chakraborty <nilashishchakraborty8@gmail.com>2020-12-08 04:02:07 +0530
committerGitHub <noreply@github.com>2020-12-07 16:32:07 -0600
commitceea695163b08d23e65dcfe188024182538f42ef (patch)
tree4e867e084a0759a99b3bae31b80e4d87c26ef1d6
parent1706b711418d8f8a55f59c7b508acb2a0e21a19e (diff)
downloadansible-ceea695163b08d23e65dcfe188024182538f42ef.tar.gz
[stable-2.9] Escalate priv before setting terminal (#72673)
* Try to escalate before on_open_shell to work around ios (#63571) (cherry picked from commit 0cd2ad588032ac1d15ca7084c5c03c91e607a80a) Add changelog Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com> Co-authored-by: Nathaniel Case <ncase@redhat.com>
-rw-r--r--changelogs/fragments/escalate_priv_before_terminal.yaml3
-rw-r--r--lib/ansible/plugins/connection/network_cli.py6
2 files changed, 6 insertions, 3 deletions
diff --git a/changelogs/fragments/escalate_priv_before_terminal.yaml b/changelogs/fragments/escalate_priv_before_terminal.yaml
new file mode 100644
index 0000000000..8b48c3b691
--- /dev/null
+++ b/changelogs/fragments/escalate_priv_before_terminal.yaml
@@ -0,0 +1,3 @@
+---
+bugfixes:
+ - network_cli connection plugin - Perform privilege escalation before setting terminal.
diff --git a/lib/ansible/plugins/connection/network_cli.py b/lib/ansible/plugins/connection/network_cli.py
index d7ca6c8c90..4f23395fb3 100644
--- a/lib/ansible/plugins/connection/network_cli.py
+++ b/lib/ansible/plugins/connection/network_cli.py
@@ -480,14 +480,14 @@ class Connection(NetworkConnectionBase):
self.receive(prompts=terminal_initial_prompt, answer=terminal_initial_answer, newline=newline, check_all=check_all)
- self.queue_message('vvvv', 'firing event: on_open_shell()')
- self._terminal.on_open_shell()
-
if self._play_context.become:
self.queue_message('vvvv', 'firing event: on_become')
auth_pass = self._play_context.become_pass
self._terminal.on_become(passwd=auth_pass)
+ self.queue_message('vvvv', 'firing event: on_open_shell()')
+ self._terminal.on_open_shell()
+
self.queue_message('vvvv', 'ssh connection has completed successfully')
return self