diff --git a/broker/session.py b/broker/session.py index 52453d69..5604fef3 100644 --- a/broker/session.py +++ b/broker/session.py @@ -9,7 +9,6 @@ not these classes directly. """ from contextlib import contextmanager -import os from pathlib import Path import tempfile @@ -23,6 +22,7 @@ SSH_BACKEND = settings.SSH_BACKEND logger.info(f"{SSH_BACKEND=}") + try: if SSH_BACKEND == "ansible-pylibssh": from broker.ssh_session_pylibssh import InteractiveShell, Session @@ -31,12 +31,16 @@ elif SSH_BACKEND in ("ssh2-python", "ssh2-python312"): 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 # noqa: F401 + 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."""