This is an automated email from the ASF dual-hosted git repository.
bbovenzi pushed a change to branch mapped-task-drawer
in repository https://gitbox.apache.org/repos/asf/airflow.git.
discard 74d739c add last scheduling decision and fix tests
discard 7cae4f0 add duration to tooltips
discard 235c9a9 minor details styling
discard 19da315 adjust panel width and use status color
discard cce0a36 remove modals
discard 683d228 task actions
discard 4d00224 task instance links
discard 194a371 dag run actions w/ react-query
discard d86f698 dag run actions
discard e106d17 make side panel collapsible, useTasks,
discard e9ab611 use API
discard e251bb5 add tooltip info to details
discard 1ea0b42 switch from drawer to details section
discard ba73495 fix hover and extra prop
discard 21b27b7 improve rendering and add selected dag run
discard cf02a41 reformat grid background colors
discard 4125e93 basic slide drawer
discard f4763f7 make UI and tree work with mapped tasks
add dd0724f Add guide for
DataprocInstantiateInlineWorkflowTemplateOperator (#22062)
add 4516256 EMR on EKS Sample DAG and Docs Update (#22095)
add f4e65a4 Upgrade PIP to 22.0.4 (just released) (#22081)
add cfd6ca6 Add new map_index field to log message (#22098)
add 8482b69 Show import error for 'airflow dags list' CLI command (#21991)
add a7d3992 bump sphinx-jinja (#22101)
add bd809bc If uploading task logs to S3 fails, retry once (#21981)
add b2e0f76 Fix typo in AWS doc (#22097)
add 4ac771c Fix spelling (#22107)
add 60ec508 bump moto version (#22099)
add eddf4a3 Replace build image bash script in CI with build image in
python (#22008)
add b1fdcdf Rename task-mapping trigger to 'expand' (#22106)
add 05f3a30 Add Codespaces support (#22082)
add d6031f9 Add map_index to RenderedTaskInstanceFields (#22004)
add f6c41ad Require SQLAlchemy 1.4 (#22114)
add 4afba90 Update logging-tasks.rst (#22116)
add 197b139 Use "dev" from main in "build-images" workflow (#22119)
add 3b9ae42 Allow searching/filtering Browse Task Instances view by
map_index (#22117)
add bedc1c8 Don't try to create automigration for celery tables (#22120)
add a4d514b Fix RTIF test against the apply-expand (#22121)
add 161fcbf Add webserver PodDisruptionBudget (#21735)
add 828d1cb Add support for ARM platform (#22127)
add 1264243 Rename wrongly named script for pushing prod images (#22139)
add 8c3f479 Switches backend to sqlite when building images (#22140)
add 57e711e Fix location of --push directive for prod images (#22142)
add 4388808 Add more template fields to `DbtCloudJobRunOperator` (#22126)
add f8c0131 Pass explicit overrides in `DbtCloudJobRunOperator` to
`DbtCloudHook` (#22136)
add b79abe5 Explicitly adding read permission to Docker entrypoint.
(#22135)
add da34ff4 Update cloud_composer.rst (#22124)
add afd3c13 Add queue button to click-on-DagRun interface. (#21555)
add 7354937 Reduce rerendering of TaskName component (#22156)
add 805cde3 Reduce rerendering of component (#22161)
add fde8572 Don't try to expand mapped tasks if they can't run (#22155)
add 887f356 Order filenames for migrations (#22168)
add 16ad03c Bugfix for retrying on provision failuers(#22137)
add 7c1fa58 Conditional skipping of provider tag when it exists (#22172)
add c65734e Fix ordering of migration filenames (#22169)
add 33ecca1 Use jobs check command for liveness probe check in airflow 2
(#22143)
add e63f6e3 additional information in the ECSOperator around support of
launch_type=EXTERNAL (#22093)
add 46a120d Fix RedshiftDataOperator and update doc (#22157)
add 9e06187 Add pip_install_options to PythonVirtualenvOperator (#22158)
add 03d0c70 Switch unit tests for oss operator and oss sensor in alibaba
provider to use mocks (#17617) (#22178)
add 7bd8b2d Add oss_task_handler into alibaba-provider and enable remote
logging to OSS (#21785)
add 9eb1a1c Improve StatusBox rendering in Grid view (#22170)
add d08284e Add map_index to XCom model and interface (#22112)
add 961225f Update links to new Grid/Graph view instead of relying on
redirects (#22167)
add 0ab1308 Show DagModel details. (#21868)
add 5d9b088 Remove Snowflake limits (#22181)
add d5c039d Use relation in TI join to RTIF (#22159)
add 03cdfe7 Avoid trying to kill container when it did not succeed for
Docker (#22145)
add 6e0a689 Remove some really old Airflow 1.10 compatibility shims
(#22187)
add 6583d06 Remove extra initialization overhead for mypy/flake (#22183)
add 1aa1d0f Prepare for Python 3.10 adding (#22075)
add a6d16a9 Remove warnings from kubernetes tests (#22190)
add 2499da8 Bump chart version to 1.6.0-dev (#22192)
add 067e6b5 Move last chart test to `tests` (#22198)
add 31550c8 Update instructions of doc updates when removing providers
from release (#22199)
add 4e70aeb Fix typo in mongo.rst (#22211)
add 42a891d Update ``GKEDeleteClusterOperator`,
``GKECreateClusterOperator`` docstrings (#22212)
add 9320230 fix contributing guide image master -> main (#22216)
add a7e4730 Make code snippet appear again (#22163)
add 69f5ab1 SFTP docs add example “extras” field using ``key_file``,
``private_key`` and ``host_key`` (#20757)
add 4543539 Support Uploading Bigger Files to Google Drive (#22179)
add a840561 AWS RDS integration fixes (#22125)
add af9d85c Skip some tests for Databricks from running on Python 3.10
(#22221)
add c108f26 Change the default `chunk_size` to a clear representation &
add documentation (#22222)
add 12e9e2c Databricks hook - retry on HTTP Status 429 as well (#21852)
add 6f8f535 Add sample dags and update doc for RedshiftClusterSensor,
RedshiftPauseClusterOperator and RedshiftResumeClusterOperator (#22128)
add 3931394 Issue 20453 - Fixes the test_http and test_sheets assert
calls only (#22104)
add 408a7d6 Add REST API endpoint for bulk update of DAGs (#19758)
add d3c65b6 Add the new Airflow Trove Classifier to setup.cfg (#22241)
add 6fee5e0 Use variable for vote end date for helm chart release email
(#22239)
add e6ed2f2 Remove celery from intersphinx mapping temporarily (#22254)
add bccc72e Fix assert_queries_count margin to be 0 by default (#22249)
add 4f6d24f use different logger to avoid duplicate log entry (#22256)
add c1ab8e2 Protect against accidental misuse of XCom.get_value() (#22244)
add 87c1246 Add Dataplex operators (#20377)
add 152539f Add vertical scrolling to grid view (#22134)
add 46c61ed EMR Sample DAG and Docs Update (#22189)
add 86cc07b Soften the wording in issue templates (#22200)
add 16adc03 Add documentation for Classifier release for March 2022
(#22226)
add 1950c18 Pause autorefresh if scheduler isn't running (#22151)
add 86ff203 make UI and tree work with mapped tasks
add 1a9e6f3 move ref and selection to providers
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (74d739c)
\
N -- N -- N refs/heads/mapped-task-drawer (1a9e6f3)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.devcontainer/devcontainer.json | 24 ++
.github/ISSUE_TEMPLATE/airflow_bug_report.yml | 2 +-
.../ISSUE_TEMPLATE/airflow_doc_issue_report.yml | 4 +-
.../airflow_helmchart_bug_report.yml | 2 +-
.../airflow_providers_bug_report.yml | 2 +-
.github/ISSUE_TEMPLATE/feature_request.yml | 2 +-
.github/workflows/build-images.yml | 10 +-
.github/workflows/ci.yml | 5 +-
.pre-commit-config.yaml | 15 +-
BREEZE.rst | 58 +--
CI.rst | 10 +
CONTRIBUTING.rst | 65 ++--
CONTRIBUTORS_QUICK_START.rst | 3 +-
Dockerfile | 13 +-
Dockerfile.ci | 16 +-
IMAGES.rst | 2 +-
README.md | 5 +-
STATIC_CODE_CHECKS.rst | 2 +
TESTING.rst | 4 +-
UPDATING.md | 4 +
airflow/api/common/mark_tasks.py | 53 ++-
airflow/api_connexion/endpoints/dag_endpoint.py | 58 ++-
.../endpoints/task_instance_endpoint.py | 63 +--
airflow/api_connexion/openapi/v1.yaml | 69 +++-
.../api_connexion/schemas/task_instance_schema.py | 4 +-
airflow/cli/commands/dag_command.py | 8 +
airflow/config_templates/airflow_local_settings.py | 11 +
airflow/config_templates/config.yml | 8 +-
airflow/config_templates/default_airflow.cfg | 8 +-
airflow/configuration.py | 1 +
airflow/decorators/base.py | 10 +-
airflow/decorators/task_group.py | 8 +-
airflow/jobs/scheduler_job.py | 3 +-
airflow/migrations/env.py | 4 +-
...chema.py => 0001_e3a246e0dc1_current_schema.py} | 0
...py => 0002_1507a7289a2f_create_is_encrypted.py} | 0
...y.py => 0003_13eb55f81627_for_compatibility.py} | 0
...38e90f54d61_more_logging_into_task_isntance.py} | 0
...dices.py => 0005_52d714495f0_job_id_indices.py} | 0
...py => 0006_502898887f84_adding_extra_to_log.py} | 0
...d_dagrun.py => 0007_1b38cef5b76e_add_dagrun.py} | 0
...ation.py => 0008_2e541a1dcfed_task_duration.py} | 0
...onfig.py => 0009_40e67319e3a9_dagrun_config.py} | 0
...10_561833c1c74b_add_password_column_to_user.py} | 0
..._end.py => 0011_4446e08588_dagrun_start_end.py} | 0
...3e_add_notification_sent_column_to_sla_miss.py} | 0
...fc896_add_a_column_to_track_the_encryption_.py} | 0
...fc09e3_add_is_encrypted_column_to_variable_.py} | 0
...e.py => 0015_2e82aab8ef20_rename_user_table.py} | 0
....py => 0016_211e584da130_add_ti_state_index.py} | 0
...7_64de9cddf6c9_add_task_fails_journal_table.py} | 0
...py => 0018_f2ca10b85618_add_dag_stats_table.py} | 0
...36f1_add_fractional_seconds_to_mysql_tables.py} | 0
... => 0020_8504051e801b_xcom_dag_task_indices.py} | 0
..._5e7d17757c7a_add_pid_field_to_taskinstance.py} | 0
...fa7_add_dag_id_state_index_on_dag_run_table.py} | 0
...23dc7_add_max_tries_column_to_task_instance.py} | 0
...e6c56_make_xcom_value_column_a_large_binary.py} | 0
...py => 0025_947454bf1dff_add_ti_job_id_index.py} | 0
...6_d2ae31099d61_increase_text_size_for_mysql.py} | 0
...> 0027_0e2a74e0fc9f_add_time_zone_awareness.py} | 0
...a1ff4_add_kubernetes_resource_checkpointing.py} | 0
...0d7c24_add_executor_config_to_task_instance.py} | 0
...d1215c0_add_kubernetes_scheduler_uniqueness.py} | 0
...e_heads.py => 0031_05f30312d566_merge_heads.py} | 0
..._f23433877c24_fix_mysql_not_null_constraint.py} | 0
...=> 0033_856955da8476_fix_sqlite_foreign_key.py} | 0
...fail.py => 0034_9635ae0956e7_index_taskfail.py} | 0
...dag.py => 0035_dd25f486b8ea_add_idx_log_dag.py} | 0
...0036_bf00311e1990_add_index_to_taskinstance.py} | 0
...0037_0a2a5b66e19d_add_task_reschedule_table.py} | 0
...ex.py => 0038_03bc53e68815_add_sm_dag_index.py} | 0
...py => 0039_41f5f12752f8_add_superuser_field.py} | 0
...g.py => 0040_c8ffec048a3b_add_fields_to_dag.py} | 0
...1_dd4ecb8fbee3_add_schedule_interval_to_dag.py} | 0
...e647c8_task_reschedule_fk_on_cascade_delete.py} | 0
...59344a4_make_taskinstance_pool_not_nullable.py} | 0
... 0044_d38e04c12aa2_add_serialized_dag_table.py} | 0
...=> 0045_b3b105409875_add_root_dag_id_to_dag.py} | 0
...67_change_datetime_to_datetime2_6_on_mssql_.py} | 0
...004c1210f153_increase_queue_name_size_limit.py} | 0
... => 0048_a56c9515abdc_remove_dag_stat_table.py} | 0
...e_heads.py => 0049_08364691d074_merge_heads.py} | 0
...35f_increase_length_for_connection_password.py} | 0
...e.py => 0051_7939bcff74ba_add_dagtags_table.py} | 0
...7d16b_add_pool_slots_field_to_task_instance.py} | 0
...5af_add_rendered_task_instance_fields_table.py} | 0
....py => 0054_952da73b5eff_add_dag_code_table.py} | 0
...ea_add_precision_to_execution_date_in_mysql.py} | 0
...3a5a_add_dag_hash_column_to_serialized_dag_.py} | 0
...bles.py => 0057_92c57b58940d_add_fab_tables.py} | 0
...b6f902_increase_length_of_fab_ab_view_menu_.py} | 0
...py => 0059_cf5dc11e79ad_drop_user_and_chart.py} | 0
...060_bbf4a7ad0465_remove_id_column_from_xcom.py} | 0
...1_b25a55525161_increase_length_of_pool_name.py} | 0
...py => 0062_3c20cacc0044_add_dagrun_run_type.py} | 0
..._8f966b9c467a_set_conn_type_as_non_nullable.py} | 0
...48763f6d53_add_unique_constraint_to_conn_id.py} | 0
...e38be357a868_update_schema_for_smart_sensor.py} | 0
...066_b247b1e3d1ed_add_queued_by_job_id_to_ti.py} | 0
...e1a11ece99cc_add_external_executor_id_to_ti.py} | 0
..._bef4f3d11e8b_drop_kuberesourceversion_and_.py} | 0
...06e2_add_scheduling_decision_to_dagrun_and_.py} | 0
..._fix_mssql_exec_date_rendered_task_instance.py} | 0
...071_364159666cbd_add_job_id_to_dagrun_table.py} | 0
...3f1493b9_add_k8s_yaml_to_rendered_templates.py} | 0
...=> 0073_849da589634d_prefix_dag_permissions.py} | 0
...074_2c6edca13270_resource_based_permissions.py} | 0
...3d9401f_add_description_field_to_connection.py} | 0
...aae_fix_description_field_in_connection_to_.py} | 0
...c86c_change_field_in_dagcode_to_mediumtext_.py} | 0
...c147f_remove_can_read_permission_on_config_.py} | 0
...da_increase_size_of_connection_extra_field_.py} | 0
...8646922c8a04_change_default_pool_slots_to_1.py} | 0
...42bb497a22_rename_last_scheduler_run_column.py} | 0
...b86_increase_pool_name_size_in_taskinstance.py} | 0
...5e7455d70_add_description_field_to_variable.py} | 0
...d25_resource_based_permissions_for_default_.py} | 0
...3827b8_add_queued_at_column_to_dagrun_table.py} | 0
...d12_add_max_active_runs_column_to_dagmodel_.py} | 0
...6fe78_add_index_on_state_dag_id_for_queued_.py} | 0
...88_83f031fd9f1c_improve_mssql_compatibility.py} | 0
...a3141f0_make_xcom_pkey_columns_non_nullable.py} | 0
...44a_rename_concurrency_column_in_dag_table_.py} | 0
...4bebd308c5f_add_trigger_table_and_task_info.py} | 0
...a_interval_start_end_to_dagmodel_and_dagrun.py} | 0
...3_7b2661a43ba3_taskinstance_keyed_to_dagrun.py} | 0
...23_add_has_import_errors_column_to_dagmodel.py} | 0
...> 0095_c381b21cb7e4_add_session_table_to_db.py} | 0
...587bdf053233_adding_index_for_dag_id_in_job.py} | 0
...7fdd3_increase_length_of_email_and_username.py} | 0
...3737b18f_added_timetable_description_column.py} | 0
...2e7089_add_task_log_filename_template_model.py} | 0
...3f75_add_taskmap_and_map_id_on_taskinstance.py} | 0
...14482_add_data_compressed_to_serialized_dag.py} | 0
...306b5b5ae4a_switch_xcom_table_to_use_run_id.py} | 14 +-
...103_c97c2ab6aa23_add_callback_request_table.py} | 0
...582_migrate_rtif_to_use_run_id_and_map_index.py | 168 ++++++++
airflow/models/baseoperator.py | 4 +-
airflow/models/dag.py | 13 +-
airflow/models/dagrun.py | 21 +-
airflow/models/mappedoperator.py | 20 +-
airflow/models/renderedtifields.py | 94 +++--
airflow/models/taskinstance.py | 11 +-
airflow/models/xcom.py | 145 ++++---
airflow/operators/python.py | 5 +
airflow/operators/trigger_dagrun.py | 2 +-
airflow/providers/airbyte/CHANGELOG.rst | 8 +
airflow/providers/airbyte/provider.yaml | 1 +
airflow/providers/alibaba/CHANGELOG.rst | 16 +
airflow/providers/alibaba/cloud/hooks/oss.py | 96 ++++-
.../providers/alibaba/cloud/log}/__init__.py | 0
.../cloud/log/oss_task_handler.py} | 109 +++---
airflow/providers/alibaba/provider.yaml | 4 +
airflow/providers/amazon/CHANGELOG.rst | 32 +-
.../{example_ecs_fargate.py => example_ecs_ec2.py} | 23 +-
.../amazon/aws/example_dags/example_ecs_fargate.py | 14 +-
.../amazon/aws/example_dags/example_emr_eks_job.py | 20 +-
.../example_emr_job_flow_automatic_steps.py | 41 +-
.../example_emr_job_flow_manual_steps.py | 55 +--
.../amazon/aws/example_dags/example_rds.py | 10 +-
.../aws/example_dags/example_redshift_cluster.py | 71 ++++
.../example_redshift_data_execute_sql.py | 58 ++-
airflow/providers/amazon/aws/hooks/base_aws.py | 7 +-
airflow/providers/amazon/aws/hooks/emr.py | 2 +-
.../providers/amazon/aws/log/s3_task_handler.py | 29 +-
airflow/providers/amazon/aws/operators/ecs.py | 12 +-
airflow/providers/amazon/aws/operators/emr.py | 21 +-
airflow/providers/amazon/aws/operators/rds.py | 20 +-
.../amazon/aws/operators/redshift_data.py | 25 +-
airflow/providers/amazon/aws/sensors/emr.py | 12 +
airflow/providers/amazon/aws/sensors/rds.py | 14 +-
.../amazon/aws/sensors/redshift_cluster.py | 4 +
airflow/providers/amazon/provider.yaml | 2 +-
airflow/providers/apache/beam/CHANGELOG.rst | 8 +
airflow/providers/apache/beam/provider.yaml | 1 +
airflow/providers/apache/cassandra/CHANGELOG.rst | 8 +
airflow/providers/apache/cassandra/provider.yaml | 1 +
airflow/providers/apache/drill/CHANGELOG.rst | 8 +
airflow/providers/apache/drill/provider.yaml | 1 +
airflow/providers/apache/druid/CHANGELOG.rst | 8 +
airflow/providers/apache/druid/provider.yaml | 1 +
airflow/providers/apache/hdfs/CHANGELOG.rst | 8 +
airflow/providers/apache/hdfs/provider.yaml | 1 +
airflow/providers/apache/hive/CHANGELOG.rst | 8 +
airflow/providers/apache/hive/provider.yaml | 1 +
airflow/providers/apache/kylin/CHANGELOG.rst | 8 +
airflow/providers/apache/kylin/provider.yaml | 1 +
airflow/providers/apache/livy/CHANGELOG.rst | 8 +
airflow/providers/apache/livy/provider.yaml | 1 +
airflow/providers/apache/pig/CHANGELOG.rst | 8 +
airflow/providers/apache/pig/provider.yaml | 1 +
airflow/providers/apache/pinot/CHANGELOG.rst | 8 +
airflow/providers/apache/pinot/provider.yaml | 1 +
airflow/providers/apache/spark/CHANGELOG.rst | 8 +
airflow/providers/apache/spark/provider.yaml | 1 +
airflow/providers/apache/sqoop/CHANGELOG.rst | 8 +
airflow/providers/apache/sqoop/provider.yaml | 1 +
airflow/providers/asana/CHANGELOG.rst | 8 +
airflow/providers/asana/provider.yaml | 1 +
airflow/providers/celery/CHANGELOG.rst | 8 +
airflow/providers/celery/provider.yaml | 1 +
airflow/providers/cloudant/CHANGELOG.rst | 8 +
airflow/providers/cloudant/provider.yaml | 1 +
airflow/providers/cncf/kubernetes/CHANGELOG.rst | 8 +
airflow/providers/cncf/kubernetes/provider.yaml | 1 +
airflow/providers/databricks/CHANGELOG.rst | 14 +
airflow/providers/databricks/hooks/databricks.py | 4 +-
.../providers/databricks/hooks/databricks_base.py | 196 +++++-----
.../providers/databricks/operators/databricks.py | 8 +
airflow/providers/databricks/provider.yaml | 4 +
airflow/providers/datadog/CHANGELOG.rst | 8 +
airflow/providers/datadog/provider.yaml | 1 +
airflow/providers/dbt/cloud/operators/dbt.py | 16 +-
airflow/providers/dbt/cloud/provider.yaml | 2 +-
airflow/providers/dingding/CHANGELOG.rst | 8 +
airflow/providers/dingding/provider.yaml | 1 +
airflow/providers/discord/CHANGELOG.rst | 8 +
airflow/providers/discord/provider.yaml | 1 +
airflow/providers/docker/CHANGELOG.rst | 13 +
airflow/providers/docker/operators/docker.py | 3 +
airflow/providers/docker/provider.yaml | 1 +
airflow/providers/elasticsearch/CHANGELOG.rst | 8 +
airflow/providers/elasticsearch/provider.yaml | 1 +
airflow/providers/exasol/CHANGELOG.rst | 8 +
airflow/providers/exasol/provider.yaml | 1 +
airflow/providers/facebook/CHANGELOG.rst | 8 +
airflow/providers/facebook/provider.yaml | 1 +
airflow/providers/ftp/CHANGELOG.rst | 8 +
airflow/providers/ftp/provider.yaml | 1 +
airflow/providers/github/CHANGELOG.rst | 8 +
airflow/providers/github/provider.yaml | 1 +
airflow/providers/google/CHANGELOG.rst | 28 ++
.../google/cloud/example_dags/example_dataplex.py | 122 ++++++
.../google/cloud/example_dags/example_dataproc.py | 7 +
airflow/providers/google/cloud/hooks/cloud_sql.py | 2 +-
airflow/providers/google/cloud/hooks/dataflow.py | 2 +-
airflow/providers/google/cloud/hooks/dataplex.py | 247 ++++++++++++
airflow/providers/google/cloud/hooks/gdm.py | 2 +-
airflow/providers/google/cloud/links/base.py | 4 +-
airflow/providers/google/cloud/links/dataplex.py | 76 ++++
airflow/providers/google/cloud/links/dataproc.py | 8 +-
.../providers/google/cloud/operators/bigquery.py | 29 +-
.../providers/google/cloud/operators/dataplex.py | 428 ++++++++++++++++++++
.../providers/google/cloud/operators/dataproc.py | 7 +-
.../google/cloud/operators/dataproc_metastore.py | 8 +-
.../google/cloud/operators/kubernetes_engine.py | 4 +-
.../providers/google/cloud/operators/mlengine.py | 22 +-
airflow/providers/google/cloud/sensors/dataplex.py | 119 ++++++
airflow/providers/google/provider.yaml | 17 +
airflow/providers/google/suite/hooks/drive.py | 20 +-
airflow/providers/grpc/CHANGELOG.rst | 8 +
airflow/providers/grpc/provider.yaml | 1 +
airflow/providers/hashicorp/CHANGELOG.rst | 8 +
airflow/providers/hashicorp/provider.yaml | 1 +
airflow/providers/http/CHANGELOG.rst | 8 +
airflow/providers/http/provider.yaml | 1 +
airflow/providers/imap/CHANGELOG.rst | 8 +
airflow/providers/imap/provider.yaml | 1 +
airflow/providers/influxdb/CHANGELOG.rst | 8 +
airflow/providers/influxdb/provider.yaml | 1 +
airflow/providers/jdbc/CHANGELOG.rst | 8 +
airflow/providers/jdbc/provider.yaml | 1 +
airflow/providers/jenkins/CHANGELOG.rst | 8 +
airflow/providers/jenkins/provider.yaml | 1 +
airflow/providers/jira/CHANGELOG.rst | 8 +
airflow/providers/jira/provider.yaml | 1 +
airflow/providers/microsoft/azure/CHANGELOG.rst | 13 +
.../microsoft/azure/operators/data_factory.py | 4 +-
airflow/providers/microsoft/azure/provider.yaml | 1 +
airflow/providers/microsoft/mssql/CHANGELOG.rst | 8 +
airflow/providers/microsoft/mssql/provider.yaml | 1 +
airflow/providers/microsoft/psrp/CHANGELOG.rst | 8 +
airflow/providers/microsoft/psrp/provider.yaml | 1 +
airflow/providers/microsoft/winrm/CHANGELOG.rst | 8 +
airflow/providers/microsoft/winrm/provider.yaml | 1 +
airflow/providers/mongo/CHANGELOG.rst | 8 +
airflow/providers/mongo/provider.yaml | 1 +
airflow/providers/mysql/CHANGELOG.rst | 8 +
airflow/providers/mysql/provider.yaml | 1 +
airflow/providers/neo4j/CHANGELOG.rst | 8 +
airflow/providers/neo4j/provider.yaml | 1 +
airflow/providers/odbc/CHANGELOG.rst | 8 +
airflow/providers/odbc/provider.yaml | 1 +
airflow/providers/openfaas/CHANGELOG.rst | 8 +
airflow/providers/openfaas/provider.yaml | 1 +
airflow/providers/opsgenie/CHANGELOG.rst | 8 +
airflow/providers/opsgenie/provider.yaml | 1 +
airflow/providers/oracle/CHANGELOG.rst | 8 +
airflow/providers/oracle/provider.yaml | 1 +
airflow/providers/pagerduty/CHANGELOG.rst | 8 +
airflow/providers/pagerduty/provider.yaml | 1 +
airflow/providers/papermill/CHANGELOG.rst | 8 +
airflow/providers/papermill/provider.yaml | 1 +
airflow/providers/plexus/CHANGELOG.rst | 8 +
airflow/providers/plexus/provider.yaml | 1 +
airflow/providers/postgres/CHANGELOG.rst | 15 +-
airflow/providers/postgres/provider.yaml | 1 +
airflow/providers/presto/CHANGELOG.rst | 8 +
airflow/providers/presto/provider.yaml | 1 +
airflow/providers/qubole/CHANGELOG.rst | 13 +
airflow/providers/qubole/operators/qubole.py | 4 +-
airflow/providers/qubole/provider.yaml | 1 +
airflow/providers/redis/CHANGELOG.rst | 8 +
airflow/providers/redis/provider.yaml | 1 +
airflow/providers/salesforce/CHANGELOG.rst | 8 +
airflow/providers/salesforce/provider.yaml | 1 +
airflow/providers/samba/CHANGELOG.rst | 8 +
airflow/providers/samba/provider.yaml | 1 +
airflow/providers/segment/CHANGELOG.rst | 8 +
airflow/providers/segment/provider.yaml | 1 +
airflow/providers/sendgrid/CHANGELOG.rst | 8 +
airflow/providers/sendgrid/provider.yaml | 1 +
airflow/providers/sftp/CHANGELOG.rst | 8 +
airflow/providers/sftp/provider.yaml | 1 +
airflow/providers/singularity/CHANGELOG.rst | 8 +
airflow/providers/singularity/provider.yaml | 1 +
airflow/providers/slack/CHANGELOG.rst | 7 +
airflow/providers/slack/provider.yaml | 1 +
airflow/providers/snowflake/CHANGELOG.rst | 8 +
airflow/providers/snowflake/hooks/snowflake.py | 7 +-
airflow/providers/snowflake/provider.yaml | 1 +
airflow/providers/sqlite/CHANGELOG.rst | 8 +
airflow/providers/sqlite/provider.yaml | 1 +
airflow/providers/ssh/CHANGELOG.rst | 8 +
airflow/providers/ssh/provider.yaml | 1 +
airflow/providers/tableau/CHANGELOG.rst | 8 +
airflow/providers/tableau/provider.yaml | 1 +
airflow/providers/telegram/CHANGELOG.rst | 8 +
airflow/providers/telegram/provider.yaml | 1 +
airflow/providers/trino/CHANGELOG.rst | 18 +
airflow/providers/trino/provider.yaml | 1 +
airflow/providers/vertica/CHANGELOG.rst | 8 +
airflow/providers/vertica/provider.yaml | 1 +
airflow/providers/yandex/CHANGELOG.rst | 8 +
airflow/providers/yandex/provider.yaml | 1 +
airflow/providers/zendesk/CHANGELOG.rst | 8 +
airflow/providers/zendesk/provider.yaml | 1 +
airflow/serialization/serialized_objects.py | 2 +-
airflow/ti_deps/dep_context.py | 34 +-
airflow/ti_deps/deps/mapped_task_expanded.py | 2 +
airflow/utils/db.py | 7 +-
airflow/utils/python_virtualenv.py | 22 +-
airflow/utils/task_group.py | 2 +-
airflow/www/package.json | 1 +
airflow/www/static/js/calendar.js | 11 +-
airflow/www/static/js/dag.js | 8 +-
airflow/www/static/js/dags.js | 5 +-
airflow/www/static/js/graph.js | 3 +-
airflow/www/static/js/tree/StatusBox.jsx | 55 ++-
airflow/www/static/js/tree/TaskName.jsx | 60 +++
airflow/www/static/js/tree/Tree.jsx | 52 +--
airflow/www/static/js/tree/dagRuns/Bar.jsx | 65 ++--
airflow/www/static/js/tree/dagRuns/index.jsx | 10 +-
airflow/www/static/js/tree/details/Header.jsx | 12 +-
airflow/www/static/js/tree/details/index.jsx | 9 +-
airflow/www/static/js/tree/index.jsx | 13 +-
.../www/static/js/tree/providers/containerRef.jsx | 37 ++
airflow/www/static/js/tree/providers/selection.jsx | 52 +++
airflow/www/static/js/tree/renderTaskRows.jsx | 104 +++--
airflow/www/static/js/tree/renderTaskRows.test.jsx | 4 +-
airflow/www/static/js/tree/useTreeData.js | 5 +-
airflow/www/static/js/tree/useTreeData.test.jsx | 15 +-
airflow/www/templates/airflow/calendar.html | 3 +-
airflow/www/templates/airflow/dag.html | 41 +-
airflow/www/templates/airflow/dag_details.html | 13 +
airflow/www/templates/airflow/dags.html | 2 +-
airflow/www/templates/airflow/main.html | 7 +
airflow/www/views.py | 82 +++-
breeze | 9 +-
breeze-complete | 5 +-
chart/Chart.yaml | 89 +----
chart/dockerfiles/pgbouncer-exporter/Dockerfile | 7 +-
chart/templates/_helpers.yaml | 35 ++
.../templates/scheduler/scheduler-deployment.yaml | 8 +-
.../templates/triggerer/triggerer-deployment.yaml | 8 +-
.../webserver/webserver-poddisruptionbudget.yaml | 46 +++
chart/values.schema.json | 57 ++-
chart/values.yaml | 47 +--
dev/README_RELEASE_HELM_CHART.md | 16 +-
dev/README_RELEASE_PROVIDER_PACKAGES.md | 12 +
dev/REFRESHING_CI_CACHE.md | 11 +-
dev/TRACKING_BACKTRACKING_ISSUES.md | 2 +-
dev/breeze/src/airflow_breeze/breeze.py | 58 ++-
dev/breeze/src/airflow_breeze/ci/build_params.py | 4 +-
dev/breeze/src/airflow_breeze/global_constants.py | 9 +-
dev/breeze/src/airflow_breeze/pre_commit_ids.py | 1 +
dev/breeze/src/airflow_breeze/utils/path_utils.py | 2 +-
.../src/airflow_ci/find_newer_dependencies.py | 2 +-
dev/breeze/tests/test_cache.py | 4 +-
dev/provider_packages/SETUP_TEMPLATE.cfg.jinja2 | 43 +-
dev/provider_packages/SETUP_TEMPLATE.py.jinja2 | 52 +--
dev/provider_packages/prepare_provider_packages.py | 18 +-
dev/provider_packages/tag_providers.sh | 3 +-
dev/refresh_images.sh | 4 +-
docs/apache-airflow-providers-airbyte/commits.rst | 3 +-
docs/apache-airflow-providers-airbyte/index.rst | 6 +-
docs/apache-airflow-providers-alibaba/commits.rst | 14 +-
docs/apache-airflow-providers-alibaba/index.rst | 3 +-
.../logging/index.rst | 0
.../logging/oss-task-handler.rst | 32 +-
docs/apache-airflow-providers-amazon/commits.rst | 28 +-
.../connections/aws.rst | 2 +-
docs/apache-airflow-providers-amazon/index.rst | 6 +-
.../operators/ecs.rst | 86 +++-
.../operators/emr.rst | 149 ++++---
.../operators/emr_eks.rst | 38 +-
.../operators/redshift_cluster.rst | 67 +++-
.../operators/redshift_data.rst | 39 +-
.../commits.rst | 3 +-
.../apache-airflow-providers-apache-beam/index.rst | 6 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
.../commits.rst | 11 +
.../index.rst | 6 +-
.../commits.rst | 3 +-
.../apache-airflow-providers-apache-hdfs/index.rst | 2 +-
.../commits.rst | 3 +-
.../apache-airflow-providers-apache-hive/index.rst | 6 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
.../commits.rst | 3 +-
.../apache-airflow-providers-apache-livy/index.rst | 6 +-
.../commits.rst | 3 +-
docs/apache-airflow-providers-apache-pig/index.rst | 2 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
.../commits.rst | 9 +-
.../index.rst | 2 +-
docs/apache-airflow-providers-asana/commits.rst | 3 +-
docs/apache-airflow-providers-asana/index.rst | 2 +-
docs/apache-airflow-providers-celery/commits.rst | 3 +-
docs/apache-airflow-providers-celery/index.rst | 2 +-
docs/apache-airflow-providers-cloudant/commits.rst | 3 +-
docs/apache-airflow-providers-cloudant/index.rst | 2 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
.../commits.rst | 16 +-
docs/apache-airflow-providers-databricks/index.rst | 2 +-
.../operators/run_now.rst | 2 +
.../operators/submit_run.rst | 2 +
docs/apache-airflow-providers-datadog/commits.rst | 3 +-
docs/apache-airflow-providers-datadog/index.rst | 2 +-
.../apache-airflow-providers-dbt-cloud/commits.rst | 14 +-
docs/apache-airflow-providers-dingding/commits.rst | 3 +-
docs/apache-airflow-providers-dingding/index.rst | 6 +-
docs/apache-airflow-providers-discord/commits.rst | 3 +-
docs/apache-airflow-providers-discord/index.rst | 6 +-
docs/apache-airflow-providers-docker/commits.rst | 12 +
docs/apache-airflow-providers-docker/index.rst | 2 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
docs/apache-airflow-providers-exasol/commits.rst | 11 +
docs/apache-airflow-providers-exasol/index.rst | 2 +-
docs/apache-airflow-providers-facebook/commits.rst | 3 +-
docs/apache-airflow-providers-facebook/index.rst | 2 +-
docs/apache-airflow-providers-ftp/commits.rst | 3 +-
docs/apache-airflow-providers-ftp/index.rst | 2 +-
docs/apache-airflow-providers-github/commits.rst | 3 +-
docs/apache-airflow-providers-github/index.rst | 2 +-
docs/apache-airflow-providers-google/commits.rst | 24 ++
docs/apache-airflow-providers-google/index.rst | 7 +-
.../operators/cloud/cloud_composer.rst | 4 +-
.../operators/cloud/dataplex.rst | 105 +++++
.../operators/cloud/dataproc.rst | 10 +
docs/apache-airflow-providers-grpc/commits.rst | 3 +-
docs/apache-airflow-providers-grpc/index.rst | 2 +-
.../apache-airflow-providers-hashicorp/commits.rst | 3 +-
docs/apache-airflow-providers-hashicorp/index.rst | 6 +-
docs/apache-airflow-providers-http/commits.rst | 3 +-
docs/apache-airflow-providers-http/index.rst | 2 +-
docs/apache-airflow-providers-imap/commits.rst | 11 +
docs/apache-airflow-providers-imap/index.rst | 2 +-
docs/apache-airflow-providers-influxdb/commits.rst | 3 +-
docs/apache-airflow-providers-influxdb/index.rst | 2 +-
docs/apache-airflow-providers-jdbc/commits.rst | 11 +
docs/apache-airflow-providers-jdbc/index.rst | 2 +-
docs/apache-airflow-providers-jenkins/commits.rst | 3 +-
docs/apache-airflow-providers-jenkins/index.rst | 2 +-
docs/apache-airflow-providers-jira/commits.rst | 3 +-
docs/apache-airflow-providers-jira/index.rst | 2 +-
.../commits.rst | 15 +-
.../index.rst | 6 +-
.../commits.rst | 11 +
.../index.rst | 10 +-
.../commits.rst | 3 +-
.../index.rst | 2 +-
.../commits.rst | 9 +-
.../index.rst | 2 +-
docs/apache-airflow-providers-mongo/commits.rst | 3 +-
.../connections/mongo.rst | 2 +-
docs/apache-airflow-providers-mongo/index.rst | 2 +-
docs/apache-airflow-providers-mysql/commits.rst | 9 +-
docs/apache-airflow-providers-mysql/index.rst | 16 +-
docs/apache-airflow-providers-neo4j/commits.rst | 3 +-
docs/apache-airflow-providers-neo4j/index.rst | 2 +-
docs/apache-airflow-providers-odbc/commits.rst | 11 +
docs/apache-airflow-providers-odbc/index.rst | 2 +-
docs/apache-airflow-providers-openfaas/commits.rst | 3 +-
docs/apache-airflow-providers-openfaas/index.rst | 2 +-
docs/apache-airflow-providers-opsgenie/commits.rst | 3 +-
docs/apache-airflow-providers-opsgenie/index.rst | 2 +-
docs/apache-airflow-providers-oracle/commits.rst | 9 +-
docs/apache-airflow-providers-oracle/index.rst | 2 +-
.../apache-airflow-providers-pagerduty/commits.rst | 3 +-
docs/apache-airflow-providers-pagerduty/index.rst | 2 +-
.../apache-airflow-providers-papermill/commits.rst | 3 +-
docs/apache-airflow-providers-papermill/index.rst | 2 +-
docs/apache-airflow-providers-plexus/commits.rst | 3 +-
docs/apache-airflow-providers-plexus/index.rst | 2 +-
docs/apache-airflow-providers-postgres/commits.rst | 9 +-
docs/apache-airflow-providers-postgres/index.rst | 6 +-
docs/apache-airflow-providers-presto/commits.rst | 3 +-
docs/apache-airflow-providers-presto/index.rst | 6 +-
docs/apache-airflow-providers-qubole/commits.rst | 15 +-
docs/apache-airflow-providers-qubole/index.rst | 2 +-
docs/apache-airflow-providers-redis/commits.rst | 3 +-
docs/apache-airflow-providers-redis/index.rst | 2 +-
.../commits.rst | 3 +-
docs/apache-airflow-providers-salesforce/index.rst | 6 +-
docs/apache-airflow-providers-samba/commits.rst | 3 +-
docs/apache-airflow-providers-samba/index.rst | 2 +-
docs/apache-airflow-providers-segment/commits.rst | 3 +-
docs/apache-airflow-providers-segment/index.rst | 2 +-
docs/apache-airflow-providers-sendgrid/commits.rst | 11 +
docs/apache-airflow-providers-sendgrid/index.rst | 2 +-
docs/apache-airflow-providers-sftp/commits.rst | 3 +-
.../connections/sftp.rst | 14 +-
docs/apache-airflow-providers-sftp/index.rst | 6 +-
.../commits.rst | 3 +-
.../apache-airflow-providers-singularity/index.rst | 2 +-
docs/apache-airflow-providers-slack/commits.rst | 11 +
docs/apache-airflow-providers-slack/index.rst | 6 +-
.../apache-airflow-providers-snowflake/commits.rst | 22 ++
docs/apache-airflow-providers-snowflake/index.rst | 16 +-
docs/apache-airflow-providers-sqlite/commits.rst | 11 +
docs/apache-airflow-providers-sqlite/index.rst | 2 +-
docs/apache-airflow-providers-ssh/commits.rst | 11 +
docs/apache-airflow-providers-ssh/index.rst | 2 +-
docs/apache-airflow-providers-tableau/commits.rst | 11 +
docs/apache-airflow-providers-tableau/index.rst | 2 +-
docs/apache-airflow-providers-telegram/commits.rst | 3 +-
docs/apache-airflow-providers-telegram/index.rst | 2 +-
docs/apache-airflow-providers-trino/commits.rst | 3 +-
docs/apache-airflow-providers-trino/index.rst | 6 +-
docs/apache-airflow-providers-vertica/commits.rst | 11 +
docs/apache-airflow-providers-vertica/index.rst | 2 +-
docs/apache-airflow-providers-yandex/commits.rst | 1 +
docs/apache-airflow-providers-yandex/index.rst | 2 +-
docs/apache-airflow-providers-zendesk/commits.rst | 3 +-
docs/apache-airflow-providers-zendesk/index.rst | 2 +-
.../howto/create-update-providers.rst | 38 ++
.../logging-monitoring/logging-tasks.rst | 2 +-
docs/apache-airflow/migrations-ref.rst | 6 +-
docs/conf.py | 12 +-
docs/docker-stack/build-arg-ref.rst | 2 +-
docs/exts/providers_packages_ref.py | 2 +-
docs/spelling_wordlist.txt | 4 +-
images/workflow.png | Bin 12677 -> 12318 bytes
scripts/ci/docker-compose/_docker.env | 2 +
scripts/ci/docker-compose/base.yml | 2 +
.../ci/docker-compose/devcontainer-mysql.yml | 9 +
.../ci/docker-compose/devcontainer-postgres.yml | 9 +
scripts/ci/docker-compose/devcontainer.env | 52 +++
.../ci/docker-compose/devcontainer.yml | 29 +-
scripts/ci/docker-compose/local-all-sources.yml | 2 -
scripts/ci/docker-compose/local.yml | 2 -
...tion_images.sh => ci_push_empty_prod_images.sh} | 0
scripts/ci/libraries/_build_images.sh | 58 +--
scripts/ci/libraries/_initialization.sh | 19 +-
scripts/ci/libraries/_kind.sh | 21 +-
scripts/ci/libraries/_runs.sh | 20 +-
scripts/ci/pre_commit/pre_commit_check_license.sh | 7 +-
.../pre_commit/pre_commit_check_xcom_get_value.py | 60 +++
scripts/ci/pre_commit/pre_commit_flake8.sh | 10 +-
.../ci/pre_commit/pre_commit_lint_dockerfile.sh | 7 +-
.../pre_commit/pre_commit_migration_reference.py | 26 +-
.../pre_commit/pre_commit_migration_reference.sh | 8 +-
scripts/ci/pre_commit/pre_commit_mypy.sh | 4 +-
.../ci_install_and_test_provider_packages.sh | 4 +-
scripts/docker/install_mssql.sh | 5 +
scripts/docker/install_mysql.sh | 5 +
scripts/docker/install_pipx_tools.sh | 15 +-
scripts/in_container/bin/install_kubectl.sh | 3 +-
scripts/in_container/bin/install_terraform.sh | 3 +-
scripts/in_container/check_environment.sh | 16 +-
scripts/in_container/entrypoint_ci.sh | 283 +++++++-------
scripts/in_container/prod/entrypoint_prod.sh | 10 +
.../run_prepare_provider_documentation.sh | 2 +-
setup.cfg | 3 +-
setup.py | 25 +-
tests/always/test_project_structure.py | 1 -
tests/api/common/test_mark_tasks.py | 55 ++-
tests/api_connexion/endpoints/test_dag_endpoint.py | 433 ++++++++++++++++++++-
.../test_mapped_task_instance_endpoint.py | 4 +-
.../endpoints/test_task_instance_endpoint.py | 52 +++
.../schemas/test_task_instance_schema.py | 4 +-
tests/{timetables => charts}/__init__.py | 0
{chart/tests => tests/charts}/conftest.py | 16 +-
.../charts}/helm_template_generator.py | 8 +-
.../tests => tests/charts}/test_airflow_common.py | 2 +-
{chart/tests => tests/charts}/test_annotations.py | 2 +-
.../charts}/test_basic_helm_chart.py | 2 +-
.../charts}/test_celery_kubernetes_executor.py | 2 +-
.../tests => tests/charts}/test_chart_quality.py | 11 +-
{chart/tests => tests/charts}/test_cleanup_pods.py | 2 +-
{chart/tests => tests/charts}/test_configmap.py | 2 +-
.../tests => tests/charts}/test_create_user_job.py | 2 +-
.../charts}/test_dags_persistent_volume_claim.py | 2 +-
.../charts}/test_elasticsearch_secret.py | 2 +-
.../charts}/test_extra_configmaps_secrets.py | 2 +-
.../charts}/test_extra_env_env_from.py | 2 +-
{chart/tests => tests/charts}/test_flower.py | 2 +-
.../charts}/test_git_sync_scheduler.py | 2 +-
.../charts}/test_git_sync_webserver.py | 2 +-
.../tests => tests/charts}/test_git_sync_worker.py | 2 +-
.../tests => tests/charts}/test_ingress_flower.py | 2 +-
{chart/tests => tests/charts}/test_ingress_web.py | 2 +-
{chart/tests => tests/charts}/test_keda.py | 2 +-
{chart/tests => tests/charts}/test_kerberos.py | 2 +-
{chart/tests => tests/charts}/test_limit_ranges.py | 2 +-
.../charts}/test_logs_persistent_volume_claim.py | 2 +-
.../charts}/test_metadata_connection_secret.py | 2 +-
.../charts}/test_migrate_database_job.py | 2 +-
.../tests => tests/charts}/test_pdb_pgbouncer.py | 2 +-
.../tests => tests/charts}/test_pdb_scheduler.py | 2 +-
.../charts/test_pdb_webserver.py | 12 +-
{chart/tests => tests/charts}/test_pgbouncer.py | 2 +-
.../charts}/test_pod_launcher_role.py | 2 +-
.../charts}/test_pod_template_file.py | 9 +-
{chart/tests => tests/charts}/test_rbac.py | 2 +-
.../charts}/test_rbac_pod_log_reader.py | 2 +-
{chart/tests => tests/charts}/test_redis.py | 2 +-
.../tests => tests/charts}/test_resource_quota.py | 2 +-
.../test_result_backend_connection_secret.py | 2 +-
.../tests => tests/charts}/test_scc_rolebinding.py | 2 +-
{chart/tests => tests/charts}/test_scheduler.py | 2 +-
.../charts}/test_security_context.py | 2 +-
{chart/tests => tests/charts}/test_statsd.py | 2 +-
{chart/tests => tests/charts}/test_triggerer.py | 2 +-
{chart/tests => tests/charts}/test_webserver.py | 2 +-
{chart/tests => tests/charts}/test_worker.py | 2 +-
tests/cli/commands/test_dag_command.py | 9 +
tests/conftest.py | 23 +-
tests/dags/test_mapped_classic.py | 2 +-
tests/dags/test_mapped_taskflow.py | 2 +-
tests/decorators/test_python.py | 32 +-
tests/jobs/test_scheduler_job.py | 4 +-
tests/models/test_baseoperator.py | 16 +-
tests/models/test_dagrun.py | 38 +-
tests/models/test_renderedtifields.py | 59 ++-
tests/models/test_taskinstance.py | 14 +-
tests/models/test_xcom.py | 10 +-
tests/operators/test_python.py | 26 +-
tests/providers/alibaba/cloud/hooks/test_oss.py | 52 ++-
.../alibaba/cloud/log}/__init__.py | 0
.../alibaba/cloud/log/test_oss_task_handler.py | 135 +++++++
.../providers/alibaba/cloud/operators/test_oss.py | 163 ++++----
.../alibaba/cloud/sensors/test_oss_key.py | 102 ++---
tests/providers/alibaba/cloud/utils/oss_mock.py | 1 +
tests/providers/amazon/aws/operators/test_ecs.py | 7 +
tests/providers/amazon/aws/operators/test_rds.py | 42 +-
.../amazon/aws/operators/test_redshift_data.py | 26 +-
tests/providers/amazon/aws/sensors/test_rds.py | 20 +-
.../operators/test_spark_kubernetes_system.py | 4 -
.../providers/databricks/hooks/test_databricks.py | 61 ++-
.../databricks/operators/test_databricks.py | 45 ++-
.../databricks/operators/test_databricks_sql.py | 8 +-
.../dbt/cloud/operators/test_dbt_cloud.py | 21 +-
.../providers/google/cloud/hooks/test_dataplex.py | 120 ++++++
.../google/cloud/operators/test_dataplex.py | 179 +++++++++
.../google/cloud/operators/test_dataplex_system.py | 45 +++
.../google/cloud/sensors/test_dataplex.py | 103 +++++
.../google/suite/operators/test_sheets.py | 9 +-
tests/providers/http/operators/test_http.py | 6 +-
.../snowflake/operators/test_snowflake_system.py | 35 --
tests/sensors/test_external_task_sensor.py | 2 +-
tests/serialization/test_dag_serialization.py | 10 +-
tests/test_utils/asserts.py | 16 +-
tests/test_utils/system_tests_class.py | 9 -
tests/utils/test_python_virtualenv.py | 19 +
tests/utils/test_task_group.py | 8 +-
tests/www/views/test_views_base.py | 2 +-
687 files changed, 7172 insertions(+), 2158 deletions(-)
create mode 100644 .devcontainer/devcontainer.json
rename airflow/migrations/versions/{e3a246e0dc1_current_schema.py =>
0001_e3a246e0dc1_current_schema.py} (100%)
rename airflow/migrations/versions/{1507a7289a2f_create_is_encrypted.py =>
0002_1507a7289a2f_create_is_encrypted.py} (100%)
rename airflow/migrations/versions/{13eb55f81627_for_compatibility.py =>
0003_13eb55f81627_for_compatibility.py} (100%)
rename
airflow/migrations/versions/{338e90f54d61_more_logging_into_task_isntance.py =>
0004_338e90f54d61_more_logging_into_task_isntance.py} (100%)
rename airflow/migrations/versions/{52d714495f0_job_id_indices.py =>
0005_52d714495f0_job_id_indices.py} (100%)
rename airflow/migrations/versions/{502898887f84_adding_extra_to_log.py =>
0006_502898887f84_adding_extra_to_log.py} (100%)
rename airflow/migrations/versions/{1b38cef5b76e_add_dagrun.py =>
0007_1b38cef5b76e_add_dagrun.py} (100%)
rename airflow/migrations/versions/{2e541a1dcfed_task_duration.py =>
0008_2e541a1dcfed_task_duration.py} (100%)
rename airflow/migrations/versions/{40e67319e3a9_dagrun_config.py =>
0009_40e67319e3a9_dagrun_config.py} (100%)
rename
airflow/migrations/versions/{561833c1c74b_add_password_column_to_user.py =>
0010_561833c1c74b_add_password_column_to_user.py} (100%)
rename airflow/migrations/versions/{4446e08588_dagrun_start_end.py =>
0011_4446e08588_dagrun_start_end.py} (100%)
rename
airflow/migrations/versions/{bbc73705a13e_add_notification_sent_column_to_sla_miss.py
=> 0012_bbc73705a13e_add_notification_sent_column_to_sla_miss.py} (100%)
rename
airflow/migrations/versions/{bba5a7cfc896_add_a_column_to_track_the_encryption_.py
=> 0013_bba5a7cfc896_add_a_column_to_track_the_encryption_.py} (100%)
rename
airflow/migrations/versions/{1968acfc09e3_add_is_encrypted_column_to_variable_.py
=> 0014_1968acfc09e3_add_is_encrypted_column_to_variable_.py} (100%)
rename airflow/migrations/versions/{2e82aab8ef20_rename_user_table.py =>
0015_2e82aab8ef20_rename_user_table.py} (100%)
rename airflow/migrations/versions/{211e584da130_add_ti_state_index.py =>
0016_211e584da130_add_ti_state_index.py} (100%)
rename
airflow/migrations/versions/{64de9cddf6c9_add_task_fails_journal_table.py =>
0017_64de9cddf6c9_add_task_fails_journal_table.py} (100%)
rename airflow/migrations/versions/{f2ca10b85618_add_dag_stats_table.py =>
0018_f2ca10b85618_add_dag_stats_table.py} (100%)
rename
airflow/migrations/versions/{4addfa1236f1_add_fractional_seconds_to_mysql_tables.py
=> 0019_4addfa1236f1_add_fractional_seconds_to_mysql_tables.py} (100%)
rename airflow/migrations/versions/{8504051e801b_xcom_dag_task_indices.py =>
0020_8504051e801b_xcom_dag_task_indices.py} (100%)
rename
airflow/migrations/versions/{5e7d17757c7a_add_pid_field_to_taskinstance.py =>
0021_5e7d17757c7a_add_pid_field_to_taskinstance.py} (100%)
rename
airflow/migrations/versions/{127d2bf2dfa7_add_dag_id_state_index_on_dag_run_table.py
=> 0022_127d2bf2dfa7_add_dag_id_state_index_on_dag_run_table.py} (100%)
rename
airflow/migrations/versions/{cc1e65623dc7_add_max_tries_column_to_task_instance.py
=> 0023_cc1e65623dc7_add_max_tries_column_to_task_instance.py} (100%)
rename
airflow/migrations/versions/{bdaa763e6c56_make_xcom_value_column_a_large_binary.py
=> 0024_bdaa763e6c56_make_xcom_value_column_a_large_binary.py} (100%)
rename airflow/migrations/versions/{947454bf1dff_add_ti_job_id_index.py =>
0025_947454bf1dff_add_ti_job_id_index.py} (100%)
rename
airflow/migrations/versions/{d2ae31099d61_increase_text_size_for_mysql.py =>
0026_d2ae31099d61_increase_text_size_for_mysql.py} (100%)
rename airflow/migrations/versions/{0e2a74e0fc9f_add_time_zone_awareness.py =>
0027_0e2a74e0fc9f_add_time_zone_awareness.py} (100%)
rename
airflow/migrations/versions/{33ae817a1ff4_add_kubernetes_resource_checkpointing.py
=> 0028_33ae817a1ff4_add_kubernetes_resource_checkpointing.py} (100%)
rename
airflow/migrations/versions/{27c6a30d7c24_add_executor_config_to_task_instance.py
=> 0029_27c6a30d7c24_add_executor_config_to_task_instance.py} (100%)
rename
airflow/migrations/versions/{86770d1215c0_add_kubernetes_scheduler_uniqueness.py
=> 0030_86770d1215c0_add_kubernetes_scheduler_uniqueness.py} (100%)
rename airflow/migrations/versions/{05f30312d566_merge_heads.py =>
0031_05f30312d566_merge_heads.py} (100%)
rename
airflow/migrations/versions/{f23433877c24_fix_mysql_not_null_constraint.py =>
0032_f23433877c24_fix_mysql_not_null_constraint.py} (100%)
rename airflow/migrations/versions/{856955da8476_fix_sqlite_foreign_key.py =>
0033_856955da8476_fix_sqlite_foreign_key.py} (100%)
rename airflow/migrations/versions/{9635ae0956e7_index_taskfail.py =>
0034_9635ae0956e7_index_taskfail.py} (100%)
rename airflow/migrations/versions/{dd25f486b8ea_add_idx_log_dag.py =>
0035_dd25f486b8ea_add_idx_log_dag.py} (100%)
rename airflow/migrations/versions/{bf00311e1990_add_index_to_taskinstance.py
=> 0036_bf00311e1990_add_index_to_taskinstance.py} (100%)
rename airflow/migrations/versions/{0a2a5b66e19d_add_task_reschedule_table.py
=> 0037_0a2a5b66e19d_add_task_reschedule_table.py} (100%)
rename airflow/migrations/versions/{03bc53e68815_add_sm_dag_index.py =>
0038_03bc53e68815_add_sm_dag_index.py} (100%)
rename airflow/migrations/versions/{41f5f12752f8_add_superuser_field.py =>
0039_41f5f12752f8_add_superuser_field.py} (100%)
rename airflow/migrations/versions/{c8ffec048a3b_add_fields_to_dag.py =>
0040_c8ffec048a3b_add_fields_to_dag.py} (100%)
rename
airflow/migrations/versions/{dd4ecb8fbee3_add_schedule_interval_to_dag.py =>
0041_dd4ecb8fbee3_add_schedule_interval_to_dag.py} (100%)
rename
airflow/migrations/versions/{939bb1e647c8_task_reschedule_fk_on_cascade_delete.py
=> 0042_939bb1e647c8_task_reschedule_fk_on_cascade_delete.py} (100%)
rename
airflow/migrations/versions/{6e96a59344a4_make_taskinstance_pool_not_nullable.py
=> 0043_6e96a59344a4_make_taskinstance_pool_not_nullable.py} (100%)
rename airflow/migrations/versions/{d38e04c12aa2_add_serialized_dag_table.py
=> 0044_d38e04c12aa2_add_serialized_dag_table.py} (100%)
rename airflow/migrations/versions/{b3b105409875_add_root_dag_id_to_dag.py =>
0045_b3b105409875_add_root_dag_id_to_dag.py} (100%)
rename
airflow/migrations/versions/{74effc47d867_change_datetime_to_datetime2_6_on_mssql_.py
=> 0046_74effc47d867_change_datetime_to_datetime2_6_on_mssql_.py} (100%)
rename
airflow/migrations/versions/{004c1210f153_increase_queue_name_size_limit.py =>
0047_004c1210f153_increase_queue_name_size_limit.py} (100%)
rename airflow/migrations/versions/{a56c9515abdc_remove_dag_stat_table.py =>
0048_a56c9515abdc_remove_dag_stat_table.py} (100%)
rename airflow/migrations/versions/{08364691d074_merge_heads.py =>
0049_08364691d074_merge_heads.py} (100%)
rename
airflow/migrations/versions/{fe461863935f_increase_length_for_connection_password.py
=> 0050_fe461863935f_increase_length_for_connection_password.py} (100%)
rename airflow/migrations/versions/{7939bcff74ba_add_dagtags_table.py =>
0051_7939bcff74ba_add_dagtags_table.py} (100%)
rename
airflow/migrations/versions/{a4c2fd67d16b_add_pool_slots_field_to_task_instance.py
=> 0052_a4c2fd67d16b_add_pool_slots_field_to_task_instance.py} (100%)
rename
airflow/migrations/versions/{852ae6c715af_add_rendered_task_instance_fields_table.py
=> 0053_852ae6c715af_add_rendered_task_instance_fields_table.py} (100%)
rename airflow/migrations/versions/{952da73b5eff_add_dag_code_table.py =>
0054_952da73b5eff_add_dag_code_table.py} (100%)
rename
airflow/migrations/versions/{a66efa278eea_add_precision_to_execution_date_in_mysql.py
=> 0055_a66efa278eea_add_precision_to_execution_date_in_mysql.py} (100%)
rename
airflow/migrations/versions/{da3f683c3a5a_add_dag_hash_column_to_serialized_dag_.py
=> 0056_da3f683c3a5a_add_dag_hash_column_to_serialized_dag_.py} (100%)
rename airflow/migrations/versions/{92c57b58940d_add_fab_tables.py =>
0057_92c57b58940d_add_fab_tables.py} (100%)
rename
airflow/migrations/versions/{03afc6b6f902_increase_length_of_fab_ab_view_menu_.py
=> 0058_03afc6b6f902_increase_length_of_fab_ab_view_menu_.py} (100%)
rename airflow/migrations/versions/{cf5dc11e79ad_drop_user_and_chart.py =>
0059_cf5dc11e79ad_drop_user_and_chart.py} (100%)
rename airflow/migrations/versions/{bbf4a7ad0465_remove_id_column_from_xcom.py
=> 0060_bbf4a7ad0465_remove_id_column_from_xcom.py} (100%)
rename
airflow/migrations/versions/{b25a55525161_increase_length_of_pool_name.py =>
0061_b25a55525161_increase_length_of_pool_name.py} (100%)
rename airflow/migrations/versions/{3c20cacc0044_add_dagrun_run_type.py =>
0062_3c20cacc0044_add_dagrun_run_type.py} (100%)
rename
airflow/migrations/versions/{8f966b9c467a_set_conn_type_as_non_nullable.py =>
0063_8f966b9c467a_set_conn_type_as_non_nullable.py} (100%)
rename
airflow/migrations/versions/{8d48763f6d53_add_unique_constraint_to_conn_id.py
=> 0064_8d48763f6d53_add_unique_constraint_to_conn_id.py} (100%)
rename
airflow/migrations/versions/{e38be357a868_update_schema_for_smart_sensor.py =>
0065_e38be357a868_update_schema_for_smart_sensor.py} (100%)
rename airflow/migrations/versions/{b247b1e3d1ed_add_queued_by_job_id_to_ti.py
=> 0066_b247b1e3d1ed_add_queued_by_job_id_to_ti.py} (100%)
rename
airflow/migrations/versions/{e1a11ece99cc_add_external_executor_id_to_ti.py =>
0067_e1a11ece99cc_add_external_executor_id_to_ti.py} (100%)
rename
airflow/migrations/versions/{bef4f3d11e8b_drop_kuberesourceversion_and_.py =>
0068_bef4f3d11e8b_drop_kuberesourceversion_and_.py} (100%)
rename
airflow/migrations/versions/{98271e7606e2_add_scheduling_decision_to_dagrun_and_.py
=> 0069_98271e7606e2_add_scheduling_decision_to_dagrun_and_.py} (100%)
rename
airflow/migrations/versions/{52d53670a240_fix_mssql_exec_date_rendered_task_instance.py
=> 0070_52d53670a240_fix_mssql_exec_date_rendered_task_instance.py} (100%)
rename airflow/migrations/versions/{364159666cbd_add_job_id_to_dagrun_table.py
=> 0071_364159666cbd_add_job_id_to_dagrun_table.py} (100%)
rename
airflow/migrations/versions/{45ba3f1493b9_add_k8s_yaml_to_rendered_templates.py
=> 0072_45ba3f1493b9_add_k8s_yaml_to_rendered_templates.py} (100%)
rename airflow/migrations/versions/{849da589634d_prefix_dag_permissions.py =>
0073_849da589634d_prefix_dag_permissions.py} (100%)
rename airflow/migrations/versions/{2c6edca13270_resource_based_permissions.py
=> 0074_2c6edca13270_resource_based_permissions.py} (100%)
rename
airflow/migrations/versions/{61ec73d9401f_add_description_field_to_connection.py
=> 0075_61ec73d9401f_add_description_field_to_connection.py} (100%)
rename
airflow/migrations/versions/{64a7d6477aae_fix_description_field_in_connection_to_.py
=> 0076_64a7d6477aae_fix_description_field_in_connection_to_.py} (100%)
rename
airflow/migrations/versions/{e959f08ac86c_change_field_in_dagcode_to_mediumtext_.py
=> 0077_e959f08ac86c_change_field_in_dagcode_to_mediumtext_.py} (100%)
rename
airflow/migrations/versions/{82b7c48c147f_remove_can_read_permission_on_config_.py
=> 0078_82b7c48c147f_remove_can_read_permission_on_config_.py} (100%)
rename
airflow/migrations/versions/{449b4072c2da_increase_size_of_connection_extra_field_.py
=> 0079_449b4072c2da_increase_size_of_connection_extra_field_.py} (100%)
rename
airflow/migrations/versions/{8646922c8a04_change_default_pool_slots_to_1.py =>
0080_8646922c8a04_change_default_pool_slots_to_1.py} (100%)
rename
airflow/migrations/versions/{2e42bb497a22_rename_last_scheduler_run_column.py
=> 0081_2e42bb497a22_rename_last_scheduler_run_column.py} (100%)
rename
airflow/migrations/versions/{90d1635d7b86_increase_pool_name_size_in_taskinstance.py
=> 0082_90d1635d7b86_increase_pool_name_size_in_taskinstance.py} (100%)
rename
airflow/migrations/versions/{e165e7455d70_add_description_field_to_variable.py
=> 0083_e165e7455d70_add_description_field_to_variable.py} (100%)
rename
airflow/migrations/versions/{a13f7613ad25_resource_based_permissions_for_default_.py
=> 0084_a13f7613ad25_resource_based_permissions_for_default_.py} (100%)
rename
airflow/migrations/versions/{97cdd93827b8_add_queued_at_column_to_dagrun_table.py
=> 0085_97cdd93827b8_add_queued_at_column_to_dagrun_table.py} (100%)
rename
airflow/migrations/versions/{092435bf5d12_add_max_active_runs_column_to_dagmodel_.py
=> 0086_092435bf5d12_add_max_active_runs_column_to_dagmodel_.py} (100%)
rename
airflow/migrations/versions/{ccde3e26fe78_add_index_on_state_dag_id_for_queued_.py
=> 0087_ccde3e26fe78_add_index_on_state_dag_id_for_queued_.py} (100%)
rename
airflow/migrations/versions/{83f031fd9f1c_improve_mssql_compatibility.py =>
0088_83f031fd9f1c_improve_mssql_compatibility.py} (100%)
rename
airflow/migrations/versions/{e9304a3141f0_make_xcom_pkey_columns_non_nullable.py
=> 0089_e9304a3141f0_make_xcom_pkey_columns_non_nullable.py} (100%)
rename
airflow/migrations/versions/{30867afad44a_rename_concurrency_column_in_dag_table_.py
=> 0090_30867afad44a_rename_concurrency_column_in_dag_table_.py} (100%)
rename
airflow/migrations/versions/{54bebd308c5f_add_trigger_table_and_task_info.py =>
0091_54bebd308c5f_add_trigger_table_and_task_info.py} (100%)
rename
airflow/migrations/versions/{142555e44c17_add_data_interval_start_end_to_dagmodel_and_dagrun.py
=> 0092_142555e44c17_add_data_interval_start_end_to_dagmodel_and_dagrun.py}
(100%)
rename
airflow/migrations/versions/{7b2661a43ba3_taskinstance_keyed_to_dagrun.py =>
0093_7b2661a43ba3_taskinstance_keyed_to_dagrun.py} (100%)
rename
airflow/migrations/versions/{be2bfac3da23_add_has_import_errors_column_to_dagmodel.py
=> 0094_be2bfac3da23_add_has_import_errors_column_to_dagmodel.py} (100%)
rename airflow/migrations/versions/{c381b21cb7e4_add_session_table_to_db.py =>
0095_c381b21cb7e4_add_session_table_to_db.py} (100%)
rename
airflow/migrations/versions/{587bdf053233_adding_index_for_dag_id_in_job.py =>
0096_587bdf053233_adding_index_for_dag_id_in_job.py} (100%)
rename
airflow/migrations/versions/{5e3ec427fdd3_increase_length_of_email_and_username.py
=> 0097_5e3ec427fdd3_increase_length_of_email_and_username.py} (100%)
rename
airflow/migrations/versions/{786e3737b18f_added_timetable_description_column.py
=> 0098_786e3737b18f_added_timetable_description_column.py} (100%)
rename
airflow/migrations/versions/{f9da662e7089_add_task_log_filename_template_model.py
=> 0099_f9da662e7089_add_task_log_filename_template_model.py} (100%)
rename
airflow/migrations/versions/{e655c0453f75_add_taskmap_and_map_id_on_taskinstance.py
=> 0100_e655c0453f75_add_taskmap_and_map_id_on_taskinstance.py} (100%)
rename
airflow/migrations/versions/{a3bcd0914482_add_data_compressed_to_serialized_dag.py
=> 0101_a3bcd0914482_add_data_compressed_to_serialized_dag.py} (100%)
rename
airflow/migrations/versions/{c306b5b5ae4a_switch_xcom_table_to_use_run_id.py =>
0102_c306b5b5ae4a_switch_xcom_table_to_use_run_id.py} (92%)
rename airflow/migrations/versions/{c97c2ab6aa23_add_callback_request_table.py
=> 0103_c97c2ab6aa23_add_callback_request_table.py} (100%)
create mode 100644
airflow/migrations/versions/0104_4eaab2fe6582_migrate_rtif_to_use_run_id_and_map_index.py
copy {tests/timetables => airflow/providers/alibaba/cloud/log}/__init__.py
(100%)
copy airflow/providers/{amazon/aws/log/s3_task_handler.py =>
alibaba/cloud/log/oss_task_handler.py} (63%)
copy airflow/providers/amazon/aws/example_dags/{example_ecs_fargate.py =>
example_ecs_ec2.py} (73%)
create mode 100644
airflow/providers/amazon/aws/example_dags/example_redshift_cluster.py
create mode 100644
airflow/providers/google/cloud/example_dags/example_dataplex.py
create mode 100644 airflow/providers/google/cloud/hooks/dataplex.py
create mode 100644 airflow/providers/google/cloud/links/dataplex.py
create mode 100644 airflow/providers/google/cloud/operators/dataplex.py
create mode 100644 airflow/providers/google/cloud/sensors/dataplex.py
create mode 100644 airflow/www/static/js/tree/TaskName.jsx
create mode 100644 airflow/www/static/js/tree/providers/containerRef.jsx
create mode 100644 airflow/www/static/js/tree/providers/selection.jsx
create mode 100644 chart/templates/webserver/webserver-poddisruptionbudget.yaml
copy docs/{apache-airflow-providers-amazon =>
apache-airflow-providers-alibaba}/logging/index.rst (100%)
copy airflow/providers/github/CHANGELOG.rst =>
docs/apache-airflow-providers-alibaba/logging/oss-task-handler.rst (50%)
create mode 100644
docs/apache-airflow-providers-google/operators/cloud/dataplex.rst
copy chart/tests/__init__.py =>
scripts/ci/docker-compose/devcontainer-mysql.yml (86%)
rename chart/tests/__init__.py =>
scripts/ci/docker-compose/devcontainer-postgres.yml (86%)
create mode 100644 scripts/ci/docker-compose/devcontainer.env
copy airflow/providers/sendgrid/provider.yaml =>
scripts/ci/docker-compose/devcontainer.yml (62%)
rename scripts/ci/images/{ci_push_empty_production_images.sh =>
ci_push_empty_prod_images.sh} (100%)
create mode 100755 scripts/ci/pre_commit/pre_commit_check_xcom_get_value.py
copy tests/{timetables => charts}/__init__.py (100%)
rename {chart/tests => tests/charts}/conftest.py (74%)
rename {chart/tests => tests/charts}/helm_template_generator.py (96%)
rename {chart/tests => tests/charts}/test_airflow_common.py (99%)
rename {chart/tests => tests/charts}/test_annotations.py (99%)
rename {chart/tests => tests/charts}/test_basic_helm_chart.py (99%)
rename {chart/tests => tests/charts}/test_celery_kubernetes_executor.py (96%)
rename {chart/tests => tests/charts}/test_chart_quality.py (81%)
rename {chart/tests => tests/charts}/test_cleanup_pods.py (99%)
rename {chart/tests => tests/charts}/test_configmap.py (98%)
rename {chart/tests => tests/charts}/test_create_user_job.py (99%)
rename {chart/tests => tests/charts}/test_dags_persistent_volume_claim.py (97%)
rename {chart/tests => tests/charts}/test_elasticsearch_secret.py (98%)
rename {chart/tests => tests/charts}/test_extra_configmaps_secrets.py (98%)
rename {chart/tests => tests/charts}/test_extra_env_env_from.py (97%)
rename {chart/tests => tests/charts}/test_flower.py (99%)
rename {chart/tests => tests/charts}/test_git_sync_scheduler.py (99%)
rename {chart/tests => tests/charts}/test_git_sync_webserver.py (99%)
rename {chart/tests => tests/charts}/test_git_sync_worker.py (98%)
rename {chart/tests => tests/charts}/test_ingress_flower.py (98%)
rename {chart/tests => tests/charts}/test_ingress_web.py (98%)
rename {chart/tests => tests/charts}/test_keda.py (98%)
rename {chart/tests => tests/charts}/test_kerberos.py (98%)
rename {chart/tests => tests/charts}/test_limit_ranges.py (95%)
rename {chart/tests => tests/charts}/test_logs_persistent_volume_claim.py (97%)
rename {chart/tests => tests/charts}/test_metadata_connection_secret.py (98%)
rename {chart/tests => tests/charts}/test_migrate_database_job.py (99%)
rename {chart/tests => tests/charts}/test_pdb_pgbouncer.py (96%)
copy {chart/tests => tests/charts}/test_pdb_scheduler.py (96%)
rename chart/tests/test_pdb_scheduler.py => tests/charts/test_pdb_webserver.py
(77%)
rename {chart/tests => tests/charts}/test_pgbouncer.py (99%)
rename {chart/tests => tests/charts}/test_pod_launcher_role.py (96%)
rename {chart/tests => tests/charts}/test_pod_template_file.py (99%)
rename {chart/tests => tests/charts}/test_rbac.py (99%)
rename {chart/tests => tests/charts}/test_rbac_pod_log_reader.py (97%)
rename {chart/tests => tests/charts}/test_redis.py (99%)
rename {chart/tests => tests/charts}/test_resource_quota.py (96%)
rename {chart/tests => tests/charts}/test_result_backend_connection_secret.py
(99%)
rename {chart/tests => tests/charts}/test_scc_rolebinding.py (98%)
rename {chart/tests => tests/charts}/test_scheduler.py (99%)
rename {chart/tests => tests/charts}/test_security_context.py (99%)
rename {chart/tests => tests/charts}/test_statsd.py (98%)
rename {chart/tests => tests/charts}/test_triggerer.py (99%)
rename {chart/tests => tests/charts}/test_webserver.py (99%)
rename {chart/tests => tests/charts}/test_worker.py (99%)
copy tests/{timetables => providers/alibaba/cloud/log}/__init__.py (100%)
create mode 100644 tests/providers/alibaba/cloud/log/test_oss_task_handler.py
create mode 100644 tests/providers/google/cloud/hooks/test_dataplex.py
create mode 100644 tests/providers/google/cloud/operators/test_dataplex.py
create mode 100644
tests/providers/google/cloud/operators/test_dataplex_system.py
create mode 100644 tests/providers/google/cloud/sensors/test_dataplex.py