From e7b85a7151aef84d5cfead1120c1a384e20b21fe Mon Sep 17 00:00:00 2001 From: Tasos Papaioannou Date: Mon, 8 Apr 2024 15:17:55 -0400 Subject: [PATCH] Add default session class if backend couldn't be imported. --- broker/session.py | 6 +++++- broker/ssh_session.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/broker/session.py b/broker/session.py index 52453d69..3d023739 100644 --- a/broker/session.py +++ b/broker/session.py @@ -18,25 +18,29 @@ from broker import helpers from broker.exceptions import NotImplementedError from broker.settings import settings +from broker.ssh_session import BaseSession SSH_BACKENDS = ("ssh2-python", "ssh2-python312", "ansible-pylibssh", "hussh") SSH_BACKEND = settings.SSH_BACKEND logger.info(f"{SSH_BACKEND=}") + try: if SSH_BACKEND == "ansible-pylibssh": from broker.ssh_session_pylibssh import InteractiveShell, Session elif SSH_BACKEND == "hussh": from broker.ssh_session_hussh import Session elif SSH_BACKEND in ("ssh2-python", "ssh2-python312"): - from broker.ssh_session_ssh2 import InteractiveShell, Session # noqa: F401 + from broker.ssh_session_ssh2 import InteractiveShell, Session # noqa: F401 else: + from broker.ssh_session import BaseSession as Session logger.warning( f"SSH backend {SSH_BACKEND!r} not supported.\n" "Supported ssh backends:\n" f"{SSH_BACKENDS}" ) except ImportError: + from broker.ssh_session import BaseSession as Session logger.warning( f"{SSH_BACKEND} is not installed.\n" "ssh actions will not work.\n" diff --git a/broker/ssh_session.py b/broker/ssh_session.py index bacad5de..eb979f24 100644 --- a/broker/ssh_session.py +++ b/broker/ssh_session.py @@ -53,3 +53,7 @@ def _create_connect_socket(host, port, timeout, ipv6=False, ipv4_fallback=True, else: sock.connect((host, port)) return sock, ipv6 + + +class BaseSession: + """Default wrapper around ssh backend's auth/connection system."""