feature to localize prompt search logic for ios shared module

Prompt search logic is now localized to the ios shared module instead
of using the common regexps in the shell module.  This resolves a number
of problems with ios modules functioning properly
pull/15200/head
Peter Sprygada 8 years ago
parent 2be1726350
commit fa6464e807

@ -29,6 +29,21 @@ NET_COMMON_ARGS = dict(
provider=dict()
)
CLI_PROMPTS_RE = [
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
re.compile(r"\[\w+\@[\w\-\.]+(?: [^\]])\] ?[>#\$] ?$")
]
CLI_ERRORS_RE = [
re.compile(r"% ?Error"),
re.compile(r"% ?Bad secret"),
re.compile(r"invalid input", re.I),
re.compile(r"(?:incomplete|ambiguous) command", re.I),
re.compile(r"connection timed out", re.I),
re.compile(r"[^\r\n]+ not found", re.I),
re.compile(r"'[^']' +returned error code: ?\d+"),
]
def to_list(val):
if isinstance(val, (list, tuple)):
@ -52,12 +67,13 @@ class Cli(object):
username = self.module.params['username']
password = self.module.params['password']
self.shell = Shell(kickstart=False)
try:
self.shell.open(host, port=port, username=username, password=password)
self.shell = Shell(kickstart=False, prompts_re=CLI_PROMPTS_RE,
errors_re=CLI_ERRORS_RE)
self.shell.open(host, port=port, username=username,
password=password)
except Exception, exc:
msg = 'failed to connecto to %s:%s - %s' % (host, port, str(exc))
msg = 'failed to connect to %s:%s - %s' % (host, port, str(exc))
self.module.fail_json(msg=msg)
def authorize(self):

Loading…
Cancel
Save