[stable-10] Backport fixes from community.proxmox (#10553)

* Import paramiko directly.

8f90ab075c

* Remove deprecated disable_lookups parameter.

c0fc31241b
This commit is contained in:
Felix Fontein 2025-08-02 17:29:42 +02:00 committed by GitHub
commit 4c7f64b121
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 17 additions and 6 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- "proxmox inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.proxmox/pull/108, https://github.com/ansible-collections/community.general/pull/10553)."

View file

@ -0,0 +1,3 @@
bugfixes:
- "proxmox_pct_remote connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead
(https://github.com/ansible-collections/community.proxmox/issues/146, https://github.com/ansible-collections/community.proxmox/pull/151, https://github.com/ansible-collections/community.general/pull/10553)."

View file

@ -398,6 +398,7 @@ import os
import pathlib import pathlib
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 (
@ -406,14 +407,20 @@ 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.plugins.connection import ConnectionBase from ansible.plugins.connection import ConnectionBase
from ansible.utils.display import Display from ansible.utils.display import Display
from ansible.utils.path import makedirs_safe from ansible.utils.path import makedirs_safe
from binascii import hexlify from binascii import hexlify
try:
import paramiko
PARAMIKO_IMPORT_ERR = None
except ImportError:
paramiko = None
PARAMIKO_IMPORT_ERR = traceback.format_exc()
display = Display() display = Display()
@ -513,7 +520,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')

View file

@ -687,7 +687,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
for o in ('url', 'user', 'password', 'token_id', 'token_secret'): for o in ('url', 'user', 'password', 'token_id', 'token_secret'):
v = self.get_option(o) v = self.get_option(o)
if self.templar.is_template(v): if self.templar.is_template(v):
v = self.templar.template(v, disable_lookups=False) v = self.templar.template(v)
setattr(self, f'proxmox_{o}', v) setattr(self, f'proxmox_{o}', v)
# some more cleanup and validation # some more cleanup and validation

View file

@ -14,7 +14,6 @@ from ansible_collections.community.general.plugins.connection.proxmox_pct_remote
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
@ -22,7 +21,7 @@ from pathlib import Path
from unittest.mock import patch, MagicMock, mock_open from unittest.mock import patch, MagicMock, mock_open
pytest.importorskip('paramiko') paramiko = pytest.importorskip('paramiko')
@pytest.fixture @pytest.fixture