mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-05 16:04:09 -07:00
clean up of terminal plugins (#21549)
* removes unneeded supports_multiplexing var * refactors terminal_prompts_re to terminal_stdout_re * refactors terminal_errors_re to terminal_stderr_re * updates network_cli unit test cases
This commit is contained in:
parent
c5452eef6f
commit
a6cecef6bc
11 changed files with 26 additions and 59 deletions
|
@ -32,17 +32,15 @@ class TerminalBase(with_metaclass(ABCMeta, object)):
|
|||
A base class for implementing cli connections
|
||||
'''
|
||||
|
||||
terminalprompts_re = []
|
||||
terminal_stdout_re = []
|
||||
|
||||
terminalerrors_re = []
|
||||
terminal_stderr_re = []
|
||||
|
||||
ansi_re = [
|
||||
re.compile(r'(\x1b\[\?1h\x1b=)'),
|
||||
re.compile(r'\x08.')
|
||||
]
|
||||
|
||||
supports_multiplexing = True
|
||||
|
||||
def __init__(self, connection):
|
||||
self._connection = connection
|
||||
|
||||
|
@ -68,7 +66,3 @@ class TerminalBase(with_metaclass(ABCMeta, object)):
|
|||
|
||||
def on_deauthorize(self):
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def guess_network_os(conn):
|
||||
pass
|
||||
|
|
|
@ -28,12 +28,12 @@ from ansible.errors import AnsibleConnectionFailure
|
|||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
|
||||
re.compile(r"\[\w+\@[\w\-\.]+(?: [^\]])\] ?[>#\$] ?$")
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"% ?Error"),
|
||||
re.compile(r"^% \w+", re.M),
|
||||
re.compile(r"% ?Bad secret"),
|
||||
|
|
|
@ -28,12 +28,12 @@ from ansible.errors import AnsibleConnectionFailure
|
|||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
|
||||
re.compile(r"\[\w+\@[\w\-\.]+(?: [^\]])\] ?[>#\$] ?$")
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"% ?Error"),
|
||||
re.compile(r"^% \w+", re.M),
|
||||
re.compile(r"% User not present"),
|
||||
|
|
|
@ -28,12 +28,12 @@ from ansible.errors import AnsibleConnectionFailure
|
|||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
|
||||
re.compile(r"\[\w+\@[\w\-\.]+(?: [^\]])\] ?[>#\$] ?$")
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"% ?Error"),
|
||||
re.compile(r"^% \w+", re.M),
|
||||
re.compile(r"% ?Bad secret"),
|
||||
|
@ -44,8 +44,6 @@ class TerminalModule(TerminalBase):
|
|||
re.compile(r"'[^']' +returned error code: ?\d+"),
|
||||
]
|
||||
|
||||
supports_multiplexing = False
|
||||
|
||||
def on_open_shell(self):
|
||||
try:
|
||||
self._exec_cli_command('terminal length 0')
|
||||
|
|
|
@ -25,16 +25,15 @@ import json
|
|||
from ansible.plugins.terminal import TerminalBase
|
||||
from ansible.errors import AnsibleConnectionFailure
|
||||
|
||||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
|
||||
re.compile(r"\[\w+\@[\w\-\.]+(?: [^\]])\] ?[>#\$] ?$"),
|
||||
re.compile(r']]>]]>[\r\n]?')
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"% ?Error"),
|
||||
re.compile(r"% ?Bad secret"),
|
||||
re.compile(r"invalid input", re.I),
|
||||
|
@ -44,11 +43,9 @@ class TerminalModule(TerminalBase):
|
|||
re.compile(r"'[^']' +returned error code: ?\d+"),
|
||||
]
|
||||
|
||||
supports_multiplexing = False
|
||||
|
||||
def on_open_shell(self):
|
||||
try:
|
||||
for cmd in ['terminal length 0', 'terminal exec prompt no-timestamp']:
|
||||
self._connection.exec_command(cmd)
|
||||
self._exec_cli_command(cmd)
|
||||
except AnsibleConnectionFailure:
|
||||
raise AnsibleConnectionFailure('unable to set terminal parameters')
|
||||
|
|
|
@ -34,12 +34,12 @@ except ImportError:
|
|||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|%) ?$"),
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"unknown command"),
|
||||
re.compile(r"syntax error,")
|
||||
]
|
||||
|
|
|
@ -27,12 +27,12 @@ from ansible.errors import AnsibleConnectionFailure
|
|||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r'[\r\n]?[a-zA-Z]{1}[a-zA-Z0-9-]*[>|#|%](?:\s*)$'),
|
||||
re.compile(r'[\r\n]?[a-zA-Z]{1}[a-zA-Z0-9-]*\(.+\)#(?:\s*)$')
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"% ?Error"),
|
||||
re.compile(r"^% \w+", re.M),
|
||||
re.compile(r"% ?Bad secret"),
|
||||
|
|
|
@ -28,17 +28,15 @@ from ansible.errors import AnsibleConnectionFailure
|
|||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
|
||||
re.compile(r"\[\w+\@[\w\-\.]+(?: [^\]])\] ?[>#\$] ?$")
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"^\r\nError:"),
|
||||
]
|
||||
|
||||
supports_multiplexing = False
|
||||
|
||||
def on_open_shell(self):
|
||||
try:
|
||||
self._exec_cli_command('environment no more')
|
||||
|
|
|
@ -28,12 +28,12 @@ from ansible.errors import AnsibleConnectionFailure
|
|||
|
||||
class TerminalModule(TerminalBase):
|
||||
|
||||
terminal_prompts_re = [
|
||||
terminal_stdout_re = [
|
||||
re.compile(r"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
|
||||
re.compile(r"\@[\w\-\.]+:\S+?[>#\$] ?$")
|
||||
]
|
||||
|
||||
terminal_errors_re = [
|
||||
terminal_stderr_re = [
|
||||
re.compile(r"\n\s*Invalid command:"),
|
||||
re.compile(r"\nCommit failed"),
|
||||
re.compile(r"\n\s+Set failed"),
|
||||
|
@ -48,9 +48,3 @@ class TerminalModule(TerminalBase):
|
|||
except AnsibleConnectionFailure:
|
||||
raise AnsibleConnectionFailure('unable to set terminal parameters')
|
||||
|
||||
@staticmethod
|
||||
def guess_network_os(conn):
|
||||
stdin, stdout, stderr = conn.exec_command('cat /etc/issue')
|
||||
if 'VyOS' in stdout.read():
|
||||
return 'vyos'
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue