You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2022/09/19 12:59:52 UTC
[GitHub] [airflow] MrGeorgeOwl opened a new pull request, #26488: Change dataprep system tests assets
MrGeorgeOwl opened a new pull request, #26488:
URL: https://github.com/apache/airflow/pull/26488
<!--
Thank you for contributing! Please make sure that your code changes
are covered with tests. And in case of new features or big changes
remember to adjust the documentation.
Feel free to ping committers for the review!
In case of an existing issue, reference it using one of the following:
closes: #ISSUE
related: #ISSUE
How to write a good git commit message:
http://chris.beams.io/posts/git-commit/
-->
---
**^ Add meaningful description above**
Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)** for more information.
In case of fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals)) is needed.
In case of a new dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x).
In case of backwards incompatible changes please leave a note in a newsfragment file, named `{pr_number}.significant.rst` or `{issue_number}.significant.rst`, in [newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] potiuk commented on pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
potiuk commented on PR #26488:
URL: https://github.com/apache/airflow/pull/26488#issuecomment-1289733651
Conflicts need to be solved after strings normalisation
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] MrGeorgeOwl commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
MrGeorgeOwl commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r975175202
##########
airflow/providers/google/cloud/links/dataprep.py:
##########
@@ -0,0 +1,61 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+from typing import TYPE_CHECKING
+
+from airflow.providers.google.cloud.links.base import BaseGoogleLink
+
+if TYPE_CHECKING:
+ from airflow.utils.context import Context
+
+BASE_LINK = "https://clouddataprep.com"
Review Comment:
Changed logic in the base class
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] boring-cyborg[bot] commented on pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
boring-cyborg[bot] commented on PR #26488:
URL: https://github.com/apache/airflow/pull/26488#issuecomment-1250987587
Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contribution Guide (https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst)
Here are some useful points:
- Pay attention to the quality of your code (flake8, mypy and type annotations). Our [pre-commits]( https://github.com/apache/airflow/blob/main/STATIC_CODE_CHECKS.rst#prerequisites-for-pre-commit-hooks) will help you with that.
- In case of a new feature add useful documentation (in docstrings or in `docs/` directory). Adding a new operator? Check this short [guide](https://github.com/apache/airflow/blob/main/docs/apache-airflow/howto/custom-operator.rst) Consider adding an example DAG that shows how users should use it.
- Consider using [Breeze environment](https://github.com/apache/airflow/blob/main/BREEZE.rst) for testing locally, it's a heavy docker but it ships with a working Airflow and a lot of integrations.
- Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
- Please follow [ASF Code of Conduct](https://www.apache.org/foundation/policies/conduct) for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
- Be sure to read the [Airflow Coding style]( https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#coding-style-and-best-practices).
Apache Airflow is a community-driven project and together we are making it better 🚀.
In case of doubts contact the developers at:
Mailing List: dev@airflow.apache.org
Slack: https://s.apache.org/airflow-slack
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] MrGeorgeOwl commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
MrGeorgeOwl commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r975176150
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
+ start_date=datetime(2021, 1, 1), # Override to match your needs
+ catchup=False,
+ tags=['example', 'dataprep'],
+ render_template_as_native_obj=True,
+) as dag:
+ # [START how_to_gcs_create_bucket_operator]
+ create_bucket_task = GCSCreateBucketOperator(
+ task_id="create_bucket",
+ bucket_name=GCS_BUCKET_NAME,
+ project_id=GCP_PROJECT_ID,
+ )
+ # [END how_to_gcs_create_bucket_operator]
+
+ # [START how_to_dataprep_run_job_group_operator]
+ run_job_group_task = DataprepRunJobGroupOperator(
+ task_id='run_job_group',
+ project_id=GCP_PROJECT_ID,
+ body_request={
+ "wrangledDataset": {"id": RECIPE_ID},
+ "overrides": WRITE_SETTINGS,
+ },
+ )
+ # [END how_to_dataprep_run_job_group_operator]
+
+ # [START how_to_dataprep_copy_flow_operator]
+ copy_task = DataprepCopyFlowOperator(
+ task_id="copy_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id=FLOW_ID,
+ name=f'dataprep_example_flow_{DAG_ID}_{ENV_ID}',
+ )
+ # [END how_to_dataprep_copy_flow_operator]
+
+ # [START how_to_dataprep_dataprep_run_flow_operator]
+ run_flow_task = DataprepRunFlowOperator(
+ task_id="run_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id="{{ task_instance.xcom_pull('copy_flow')['id'] }}",
+ body_request={
+ "overrides": {
+ RECIPE_NAME: WRITE_SETTINGS,
+ },
+ },
+ )
+ # [END how_to_dataprep_dataprep_run_flow_operator]
+
+ # [START how_to_dataprep_get_job_group_operator]
+ get_job_group_task = DataprepGetJobGroupOperator(
+ task_id='get_job_group',
+ project_id=GCP_PROJECT_ID,
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ embed="",
+ include_deleted=False,
+ )
+
+ # [START how_to_dataprep_get_jobs_for_job_group_operator]
+ get_jobs_for_job_group_task = DataprepGetJobsForJobGroupOperator(
+ task_id="get_jobs_for_job_group",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_get_jobs_for_job_group_operator]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_flow_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_flow_status",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_job_group_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_job_group_status",
+ job_group_id="{{ task_instance.xcom_pull('run_job_group')['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_delete_flow_operator]
+ delete_flow_task = DataprepDeleteFlowOperator(
Review Comment:
Add trigger rule as suggested
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on PR #26488:
URL: https://github.com/apache/airflow/pull/26488#issuecomment-1262235808
@MrGeorgeOwl Please rebase the PR (and resolve comments if they are resolved)
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r974936312
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
Review Comment:
Just a note that when merging to the community, they will want to use "schedule" instead of "schedule_interval" (recent naming change)
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r974935763
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
Review Comment:
We don't need system env variables for that. We can just define contansts:
FLOW_ID = 1
and if it should be unique we ca reuse other constants:
```
RECIPE_ID = f"recipe_{DAG_ID}_{ENV_ID}"
```
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] MrGeorgeOwl commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
MrGeorgeOwl commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r975175940
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
+ start_date=datetime(2021, 1, 1), # Override to match your needs
+ catchup=False,
+ tags=['example', 'dataprep'],
+ render_template_as_native_obj=True,
+) as dag:
+ # [START how_to_gcs_create_bucket_operator]
+ create_bucket_task = GCSCreateBucketOperator(
+ task_id="create_bucket",
+ bucket_name=GCS_BUCKET_NAME,
+ project_id=GCP_PROJECT_ID,
+ )
+ # [END how_to_gcs_create_bucket_operator]
+
+ # [START how_to_dataprep_run_job_group_operator]
+ run_job_group_task = DataprepRunJobGroupOperator(
+ task_id='run_job_group',
+ project_id=GCP_PROJECT_ID,
+ body_request={
+ "wrangledDataset": {"id": RECIPE_ID},
+ "overrides": WRITE_SETTINGS,
+ },
+ )
+ # [END how_to_dataprep_run_job_group_operator]
+
+ # [START how_to_dataprep_copy_flow_operator]
+ copy_task = DataprepCopyFlowOperator(
+ task_id="copy_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id=FLOW_ID,
+ name=f'dataprep_example_flow_{DAG_ID}_{ENV_ID}',
+ )
+ # [END how_to_dataprep_copy_flow_operator]
+
+ # [START how_to_dataprep_dataprep_run_flow_operator]
+ run_flow_task = DataprepRunFlowOperator(
+ task_id="run_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id="{{ task_instance.xcom_pull('copy_flow')['id'] }}",
+ body_request={
+ "overrides": {
+ RECIPE_NAME: WRITE_SETTINGS,
+ },
+ },
+ )
+ # [END how_to_dataprep_dataprep_run_flow_operator]
+
+ # [START how_to_dataprep_get_job_group_operator]
+ get_job_group_task = DataprepGetJobGroupOperator(
+ task_id='get_job_group',
+ project_id=GCP_PROJECT_ID,
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ embed="",
+ include_deleted=False,
+ )
+
+ # [START how_to_dataprep_get_jobs_for_job_group_operator]
+ get_jobs_for_job_group_task = DataprepGetJobsForJobGroupOperator(
+ task_id="get_jobs_for_job_group",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_get_jobs_for_job_group_operator]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_flow_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_flow_status",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_job_group_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_job_group_status",
+ job_group_id="{{ task_instance.xcom_pull('run_job_group')['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_delete_flow_operator]
+ delete_flow_task = DataprepDeleteFlowOperator(
+ task_id="delete_flow",
+ flow_id="{{ task_instance.xcom_pull('copy_flow')['id'] }}",
+ )
+ # [END how_to_dataprep_delete_flow_operator]
+
+ # [START gcs_delete_bucket_operator]
Review Comment:
Removed
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r974929576
##########
airflow/providers/google/cloud/hooks/dataprep.py:
##########
@@ -68,7 +80,7 @@ def get_jobs_for_job_group(self, job_id: int) -> dict[str, Any]:
:param job_id: The ID of the job that will be fetched
"""
endpoint_path = f"v4/jobGroups/{job_id}/jobs"
- url: str = os.path.join(self._base_url, endpoint_path)
+ url: str = urljoin(self._base_url, endpoint_path)
Review Comment:
That's actually a good idea to do! We use os.path or similar instead of urljoins for urls.
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] potiuk commented on pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
potiuk commented on PR #26488:
URL: https://github.com/apache/airflow/pull/26488#issuecomment-1296517179
eh.. conflicts again
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r974936940
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
+ start_date=datetime(2021, 1, 1), # Override to match your needs
+ catchup=False,
+ tags=['example', 'dataprep'],
+ render_template_as_native_obj=True,
+) as dag:
+ # [START how_to_gcs_create_bucket_operator]
Review Comment:
It's covered already by gcs examples, so we don't need START/END how_to_gcs_create_bucket_operator markers here.
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] MrGeorgeOwl commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
MrGeorgeOwl commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r975175701
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
Review Comment:
Changed default value to blank string to pass mypy checks
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
Review Comment:
Changed
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
+ start_date=datetime(2021, 1, 1), # Override to match your needs
+ catchup=False,
+ tags=['example', 'dataprep'],
+ render_template_as_native_obj=True,
+) as dag:
+ # [START how_to_gcs_create_bucket_operator]
Review Comment:
Removed
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r974932873
##########
airflow/providers/google/cloud/links/dataprep.py:
##########
@@ -0,0 +1,61 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+from typing import TYPE_CHECKING
+
+from airflow.providers.google.cloud.links.base import BaseGoogleLink
+
+if TYPE_CHECKING:
+ from airflow.utils.context import Context
+
+BASE_LINK = "https://clouddataprep.com"
Review Comment:
This may not work with my recent change: https://github.com/apache/airflow/pull/26057 (because so far "https://console.cloud.google.com" was the base for all services). Please check if https://console.cloud.google.com can be used instead of https://clouddataprep.com and if not, then update the logic in the ``BaseGoogleLink`` class so the base url is added only when the url doesn't start with http (currently we check if it does start with ``https://console.cloud.google.com`` and desired would be just "http" so it would match different bases).
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r974940150
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
+ start_date=datetime(2021, 1, 1), # Override to match your needs
+ catchup=False,
+ tags=['example', 'dataprep'],
+ render_template_as_native_obj=True,
+) as dag:
+ # [START how_to_gcs_create_bucket_operator]
+ create_bucket_task = GCSCreateBucketOperator(
+ task_id="create_bucket",
+ bucket_name=GCS_BUCKET_NAME,
+ project_id=GCP_PROJECT_ID,
+ )
+ # [END how_to_gcs_create_bucket_operator]
+
+ # [START how_to_dataprep_run_job_group_operator]
+ run_job_group_task = DataprepRunJobGroupOperator(
+ task_id='run_job_group',
+ project_id=GCP_PROJECT_ID,
+ body_request={
+ "wrangledDataset": {"id": RECIPE_ID},
+ "overrides": WRITE_SETTINGS,
+ },
+ )
+ # [END how_to_dataprep_run_job_group_operator]
+
+ # [START how_to_dataprep_copy_flow_operator]
+ copy_task = DataprepCopyFlowOperator(
+ task_id="copy_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id=FLOW_ID,
+ name=f'dataprep_example_flow_{DAG_ID}_{ENV_ID}',
+ )
+ # [END how_to_dataprep_copy_flow_operator]
+
+ # [START how_to_dataprep_dataprep_run_flow_operator]
+ run_flow_task = DataprepRunFlowOperator(
+ task_id="run_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id="{{ task_instance.xcom_pull('copy_flow')['id'] }}",
+ body_request={
+ "overrides": {
+ RECIPE_NAME: WRITE_SETTINGS,
+ },
+ },
+ )
+ # [END how_to_dataprep_dataprep_run_flow_operator]
+
+ # [START how_to_dataprep_get_job_group_operator]
+ get_job_group_task = DataprepGetJobGroupOperator(
+ task_id='get_job_group',
+ project_id=GCP_PROJECT_ID,
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ embed="",
+ include_deleted=False,
+ )
+
+ # [START how_to_dataprep_get_jobs_for_job_group_operator]
+ get_jobs_for_job_group_task = DataprepGetJobsForJobGroupOperator(
+ task_id="get_jobs_for_job_group",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_get_jobs_for_job_group_operator]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_flow_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_flow_status",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_job_group_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_job_group_status",
+ job_group_id="{{ task_instance.xcom_pull('run_job_group')['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_delete_flow_operator]
+ delete_flow_task = DataprepDeleteFlowOperator(
Review Comment:
If the task persists and disappears only when removing (like gcs bucket) it should have a trigger rule all done to ensure it's actually deleted even if the test stops in the middle.
And the trigger should be "outside" documentation markers if there are any:
```
# [START how_to_dataprep_delete_flow_operator]
delete_flow_task = DataprepDeleteFlowOperator(
task_id="delete_flow",
flow_id="{{ task_instance.xcom_pull('copy_flow')['id'] }}",
)
# [END how_to_dataprep_delete_flow_operator]
delete_flow_task.trigger_rule = TriggerRule.ALL_DONE
```
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] bhirsz commented on a diff in pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
bhirsz commented on code in PR #26488:
URL: https://github.com/apache/airflow/pull/26488#discussion_r974938472
##########
tests/system/providers/google/cloud/dataprep/example_dataprep.py:
##########
@@ -0,0 +1,175 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""
+Example Airflow DAG that shows how to use Google Dataprep.
+"""
+import os
+from datetime import datetime
+
+from airflow import models
+from airflow.providers.google.cloud.operators.dataprep import (
+ DataprepCopyFlowOperator,
+ DataprepDeleteFlowOperator,
+ DataprepGetJobGroupOperator,
+ DataprepGetJobsForJobGroupOperator,
+ DataprepRunFlowOperator,
+ DataprepRunJobGroupOperator,
+)
+from airflow.providers.google.cloud.operators.gcs import GCSCreateBucketOperator, GCSDeleteBucketOperator
+from airflow.providers.google.cloud.sensors.dataprep import DataprepJobGroupIsFinishedSensor
+from airflow.utils.trigger_rule import TriggerRule
+
+ENV_ID = os.environ.get('SYSTEM_TESTS_ENV_ID')
+DAG_ID = "example_dataprep"
+
+GCP_PROJECT_ID = os.environ.get('GCP_PROJECT_ID')
+GCS_BUCKET_NAME = f"dataprep-bucket-heorhi-{DAG_ID}-{ENV_ID}"
+GCS_BUCKET_PATH = f"gs://{GCS_BUCKET_NAME}/task_results/"
+
+FLOW_ID = os.environ.get('FLOW_ID', 1)
+RECIPE_ID = os.environ.get('RECIPE_ID')
+RECIPE_NAME = os.environ.get('RECIPE_NAME')
+WRITE_SETTINGS = (
+ {
+ "writesettings": [
+ {
+ "path": GCS_BUCKET_PATH,
+ "action": "create",
+ "format": "csv",
+ }
+ ],
+ },
+)
+
+with models.DAG(
+ DAG_ID,
+ schedule_interval="@once",
+ start_date=datetime(2021, 1, 1), # Override to match your needs
+ catchup=False,
+ tags=['example', 'dataprep'],
+ render_template_as_native_obj=True,
+) as dag:
+ # [START how_to_gcs_create_bucket_operator]
+ create_bucket_task = GCSCreateBucketOperator(
+ task_id="create_bucket",
+ bucket_name=GCS_BUCKET_NAME,
+ project_id=GCP_PROJECT_ID,
+ )
+ # [END how_to_gcs_create_bucket_operator]
+
+ # [START how_to_dataprep_run_job_group_operator]
+ run_job_group_task = DataprepRunJobGroupOperator(
+ task_id='run_job_group',
+ project_id=GCP_PROJECT_ID,
+ body_request={
+ "wrangledDataset": {"id": RECIPE_ID},
+ "overrides": WRITE_SETTINGS,
+ },
+ )
+ # [END how_to_dataprep_run_job_group_operator]
+
+ # [START how_to_dataprep_copy_flow_operator]
+ copy_task = DataprepCopyFlowOperator(
+ task_id="copy_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id=FLOW_ID,
+ name=f'dataprep_example_flow_{DAG_ID}_{ENV_ID}',
+ )
+ # [END how_to_dataprep_copy_flow_operator]
+
+ # [START how_to_dataprep_dataprep_run_flow_operator]
+ run_flow_task = DataprepRunFlowOperator(
+ task_id="run_flow",
+ project_id=GCP_PROJECT_ID,
+ flow_id="{{ task_instance.xcom_pull('copy_flow')['id'] }}",
+ body_request={
+ "overrides": {
+ RECIPE_NAME: WRITE_SETTINGS,
+ },
+ },
+ )
+ # [END how_to_dataprep_dataprep_run_flow_operator]
+
+ # [START how_to_dataprep_get_job_group_operator]
+ get_job_group_task = DataprepGetJobGroupOperator(
+ task_id='get_job_group',
+ project_id=GCP_PROJECT_ID,
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ embed="",
+ include_deleted=False,
+ )
+
+ # [START how_to_dataprep_get_jobs_for_job_group_operator]
+ get_jobs_for_job_group_task = DataprepGetJobsForJobGroupOperator(
+ task_id="get_jobs_for_job_group",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_get_jobs_for_job_group_operator]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_flow_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_flow_status",
+ job_group_id="{{ task_instance.xcom_pull('run_flow')['data'][0]['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_job_group_finished_sensor]
+ check_job_group_status_sensor = DataprepJobGroupIsFinishedSensor(
+ task_id="check_job_group_status",
+ job_group_id="{{ task_instance.xcom_pull('run_job_group')['id'] }}",
+ )
+ # [END how_to_dataprep_job_group_finished_sensor]
+
+ # [START how_to_dataprep_delete_flow_operator]
+ delete_flow_task = DataprepDeleteFlowOperator(
+ task_id="delete_flow",
+ flow_id="{{ task_instance.xcom_pull('copy_flow')['id'] }}",
+ )
+ # [END how_to_dataprep_delete_flow_operator]
+
+ # [START gcs_delete_bucket_operator]
Review Comment:
Same as previous, we don't need gcs_delete_bucket_operator doc markers as such examples are handled by gcs examples
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] lwyszomi commented on pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
lwyszomi commented on PR #26488:
URL: https://github.com/apache/airflow/pull/26488#issuecomment-1309980234
@potiuk all conflicts were resolved 😄
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [airflow] potiuk merged pull request #26488: Change dataprep system tests assets
Posted by GitBox <gi...@apache.org>.
potiuk merged PR #26488:
URL: https://github.com/apache/airflow/pull/26488
--
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: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org