stegololz commented on issue #73658: URL: https://github.com/apache/airflow/issues/73658#issuecomment-5867466669
@shahar1 tested sftp 6.1.0rc1, mainly #73288 and #72336. Both work as advertised. Method: real transfers against a local asyncssh SFTP server, with the rc1 wheel from PyPI, on Airflow 3.3.2 (asyncssh 2.24.0, paramiko 5.0.0, Python 3.13) and, for backwards compatibility, on 2.11.2, 3.0.6, 3.1.8 and 3.2.2. - #72336: `SFTPOperator(deferrable=True)` defers to `SFTPTransferTrigger`, the trigger re-instantiated from `serialize()` completes PUT, GET and DELETE for single files, lists with `concurrency=2` and directory trees, `create_intermediate_dirs` works, a missing GET source yields an error event that `execute_complete` turns into `AirflowException`, and a missing connection id raises `ValueError`. The synchronous path through the new `SFTPHook.transfer()` still does PUT, GET and DELETE. Same results on all five Airflow versions. - #73288: five consecutive `SFTPNoSuchFile` on one `SFTPClientPool` reuse a single SSH connection; `SFTPConnectionLost` and a non-`SFTPError` still drop it. Same on all five versions. - The `pools` and `triggers` unit test modules from the tag pass standalone on all five versions (46 tests). --- Drafted-by: Claude Code (Fable 5.1); reviewed by @stegololz before posting -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
