action/ce.py:clear configuration candidate when return to user-view. (#63513)

* 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
pull/63670/head
Xu Yuandong 5 years ago committed by John R Barker
parent d22dc5ab8b
commit 47c31c201b

@ -0,0 +1,2 @@
bugfixes:
- action/ce - fix a bug, some new version os will not discard uncommitted configure with a return directly.(https://github.com/ansible/ansible/pull/63513).

@ -93,10 +93,14 @@ class ActionModule(ActionNetworkModule):
socket_path = self._connection.socket_path socket_path = self._connection.socket_path
conn = Connection(socket_path) conn = Connection(socket_path)
out = conn.get_prompt() 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) 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') conn.exec_command('return')
out = conn.get_prompt() out = conn.get_prompt()
prompt = to_text(out, errors='surrogate_then_replace').strip()
result = super(ActionModule, self).run(task_vars=task_vars) result = super(ActionModule, self).run(task_vars=task_vars)
return result return result

Loading…
Cancel
Save