summaryrefslogtreecommitdiff
path: root/lib/ansible/plugins/action/ce.py
diff options
context:
space:
mode:
authorXu Yuandong <yuandongdeyouxiang@gmail.com>2019-10-18 17:09:47 +0800
committerToshio Kuratomi <a.badger@gmail.com>2019-10-31 12:50:55 -0700
commitbd26e706380e8777e457447a262b2392753c6119 (patch)
treed224251ae2c81b90338908c4eaeed7b12345fbe0 /lib/ansible/plugins/action/ce.py
parent1d81a139afc018c6dca72407d635e2b30220dda6 (diff)
downloadansible-bd26e706380e8777e457447a262b2392753c6119.tar.gz
action/ce.py:clear configuration candidate when return to user-view. (#63513)temporary-2.9.1-branch-releng-only
* clear configuration candidate when return to user-view. * add a changelog fragment for the pr. * Update 63513-ce_action_wait_prompt_trigger_time_out.yaml * Update 63513-ce_action_wait_prompt_trigger_time_out.yaml (cherry picked from commit 47c31c201b694d043e156747a4a99275bd66492e)
Diffstat (limited to 'lib/ansible/plugins/action/ce.py')
-rw-r--r--lib/ansible/plugins/action/ce.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ansible/plugins/action/ce.py b/lib/ansible/plugins/action/ce.py
index 18a3570d97..303ea53bbf 100644
--- a/lib/ansible/plugins/action/ce.py
+++ b/lib/ansible/plugins/action/ce.py
@@ -93,10 +93,14 @@ class ActionModule(ActionNetworkModule):
socket_path = self._connection.socket_path
conn = Connection(socket_path)
out = conn.get_prompt()
- while to_text(out, errors='surrogate_then_replace').strip().endswith(']'):
+ prompt = to_text(out, errors='surrogate_then_replace').strip()
+ while prompt.endswith(']'):
display.vvvv('wrong context, sending exit to device', self._play_context.remote_addr)
+ if prompt.startswith('[*'):
+ conn.exec_command('clear configuration candidate')
conn.exec_command('return')
out = conn.get_prompt()
+ prompt = to_text(out, errors='surrogate_then_replace').strip()
result = super(ActionModule, self).run(task_vars=task_vars)
return result