summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNilashish Chakraborty <nilashishchakraborty8@gmail.com>2019-05-14 19:17:00 +0530
committerToshio Kuratomi <a.badger@gmail.com>2019-05-20 18:18:25 -0700
commitaa616b436c5ba443de4685ba496464fb25a896da (patch)
tree95478373caffa7c259d6121a745c10155b97f9b1
parent85b21c2c9bf89cd29859a2a52339c2dce150f4f2 (diff)
downloadansible-aa616b436c5ba443de4685ba496464fb25a896da.tar.gz
Fix VyOS cli prompt issues (#56389)
Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com> (cherry picked from commit 30ccc8e1bd356f78fe2077720ddcab372cfab69c) Add changelog for vyos prompt fix
-rw-r--r--changelogs/fragments/55589_fix_vyos_prompt_issues.yaml2
-rw-r--r--lib/ansible/plugins/action/vyos.py6
-rw-r--r--lib/ansible/plugins/cliconf/vyos.py2
3 files changed, 7 insertions, 3 deletions
diff --git a/changelogs/fragments/55589_fix_vyos_prompt_issues.yaml b/changelogs/fragments/55589_fix_vyos_prompt_issues.yaml
new file mode 100644
index 0000000000..9800352448
--- /dev/null
+++ b/changelogs/fragments/55589_fix_vyos_prompt_issues.yaml
@@ -0,0 +1,2 @@
+bugfixes:
+ - Fix vyos cli prompt inspection (https://github.com/ansible/ansible/pull/55589)
diff --git a/lib/ansible/plugins/action/vyos.py b/lib/ansible/plugins/action/vyos.py
index c4d8b3bbe5..2a3b1d0d24 100644
--- a/lib/ansible/plugins/action/vyos.py
+++ b/lib/ansible/plugins/action/vyos.py
@@ -83,10 +83,10 @@ class ActionModule(_ActionModule):
conn = Connection(socket_path)
out = conn.get_prompt()
- while to_text(out, errors='surrogate_then_replace').strip().endswith(')#'):
+
+ if to_text(out, errors='surrogate_then_replace').strip().endswith('#'):
display.vvvv('wrong context, sending exit to device', self._play_context.remote_addr)
- conn.send_command('abort')
- out = conn.get_prompt()
+ conn.send_command('exit discard')
result = super(ActionModule, self).run(task_vars=task_vars)
return result
diff --git a/lib/ansible/plugins/cliconf/vyos.py b/lib/ansible/plugins/cliconf/vyos.py
index 14ce890a43..a979564b53 100644
--- a/lib/ansible/plugins/cliconf/vyos.py
+++ b/lib/ansible/plugins/cliconf/vyos.py
@@ -98,6 +98,8 @@ class Cliconf(CliconfBase):
self.discard_changes()
else:
self.send_command('exit')
+ if to_text(self._connection.get_prompt(), errors='surrogate_or_strict').strip().endswith('#'):
+ self.discard_changes()
if diff_config:
resp['diff'] = diff_config