This is an automated email from the ASF dual-hosted git repository.
jscheffl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 05117d0855f Fix remote-log providers not satisfying RemoteLogIO upload
contract (#68300)
05117d0855f is described below
commit 05117d0855f46ff09f1044f4d0ce43ce9958f5d5
Author: Bugra Ozturk <[email protected]>
AuthorDate: Tue Jun 9 22:36:16 2026 +0200
Fix remote-log providers not satisfying RemoteLogIO upload contract (#68300)
---
.../alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py | 2 +-
.../src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py | 2 +-
.../amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py | 2 +-
.../hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py | 2 +-
.../google/src/airflow/providers/google/cloud/log/gcs_task_handler.py | 2 +-
.../src/airflow/providers/google/cloud/log/stackdriver_task_handler.py | 2 +-
.../src/airflow/providers/microsoft/azure/log/wasb_task_handler.py | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git
a/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py
b/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py
index d09261b3df9..a000c6ff01f 100644
---
a/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py
+++
b/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py
@@ -44,7 +44,7 @@ class OSSRemoteLogIO(LoggingMixin): # noqa: D101
processors = ()
- def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+ def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) ->
None:
"""Upload the given log path to the remote storage."""
path = Path(path)
if path.is_absolute():
diff --git
a/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
b/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
index 055cfd44933..5bc286cb963 100644
---
a/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
+++
b/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
@@ -166,7 +166,7 @@ class CloudWatchRemoteLogIO(LoggingMixin): # noqa: D101
self.handler.flush()
- def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+ def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) ->
None:
"""Upload the given log path to the remote storage."""
# No batch upload — logs stream in real-time. Flush pending events and
clean up.
self.close()
diff --git
a/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py
b/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py
index e9cc98ac632..d27530f7c87 100644
--- a/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py
+++ b/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py
@@ -46,7 +46,7 @@ class S3RemoteLogIO(LoggingMixin): # noqa: D101
processors = ()
- def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+ def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) ->
None:
"""Upload the given log path to the remote storage."""
path = pathlib.Path(path)
if path.is_absolute():
diff --git
a/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
b/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
index 970420a1e1b..22304637db2 100644
---
a/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
+++
b/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
@@ -46,7 +46,7 @@ class HdfsRemoteLogIO(LoggingMixin): # noqa: D101
processors = ()
- def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+ def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) ->
None:
"""Upload the given log path to the remote storage."""
path = Path(path)
if path.is_absolute():
diff --git
a/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py
b/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py
index f9a64b4929e..42c4ba9a61b 100644
---
a/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py
+++
b/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py
@@ -70,7 +70,7 @@ class GCSRemoteLogIO(LoggingMixin): # noqa: D101
processors = ()
- def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+ def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) ->
None:
"""Upload the given log path to the remote storage."""
path = Path(path)
if path.is_absolute():
diff --git
a/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
b/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
index 262f141fabb..41992d98ff2 100644
---
a/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
+++
b/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
@@ -176,7 +176,7 @@ class StackdriverRemoteLogIO(LoggingMixin):
return (proc,)
- def upload(self, path: os.PathLike | str, ti: RuntimeTI) -> None:
+ def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) ->
None:
"""Flush the transport and optionally delete local log files."""
self.transport.flush()
if self.delete_local_copy:
diff --git
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
index c32d5410b37..71704d82588 100644
---
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
+++
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
@@ -49,7 +49,7 @@ class WasbRemoteLogIO(LoggingMixin): # noqa: D101
processors = ()
- def upload(self, path: str | os.PathLike, ti: RuntimeTI):
+ def upload(self, path: str | os.PathLike, ti: RuntimeTI | None = None) ->
None:
"""Upload the given log path to the remote storage."""
path = Path(path)
if path.is_absolute():