potiuk commented on code in PR #64864:
URL: https://github.com/apache/airflow/pull/64864#discussion_r3048111522
##########
providers/ssh/docs/changelog.rst:
##########
@@ -27,6 +27,23 @@
Changelog
---------
+4.3.4
+.....
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Fix SSHHookAsync defaulting no_host_key_check to False unlike SSHHook
(#64225)``
+
+Misc
+~~~~
+
+* ``Load hook metadata from YAML without importing Hook class (#63826)``
+* ``Replace 'sshtunnel' with native paramiko/asyncssh tunneling (#64299)``
Review Comment:
It's not 0/1 in this case
It's essentially not breaking by design- the get_tunnel method is the same
and the object returned provides level of compatibility that should
**generally** work.
But yes - we should likely have some docs from the PR in the changelog.
---
Minimal backward compatibility shim
Rather than fully reimplementing SSHTunnelForwarder's API surface, we
provide:
`Context manager (__enter__/__exit__) - the recommended interface
.start()/.stop() - deprecated, emit AirflowProviderDeprecationWarning
.local_bind_port and .local_bind_address - preserved as properties
__getattr__ - raises AttributeError with migration hint for
SSHTunnelForwarder-specific attributes (e.g., tunnel_is_up, ssh_host)
This covers the known usage patterns without maintaining dead code. No
external providers or common user code accesses SSHTunnelForwarder-specific
attributes beyond context manager + local_bind_port.
AsyncSSHTunnel as a thin asyncssh wrapper
asyncssh already provides forward_local_port() which handles all the
forwarding internally. AsyncSSHTunnel is a thin wrapper that:
Manages the lifecycle (listener + SSH connection cleanup in __aexit__)
Exposes .local_bind_port via listener.get_port()
Handles cleanup on __aenter__ failure (closes SSH connection if
forward_local_port raises)
Follows the async with await hook.get_tunnel(...) pattern
Eager socket binding in constructor
--
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]