Skip to content

Commit 8f90ab0

Browse files
authored
Import paramiko directly. (#151)
1 parent 836567a commit 8f90ab0

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
bugfixes:
2+
- "proxmox_pct_remote connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead
3+
(https://github.com/ansible-collections/community.proxmox/issues/146, https://github.com/ansible-collections/community.proxmox/pull/151)."

plugins/connection/proxmox_pct_remote.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,7 @@
406406
import pathlib
407407
import socket
408408
import tempfile
409+
import traceback
409410
import typing as t
410411

411412
from ansible.errors import (
@@ -414,14 +415,20 @@
414415
AnsibleError,
415416
)
416417
from ansible_collections.community.proxmox.plugins.module_utils._filelock import FileLock, LockTimeout
418+
from ansible_collections.community.proxmox.plugins.module_utils.version import LooseVersion
417419
from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text
418-
from ansible.module_utils.compat.paramiko import PARAMIKO_IMPORT_ERR, paramiko
419-
from ansible.module_utils.compat.version import LooseVersion
420420
from ansible.plugins.connection import ConnectionBase
421421
from ansible.utils.display import Display
422422
from ansible.utils.path import makedirs_safe
423423
from binascii import hexlify
424424

425+
try:
426+
import paramiko
427+
PARAMIKO_IMPORT_ERR = None
428+
except ImportError:
429+
paramiko = None
430+
PARAMIKO_IMPORT_ERR = traceback.format_exc()
431+
425432

426433
display = Display()
427434

@@ -521,7 +528,7 @@ def _parse_proxy_command(self, port: int = 22) -> dict[str, t.Any]:
521528
def _connect(self) -> Connection:
522529
""" activates the connection object """
523530

524-
if paramiko is None:
531+
if PARAMIKO_IMPORT_ERR is not None:
525532
raise AnsibleError(f'paramiko is not installed: {to_native(PARAMIKO_IMPORT_ERR)}')
526533

527534
port = self.get_option('port')

tests/unit/plugins/connection/test_proxmox_pct_remote.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,14 @@
1414
from ansible_collections.community.proxmox.plugins.module_utils._filelock import FileLock, LockTimeout
1515
from ansible.errors import AnsibleError, AnsibleAuthenticationFailure, AnsibleConnectionFailure
1616
from ansible.module_utils.common.text.converters import to_bytes
17-
from ansible.module_utils.compat.paramiko import paramiko
1817
from ansible.playbook.play_context import PlayContext
1918
from ansible.plugins.loader import connection_loader
2019
from io import StringIO
2120
from pathlib import Path
2221
from unittest.mock import patch, MagicMock, mock_open
2322

2423

25-
pytest.importorskip('paramiko')
24+
paramiko = pytest.importorskip('paramiko')
2625

2726

2827
@pytest.fixture

0 commit comments

Comments
 (0)