This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new fa4a73ccc5e Removal of deprecated items scheduled for May and June 
(#51646)
fa4a73ccc5e is described below

commit fa4a73ccc5e0907ec1a4e1cbd7f4fe5253c33b46
Author: Nitochkin <62333822+crowi...@users.noreply.github.com>
AuthorDate: Thu Jun 12 18:51:24 2025 +0200

    Removal of deprecated items scheduled for May and June (#51646)
    
    Co-authored-by: Anton Nitochkin <nitoch...@google.com>
---
 providers/google/docs/changelog.rst                |  4 +
 .../google/cloud/hooks/vertex_ai/auto_ml.py        | 36 ---------
 .../google/cloud/operators/kubernetes_engine.py    | 88 +---------------------
 .../google/cloud/dataproc/example_dataproc_gke.py  |  2 +-
 .../kubernetes_engine/example_kubernetes_engine.py |  2 +-
 .../example_kubernetes_engine_async.py             |  2 +-
 .../example_kubernetes_engine_job.py               |  2 +-
 .../example_kubernetes_engine_kueue.py             |  2 +-
 .../example_kubernetes_engine_resource.py          |  2 +-
 .../cloud/operators/test_kubernetes_engine.py      | 83 +++++---------------
 10 files changed, 31 insertions(+), 192 deletions(-)

diff --git a/providers/google/docs/changelog.rst 
b/providers/google/docs/changelog.rst
index 67e2474b343..b3bc4d56b51 100644
--- a/providers/google/docs/changelog.rst
+++ b/providers/google/docs/changelog.rst
@@ -40,6 +40,9 @@ Breaking changes
 * Operators
 
   * ``Remove operator TextGenerationModelPredictOperator use 
GenerativeModelGenerateContentOperator instead``
+  * ``Remove name attribute from GKEDeleteClusterOperator operator please use 
cluster_name instead``
+  * ``Remove regional attribute from GKEStartPodOperator because parameter is 
not in actual use``
+  * ``Remove is_delete_operator_pod attribute from GKEStartPodOperator please 
use on_finish_action attribute instead``
 
 * Hooks
 
@@ -47,6 +50,7 @@ Breaking changes
   * ``Remove GenerativeModelHook.text_generation_model_predict use 
GenerativeModelHook.generative_model_generate_content instead``
   * ``Remove split_tablename function from 
airflow.providers.google.cloud.hooks.bigquery``
     ``use 
airflow.providers.google.cloud.hooks.bigquery.BigQueryHook.split_tablename 
instead``
+  * ``Remove get_auto_ml_text_training_job method from AutoMLHook because of 
deprecation of AutoMLText API``
 
 * Links
 
diff --git 
a/providers/google/src/airflow/providers/google/cloud/hooks/vertex_ai/auto_ml.py
 
b/providers/google/src/airflow/providers/google/cloud/hooks/vertex_ai/auto_ml.py
index d0a3407ae30..c3d453b4594 100644
--- 
a/providers/google/src/airflow/providers/google/cloud/hooks/vertex_ai/auto_ml.py
+++ 
b/providers/google/src/airflow/providers/google/cloud/hooks/vertex_ai/auto_ml.py
@@ -185,42 +185,6 @@ class AutoMLHook(GoogleBaseHook, OperationHelper):
             model_encryption_spec_key_name=model_encryption_spec_key_name,
         )
 
-    @deprecated(
-        planned_removal_date="June 15, 2025",
-        category=AirflowProviderDeprecationWarning,
-        reason="Deprecation of AutoMLText API",
-    )
-    def get_auto_ml_text_training_job(
-        self,
-        display_name: str,
-        prediction_type: str,
-        multi_label: bool = False,
-        sentiment_max: int = 10,
-        project: str | None = None,
-        location: str | None = None,
-        labels: dict[str, str] | None = None,
-        training_encryption_spec_key_name: str | None = None,
-        model_encryption_spec_key_name: str | None = None,
-    ) -> AutoMLTextTrainingJob:
-        """
-        Return AutoMLTextTrainingJob object.
-
-        WARNING: Text creation API is deprecated since September 15, 2024
-        
(https://cloud.google.com/vertex-ai/docs/tutorials/text-classification-automl/overview).
-        """
-        return AutoMLTextTrainingJob(
-            display_name=display_name,
-            prediction_type=prediction_type,
-            multi_label=multi_label,
-            sentiment_max=sentiment_max,
-            project=project,
-            location=location,
-            credentials=self.get_credentials(),
-            labels=labels,
-            
training_encryption_spec_key_name=training_encryption_spec_key_name,
-            model_encryption_spec_key_name=model_encryption_spec_key_name,
-        )
-
     def get_auto_ml_video_training_job(
         self,
         display_name: str,
diff --git 
a/providers/google/src/airflow/providers/google/cloud/operators/kubernetes_engine.py
 
b/providers/google/src/airflow/providers/google/cloud/operators/kubernetes_engine.py
index 97963ce99ec..ef692eba1bc 100644
--- 
a/providers/google/src/airflow/providers/google/cloud/operators/kubernetes_engine.py
+++ 
b/providers/google/src/airflow/providers/google/cloud/operators/kubernetes_engine.py
@@ -57,7 +57,6 @@ from 
airflow.providers.google.cloud.triggers.kubernetes_engine import (
     GKEOperationTrigger,
     GKEStartPodTrigger,
 )
-from airflow.providers.google.common.deprecated import deprecated
 from airflow.providers.google.common.hooks.base_google import 
PROVIDE_PROJECT_ID
 from airflow.providers_manager import ProvidersManager
 from airflow.utils.timezone import utcnow
@@ -222,7 +221,6 @@ class GKEDeleteClusterOperator(GKEOperatorMixin, 
GoogleCloudBaseOperator):
         If set as a sequence, the identities from the list must grant
         Service Account Token Creator IAM role to the directly preceding 
identity, with first
         account from the list granting this role to the originating account 
(templated).
-    :param name: (Deprecated) The name of the resource to delete, in this case 
cluster name
     :param api_version: The api version to use
     :param deferrable: Run operator in the deferrable mode.
     :param poll_interval: Interval size which defines how often operation 
status is checked.
@@ -241,7 +239,6 @@ class GKEDeleteClusterOperator(GKEOperatorMixin, 
GoogleCloudBaseOperator):
         gcp_conn_id: str = "google_cloud_default",
         impersonation_chain: str | Sequence[str] | None = None,
         cluster_name: str | None = None,
-        name: str | None = None,
         api_version: str = "v2",
         deferrable: bool = conf.getboolean("operators", "default_deferrable", 
fallback=False),
         poll_interval: int = 10,
@@ -251,36 +248,17 @@ class GKEDeleteClusterOperator(GKEOperatorMixin, 
GoogleCloudBaseOperator):
         super().__init__(*args, **kwargs)
 
         self.location = location
-        self.cluster_name = cluster_name or name
+        self.cluster_name = cluster_name
         self.use_internal_ip = use_internal_ip
         self.use_dns_endpoint = use_dns_endpoint
         self.project_id = project_id
         self.gcp_conn_id = gcp_conn_id
         self.impersonation_chain = impersonation_chain
-        self._name = name
         self.api_version = api_version
         self.deferrable = deferrable
         self.poll_interval = poll_interval
         self._check_input()
 
-    @property
-    @deprecated(
-        planned_removal_date="May 01, 2025",
-        use_instead="cluster_name",
-        category=AirflowProviderDeprecationWarning,
-    )
-    def name(self) -> str | None:
-        return self._name
-
-    @name.setter
-    @deprecated(
-        planned_removal_date="May 01, 2025",
-        use_instead="cluster_name",
-        category=AirflowProviderDeprecationWarning,
-    )
-    def name(self, name: str) -> None:
-        self._name = name
-
     def _check_input(self) -> None:
         if not all([self.project_id, self.cluster_name, self.location]):
             self.log.error("One of (project_id, cluster_name, location) is 
missing or incorrect")
@@ -622,16 +600,10 @@ class GKEStartPodOperator(GKEOperatorMixin, 
KubernetesPodOperator):
         If set as a sequence, the identities from the list must grant
         Service Account Token Creator IAM role to the directly preceding 
identity, with first
         account from the list granting this role to the originating account 
(templated).
-    :param regional: (Deprecated) The location param is region name.
     :param on_finish_action: What to do when the pod reaches its final state, 
or the execution is interrupted.
         If "delete_pod", the pod will be deleted regardless its state; if 
"delete_succeeded_pod",
         only succeeded pod will be deleted. You can set to "keep_pod" to keep 
the pod.
         Current default is `keep_pod`, but this will be changed in the next 
major release of this provider.
-    :param is_delete_operator_pod: (Deprecated) What to do when the pod 
reaches its final
-        state, or the execution is interrupted. If True, delete the
-        pod; if False, leave the pod. Current default is False, but this will 
be
-        changed in the next major release of this provider.
-        Deprecated - use `on_finish_action` instead.
     :param deferrable: Run operator in the deferrable mode.
     """
 
@@ -651,30 +623,15 @@ class GKEStartPodOperator(GKEOperatorMixin, 
KubernetesPodOperator):
         project_id: str = PROVIDE_PROJECT_ID,
         gcp_conn_id: str = "google_cloud_default",
         impersonation_chain: str | Sequence[str] | None = None,
-        regional: bool | None = None,
         on_finish_action: str | None = None,
-        is_delete_operator_pod: bool | None = None,
         deferrable: bool = conf.getboolean("operators", "default_deferrable", 
fallback=False),
         *args,
         **kwargs,
     ) -> None:
-        if is_delete_operator_pod is not None:
-            kwargs["on_finish_action"] = (
-                OnFinishAction.DELETE_POD if is_delete_operator_pod else 
OnFinishAction.KEEP_POD
-            )
-        elif on_finish_action is not None:
+        if on_finish_action is not None:
             kwargs["on_finish_action"] = OnFinishAction(on_finish_action)
         else:
-            warnings.warn(
-                f"You have not set parameter `on_finish_action` in class 
{self.__class__.__name__}. "
-                "Currently the default for this parameter is `keep_pod` but in 
a future release"
-                " the default will be changed to `delete_pod`. To ensure pods 
are not deleted in"
-                " the future you will need to set `on_finish_action=keep_pod` 
explicitly.",
-                AirflowProviderDeprecationWarning,
-                stacklevel=2,
-            )
-            kwargs["on_finish_action"] = OnFinishAction.KEEP_POD
-
+            kwargs["on_finish_action"] = OnFinishAction.DELETE_POD
         super().__init__(*args, **kwargs)
         self.project_id = project_id
         self.location = location
@@ -683,9 +640,6 @@ class GKEStartPodOperator(GKEOperatorMixin, 
KubernetesPodOperator):
         self.use_internal_ip = use_internal_ip
         self.use_dns_endpoint = use_dns_endpoint
         self.impersonation_chain = impersonation_chain
-        self._regional = regional
-        if is_delete_operator_pod is not None:
-            self.is_delete_operator_pod = is_delete_operator_pod
         self.deferrable = deferrable
 
         # There is no need to manage the kube_config file, as it will be 
generated automatically.
@@ -693,42 +647,6 @@ class GKEStartPodOperator(GKEOperatorMixin, 
KubernetesPodOperator):
         if self.config_file:
             raise AirflowException("config_file is not an allowed parameter 
for the GKEStartPodOperator.")
 
-    @property
-    @deprecated(
-        planned_removal_date="May 01, 2025",
-        use_instead="on_finish_action",
-        category=AirflowProviderDeprecationWarning,
-    )
-    def is_delete_operator_pod(self) -> bool | None:
-        return self._is_delete_operator_pod
-
-    @is_delete_operator_pod.setter
-    @deprecated(
-        planned_removal_date="May 01, 2025",
-        use_instead="on_finish_action",
-        category=AirflowProviderDeprecationWarning,
-    )
-    def is_delete_operator_pod(self, is_delete_operator_pod) -> None:
-        self._is_delete_operator_pod = is_delete_operator_pod
-
-    @property
-    @deprecated(
-        planned_removal_date="May 01, 2025",
-        reason="The parameter is not in actual use.",
-        category=AirflowProviderDeprecationWarning,
-    )
-    def regional(self) -> bool | None:
-        return self._regional
-
-    @regional.setter
-    @deprecated(
-        planned_removal_date="May 01, 2025",
-        reason="The parameter is not in actual use.",
-        category=AirflowProviderDeprecationWarning,
-    )
-    def regional(self, regional) -> None:
-        self._regional = regional
-
     def invoke_defer_method(self, last_log_time: DateTime | None = None):
         """Redefine triggers which are being used in child classes."""
         trigger_start_time = utcnow()
diff --git 
a/providers/google/tests/system/google/cloud/dataproc/example_dataproc_gke.py 
b/providers/google/tests/system/google/cloud/dataproc/example_dataproc_gke.py
index 5fb6e1da8a6..a85c4fcc3aa 100644
--- 
a/providers/google/tests/system/google/cloud/dataproc/example_dataproc_gke.py
+++ 
b/providers/google/tests/system/google/cloud/dataproc/example_dataproc_gke.py
@@ -128,7 +128,7 @@ with DAG(
 
     delete_gke_cluster = GKEDeleteClusterOperator(
         task_id="delete_gke_cluster",
-        name=GKE_CLUSTER_NAME,
+        cluster_name=GKE_CLUSTER_NAME,
         project_id=PROJECT_ID,
         location=REGION,
         trigger_rule=TriggerRule.ALL_DONE,
diff --git 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine.py
 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine.py
index 09e88d55178..c214d95469f 100644
--- 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine.py
+++ 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine.py
@@ -111,7 +111,7 @@ with DAG(
     # [START howto_operator_gke_delete_cluster]
     delete_cluster = GKEDeleteClusterOperator(
         task_id="delete_cluster",
-        name=CLUSTER_NAME,
+        cluster_name=CLUSTER_NAME,
         project_id=GCP_PROJECT_ID,
         location=GCP_LOCATION,
     )
diff --git 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_async.py
 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_async.py
index 78b3a99ab83..257d97da9c0 100644
--- 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_async.py
+++ 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_async.py
@@ -114,7 +114,7 @@ with DAG(
     # [START howto_operator_gke_delete_cluster_async]
     delete_cluster = GKEDeleteClusterOperator(
         task_id="delete_cluster",
-        name=CLUSTER_NAME,
+        cluster_name=CLUSTER_NAME,
         project_id=GCP_PROJECT_ID,
         location=GCP_LOCATION,
         deferrable=True,
diff --git 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_job.py
 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_job.py
index 9ff3ef32a7c..578a8e62b84 100644
--- 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_job.py
+++ 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_job.py
@@ -162,7 +162,7 @@ with DAG(
 
     delete_cluster = GKEDeleteClusterOperator(
         task_id="delete_cluster",
-        name=CLUSTER_NAME,
+        cluster_name=CLUSTER_NAME,
         project_id=GCP_PROJECT_ID,
         location=GCP_LOCATION,
         trigger_rule=TriggerRule.ALL_DONE,
diff --git 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_kueue.py
 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_kueue.py
index 44dbaae5537..07d07d840f6 100644
--- 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_kueue.py
+++ 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_kueue.py
@@ -160,7 +160,7 @@ with DAG(
 
     delete_cluster = GKEDeleteClusterOperator(
         task_id="delete_cluster",
-        name=CLUSTER_NAME,
+        cluster_name=CLUSTER_NAME,
         project_id=GCP_PROJECT_ID,
         location=GCP_LOCATION,
         trigger_rule=TriggerRule.ALL_DONE,
diff --git 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_resource.py
 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_resource.py
index 28a6ac985b6..dba0c01b840 100644
--- 
a/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_resource.py
+++ 
b/providers/google/tests/system/google/cloud/kubernetes_engine/example_kubernetes_engine_resource.py
@@ -93,7 +93,7 @@ with DAG(
 
     delete_cluster = GKEDeleteClusterOperator(
         task_id="delete_cluster",
-        name=CLUSTER_NAME,
+        cluster_name=CLUSTER_NAME,
         project_id=GCP_PROJECT_ID,
         location=GCP_LOCATION,
         trigger_rule=TriggerRule.ALL_DONE,
diff --git 
a/providers/google/tests/unit/google/cloud/operators/test_kubernetes_engine.py 
b/providers/google/tests/unit/google/cloud/operators/test_kubernetes_engine.py
index 4225bda418e..510db752b3d 100644
--- 
a/providers/google/tests/unit/google/cloud/operators/test_kubernetes_engine.py
+++ 
b/providers/google/tests/unit/google/cloud/operators/test_kubernetes_engine.py
@@ -695,88 +695,41 @@ class TestGKEStartPodOperator:
             )
 
     @pytest.mark.parametrize(
-        "compatible_kpo, kwargs, expected_attributes",
+        "kwargs, expected_attributes",
         [
             (
-                True,
                 {"on_finish_action": "delete_succeeded_pod"},
                 {"on_finish_action": OnFinishAction.DELETE_SUCCEEDED_POD},
             ),
             (
-                # test that priority for deprecated param
-                True,
-                {"on_finish_action": "keep_pod", "is_delete_operator_pod": 
True},
-                {"on_finish_action": OnFinishAction.DELETE_POD, 
"is_delete_operator_pod": True},
-            ),
-            (
-                # test default
-                True,
-                {},
-                {"on_finish_action": OnFinishAction.KEEP_POD, 
"is_delete_operator_pod": False},
-            ),
-            (
-                False,
-                {"is_delete_operator_pod": True},
-                {"is_delete_operator_pod": True},
-            ),
-            (
-                False,
-                {"is_delete_operator_pod": False},
-                {"is_delete_operator_pod": False},
+                {"on_finish_action": "keep_pod"},
+                {"on_finish_action": OnFinishAction.KEEP_POD},
             ),
             (
-                # test default
-                False,
-                {},
-                {"is_delete_operator_pod": False},
+                {"on_finish_action": "delete_pod"},
+                {"on_finish_action": OnFinishAction.DELETE_POD},
             ),
         ],
     )
     def test_on_finish_action_handler(
         self,
-        compatible_kpo,
         kwargs,
         expected_attributes,
     ):
-        kpo_init_args_mock = mock.MagicMock(**{"parameters": 
["on_finish_action"] if compatible_kpo else []})
+        kpo_init_args_mock = mock.MagicMock(**{"parameters": 
["on_finish_action"]})
         with mock.patch("inspect.signature", return_value=kpo_init_args_mock):
-            if "is_delete_operator_pod" in kwargs:
-                with pytest.raises(AirflowProviderDeprecationWarning):
-                    GKEStartPodOperator(
-                        project_id=TEST_PROJECT_ID,
-                        location=TEST_LOCATION,
-                        cluster_name=GKE_CLUSTER_NAME,
-                        task_id=TEST_TASK_ID,
-                        name=K8S_POD_NAME,
-                        namespace=K8S_NAMESPACE,
-                        image=TEST_IMAGE,
-                        **kwargs,
-                    )
-            elif "on_finish_action" not in kwargs:
-                with pytest.raises(AirflowProviderDeprecationWarning):
-                    GKEStartPodOperator(
-                        project_id=TEST_PROJECT_ID,
-                        location=TEST_LOCATION,
-                        cluster_name=GKE_CLUSTER_NAME,
-                        task_id=TEST_TASK_ID,
-                        name=K8S_POD_NAME,
-                        namespace=K8S_NAMESPACE,
-                        image=TEST_IMAGE,
-                        **kwargs,
-                    )
-            else:
-                op = GKEStartPodOperator(
-                    project_id=TEST_PROJECT_ID,
-                    location=TEST_LOCATION,
-                    cluster_name=GKE_CLUSTER_NAME,
-                    task_id=TEST_TASK_ID,
-                    name=K8S_POD_NAME,
-                    namespace=K8S_NAMESPACE,
-                    image=TEST_IMAGE,
-                    **kwargs,
-                )
-                for expected_attr in expected_attributes:
-                    assert op.__getattribute__(expected_attr) == 
expected_attributes[expected_attr]
+            op = GKEStartPodOperator(
+                project_id=TEST_PROJECT_ID,
+                location=TEST_LOCATION,
+                cluster_name=GKE_CLUSTER_NAME,
+                task_id=TEST_TASK_ID,
+                name=K8S_POD_NAME,
+                namespace=K8S_NAMESPACE,
+                image=TEST_IMAGE,
+                **kwargs,
+            )
+            for expected_attr in expected_attributes:
+                assert op.__getattribute__(expected_attr) == 
expected_attributes[expected_attr]
 
     @mock.patch(GKE_OPERATORS_PATH.format("GKEStartPodOperator.defer"))
     
@mock.patch(GKE_OPERATORS_PATH.format("GKEClusterAuthDetails.fetch_cluster_info"))

Reply via email to