From 66cec45960ce1d9c794e9399de15c138acb18aed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 18:03:42 +0200 Subject: Adding upstream version 7.3.0+dfsg. Signed-off-by: Daniel Baumann --- .../junos/plugins/terminal/__init__.py | 0 .../junos/plugins/terminal/junos.py | 68 ++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 ansible_collections/junipernetworks/junos/plugins/terminal/__init__.py create mode 100644 ansible_collections/junipernetworks/junos/plugins/terminal/junos.py (limited to 'ansible_collections/junipernetworks/junos/plugins/terminal') diff --git a/ansible_collections/junipernetworks/junos/plugins/terminal/__init__.py b/ansible_collections/junipernetworks/junos/plugins/terminal/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ansible_collections/junipernetworks/junos/plugins/terminal/junos.py b/ansible_collections/junipernetworks/junos/plugins/terminal/junos.py new file mode 100644 index 00000000..574e80cc --- /dev/null +++ b/ansible_collections/junipernetworks/junos/plugins/terminal/junos.py @@ -0,0 +1,68 @@ +# +# (c) 2016 Red Hat Inc. +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see . +# + +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +import re + +from ansible.errors import AnsibleConnectionFailure +from ansible.module_utils.common.text.converters import to_bytes +from ansible.utils.display import Display +from ansible_collections.ansible.netcommon.plugins.plugin_utils.terminal_base import TerminalBase + + +display = Display() + + +class TerminalModule(TerminalBase): + + terminal_stdout_re = [ + re.compile( + to_bytes(r"({primary:node\d+})?[\r\n]?[\w@+\-\.:\/\[\]]+[>#%] ?$"), + ), + ] + + terminal_stderr_re = [ + re.compile(to_bytes(r"unknown command")), + re.compile(to_bytes(r"syntax error")), + re.compile(to_bytes(r"[\r\n]error:")), + ] + + terminal_config_prompt = re.compile(r"^.+#$") + + def on_open_shell(self): + try: + prompt = self._get_prompt() + if prompt.strip().endswith(b"%"): + display.vvv( + "starting cli", + self._connection._play_context.remote_addr, + ) + self._exec_cli_command(b"cli") + for c in ( + b"set cli timestamp disable", + b"set cli screen-length 0", + b"set cli screen-width 1024", + ): + self._exec_cli_command(c) + except AnsibleConnectionFailure: + raise AnsibleConnectionFailure("unable to set terminal parameters") -- cgit v1.2.3