jason810496 opened a new issue, #70266:
URL: https://github.com/apache/airflow/issues/70266

   Part of #70265 (related: #67056).
   
   ## Why
   
   #67056 decoupled remote logging from the hardcoded branches in 
`airflow_local_settings.py`: core and
   the Task SDK now resolve the handler via `ProvidersManager` dispatch on the
   `[logging] remote_base_log_folder` URL scheme, instantiating the provider 
class through a no-arg
   `from_config()` classmethod. This issue migrates the `gs` scheme.
   
   ## What
   
   - [ ] Add `GCSRemoteLogIO.from_config()` in
         
`providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py`, 
mirroring the
         legacy branch:
         
https://github.com/apache/airflow/blob/104ad12e190db7197fa303d98a3ab68879eafd33/airflow-core/src/airflow/config_templates/airflow_local_settings.py#L207-L224
         — including the `[logging] remote_task_handler_kwargs` IO-kwargs 
merge, `expanduser` on
         `base_log_folder`, and reading `[logging] google_key_path` (fallback 
`None`) into
         `gcp_key_path`, so behavior is unchanged for existing configs.
   - [ ] Register the `gs` scheme under a `remote-logging:` section in
         `providers/google/provider.yaml` and mirror it in
         `providers/google/src/airflow/providers/google/get_provider_info.py`.
   - [ ] Add tests mirroring `TestS3RemoteLogIOFromConfig` in
         `providers/amazon/tests/unit/amazon/aws/log/test_s3_task_handler.py`.
   - [ ] Verify end to end with a real system test: set up the actual backend 
yourself (a real
         service or a local equivalent), run a task with remote logging 
enabled, and confirm logs are
         uploaded and read back through the new dispatch path. Include the 
setup and verification
         results in the PR description.
   
   ## Reference
   
   Merged examples to follow: #69817 (s3), #69816 (cloudwatch). If 
`from_config` raises on a bad
   config, the shared factory falls back to the legacy path, so this is not a 
breaking change.
   
   The legacy branch derives a default connection id from 
`GCSHook.default_conn_name`; handle the
   connection id the same way the merged amazon PRs do (the hook reads
   `[logging] remote_log_conn_id` itself).
   


-- 
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]

Reply via email to