From e929aad539c46b8fa01bfcb393504ff306b3bce5 Mon Sep 17 00:00:00 2001 From: Sloane Hertel <19572925+s-hertel@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:24:45 -0500 Subject: [PATCH] remove deprecated internal argument from synchronize (#421) * remove deprecated internal argument from synchronize the new_stdin argument is no longer used to instantiate a connection plugin * add a changelog --- changelogs/fragments/421-remove-deprecation-warning.yml | 2 ++ plugins/action/synchronize.py | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 changelogs/fragments/421-remove-deprecation-warning.yml diff --git a/changelogs/fragments/421-remove-deprecation-warning.yml b/changelogs/fragments/421-remove-deprecation-warning.yml new file mode 100644 index 0000000..5224f1e --- /dev/null +++ b/changelogs/fragments/421-remove-deprecation-warning.yml @@ -0,0 +1,2 @@ +trivial: + - synchronize - instantiate the connection plugin without the ``new_stdin`` argument, which is deprecated in ansible-core 2.15 (https://github.com/ansible-collections/ansible.posix/pull/421). diff --git a/plugins/action/synchronize.py b/plugins/action/synchronize.py index dd780b9..34c9015 100644 --- a/plugins/action/synchronize.py +++ b/plugins/action/synchronize.py @@ -284,9 +284,6 @@ class ActionModule(ActionBase): # told (via delegate_to) that a different host is the source of the # rsync if not use_delegate and remote_transport: - # Create a connection to localhost to run rsync on - new_stdin = self._connection._new_stdin - # Unlike port, there can be only one shell localhost_shell = None for host in C.LOCALHOST: @@ -315,7 +312,11 @@ class ActionModule(ActionBase): localhost_executable = C.DEFAULT_EXECUTABLE self._play_context.executable = localhost_executable - new_connection = connection_loader.get('local', self._play_context, new_stdin) + try: + new_connection = connection_loader.get('local', self._play_context) + except TypeError: + # Needed for ansible-core < 2.15 + new_connection = connection_loader.get('local', self._play_context, self._connection._new_stdin) self._connection = new_connection # Override _remote_is_local as an instance attribute specifically for the synchronize use case # ensuring we set local tmpdir correctly