From 1fff54262300de22a4e6eead583d383756a4e37d Mon Sep 17 00:00:00 2001 From: Nathaniel Case Date: Mon, 12 Nov 2018 11:18:06 -0500 Subject: [PATCH] Match config prompts that aren't maint-mode (#47678) --- lib/ansible/plugins/action/nxos.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ansible/plugins/action/nxos.py b/lib/ansible/plugins/action/nxos.py index e9230b25906..656d49178fa 100644 --- a/lib/ansible/plugins/action/nxos.py +++ b/lib/ansible/plugins/action/nxos.py @@ -19,8 +19,9 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -import sys import copy +import re +import sys from ansible import constants as C from ansible.module_utils._text import to_text @@ -117,8 +118,10 @@ class ActionModule(_ActionModule): socket_path = self._connection.socket_path conn = Connection(socket_path) + # Match prompts ending in )# except those with (maint-mode)# + config_prompt = re.compile(r'^.*\((?!maint-mode).*\)#$') out = conn.get_prompt() - while to_text(out, errors='surrogate_then_replace').strip().endswith(')#'): + while config_prompt.match(to_text(out, errors='surrogate_then_replace').strip()): display.vvvv('wrong context, sending exit to device', self._play_context.remote_addr) conn.send_command('exit') out = conn.get_prompt()