mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-02 12:14:25 -07:00
wsl connection: import paramiko directly (#10531)
Import paramiko directly.
This commit is contained in:
parent
3bb7a77b14
commit
d0b0aff5bc
3 changed files with 15 additions and 6 deletions
3
changelogs/fragments/10531-wsl-paramiko.yml
Normal file
3
changelogs/fragments/10531-wsl-paramiko.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
bugfixes:
|
||||
- "wsl connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead
|
||||
(https://github.com/ansible-collections/community.general/issues/10515, https://github.com/ansible-collections/community.general/pull/10531)."
|
|
@ -315,6 +315,7 @@ import pathlib
|
|||
import shlex
|
||||
import socket
|
||||
import tempfile
|
||||
import traceback
|
||||
import typing as t
|
||||
|
||||
from ansible.errors import (
|
||||
|
@ -323,9 +324,8 @@ from ansible.errors import (
|
|||
AnsibleError,
|
||||
)
|
||||
from ansible_collections.community.general.plugins.module_utils._filelock import FileLock, LockTimeout
|
||||
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
|
||||
from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text
|
||||
from ansible.module_utils.compat.paramiko import PARAMIKO_IMPORT_ERR, paramiko
|
||||
from ansible.module_utils.compat.version import LooseVersion
|
||||
from ansible.playbook.play_context import PlayContext
|
||||
from ansible.plugins.connection import ConnectionBase
|
||||
from ansible.utils.display import Display
|
||||
|
@ -333,8 +333,15 @@ from ansible.utils.path import makedirs_safe
|
|||
from binascii import hexlify
|
||||
from subprocess import list2cmdline
|
||||
|
||||
try:
|
||||
import paramiko
|
||||
PARAMIKO_IMPORT_ERR = None
|
||||
except ImportError:
|
||||
paramiko = None
|
||||
PARAMIKO_IMPORT_ERR = traceback.format_exc()
|
||||
|
||||
if t.TYPE_CHECKING and paramiko:
|
||||
|
||||
if t.TYPE_CHECKING and PARAMIKO_IMPORT_ERR is None:
|
||||
from paramiko import MissingHostKeyPolicy
|
||||
from paramiko.client import SSHClient
|
||||
from paramiko.pkey import PKey
|
||||
|
@ -437,7 +444,7 @@ class Connection(ConnectionBase):
|
|||
def _connect(self) -> Connection:
|
||||
""" activates the connection object """
|
||||
|
||||
if paramiko is None:
|
||||
if PARAMIKO_IMPORT_ERR is not None:
|
||||
raise AnsibleError(f'paramiko is not installed: {to_native(PARAMIKO_IMPORT_ERR)}')
|
||||
|
||||
port = self.get_option('port')
|
||||
|
|
|
@ -12,7 +12,6 @@ from ansible_collections.community.general.plugins.connection.wsl import authent
|
|||
from ansible_collections.community.general.plugins.module_utils._filelock import FileLock, LockTimeout
|
||||
from ansible.errors import AnsibleError, AnsibleAuthenticationFailure, AnsibleConnectionFailure
|
||||
from ansible.module_utils.common.text.converters import to_bytes
|
||||
from ansible.module_utils.compat.paramiko import paramiko
|
||||
from ansible.playbook.play_context import PlayContext
|
||||
from ansible.plugins.loader import connection_loader
|
||||
from io import StringIO
|
||||
|
@ -20,7 +19,7 @@ from pathlib import Path
|
|||
from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import patch, MagicMock, mock_open
|
||||
|
||||
|
||||
pytest.importorskip('paramiko')
|
||||
paramiko = pytest.importorskip('paramiko')
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue