mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-03 04:34:24 -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 shlex
|
||||||
import socket
|
import socket
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import traceback
|
||||||
import typing as t
|
import typing as t
|
||||||
|
|
||||||
from ansible.errors import (
|
from ansible.errors import (
|
||||||
|
@ -323,9 +324,8 @@ from ansible.errors import (
|
||||||
AnsibleError,
|
AnsibleError,
|
||||||
)
|
)
|
||||||
from ansible_collections.community.general.plugins.module_utils._filelock import FileLock, LockTimeout
|
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.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.playbook.play_context import PlayContext
|
||||||
from ansible.plugins.connection import ConnectionBase
|
from ansible.plugins.connection import ConnectionBase
|
||||||
from ansible.utils.display import Display
|
from ansible.utils.display import Display
|
||||||
|
@ -333,8 +333,15 @@ from ansible.utils.path import makedirs_safe
|
||||||
from binascii import hexlify
|
from binascii import hexlify
|
||||||
from subprocess import list2cmdline
|
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 import MissingHostKeyPolicy
|
||||||
from paramiko.client import SSHClient
|
from paramiko.client import SSHClient
|
||||||
from paramiko.pkey import PKey
|
from paramiko.pkey import PKey
|
||||||
|
@ -437,7 +444,7 @@ class Connection(ConnectionBase):
|
||||||
def _connect(self) -> Connection:
|
def _connect(self) -> Connection:
|
||||||
""" activates the connection object """
|
""" 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)}')
|
raise AnsibleError(f'paramiko is not installed: {to_native(PARAMIKO_IMPORT_ERR)}')
|
||||||
|
|
||||||
port = self.get_option('port')
|
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_collections.community.general.plugins.module_utils._filelock import FileLock, LockTimeout
|
||||||
from ansible.errors import AnsibleError, AnsibleAuthenticationFailure, AnsibleConnectionFailure
|
from ansible.errors import AnsibleError, AnsibleAuthenticationFailure, AnsibleConnectionFailure
|
||||||
from ansible.module_utils.common.text.converters import to_bytes
|
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.playbook.play_context import PlayContext
|
||||||
from ansible.plugins.loader import connection_loader
|
from ansible.plugins.loader import connection_loader
|
||||||
from io import StringIO
|
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
|
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
|
@pytest.fixture
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue