From afc503eebb9672bd33df0ce0885e79bd24f49a49 Mon Sep 17 00:00:00 2001 From: vatsrahul1001 Date: Sat, 7 Dec 2024 19:51:26 +0530 Subject: [PATCH 1/3] remove deprecations --- generated/provider_dependencies.json | 1 - .../providers/microsoft/azure/hooks/adx.py | 10 +--- .../microsoft/azure/hooks/base_azure.py | 20 +------ .../azure/hooks/container_instance.py | 43 +-------------- .../microsoft/azure/hooks/data_factory.py | 11 +--- .../microsoft/azure/hooks/synapse.py | 10 +--- .../microsoft/azure/operators/adx.py | 8 --- .../microsoft/azure/operators/batch.py | 8 +-- .../microsoft/azure/secrets/key_vault.py | 20 ------- .../providers/microsoft/azure/sensors/wasb.py | 36 +------------ .../azure/transfers/azure_blob_to_gcs.py | 44 --------------- .../microsoft/azure/secrets/test_key_vault.py | 54 ------------------- 12 files changed, 8 insertions(+), 257 deletions(-) delete mode 100644 providers/src/airflow/providers/microsoft/azure/transfers/azure_blob_to_gcs.py diff --git a/generated/provider_dependencies.json b/generated/provider_dependencies.json index 6003a11953881..fe11c5804eb42 100644 --- a/generated/provider_dependencies.json +++ b/generated/provider_dependencies.json @@ -847,7 +847,6 @@ "cross-providers-deps": [ "amazon", "common.compat", - "google", "oracle", "sftp" ], diff --git a/providers/src/airflow/providers/microsoft/azure/hooks/adx.py b/providers/src/airflow/providers/microsoft/azure/hooks/adx.py index 8ad4095970146..b08f6015dca53 100644 --- a/providers/src/airflow/providers/microsoft/azure/hooks/adx.py +++ b/providers/src/airflow/providers/microsoft/azure/hooks/adx.py @@ -33,7 +33,7 @@ from azure.kusto.data import ClientRequestProperties, KustoClient, KustoConnectionStringBuilder from azure.kusto.data.exceptions import KustoServiceError -from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning +from airflow.exceptions import AirflowException from airflow.hooks.base import BaseHook from airflow.providers.microsoft.azure.utils import ( add_managed_identity_connection_widgets, @@ -161,14 +161,6 @@ def get_required_param(name: str) -> str: value = extras.get(name) if value: warn_if_collison(name, backcompat_key) - if not value and extras.get(backcompat_key): - warnings.warn( - f"`{backcompat_key}` is deprecated in azure connection extra," - f" please use `{name}` instead", - AirflowProviderDeprecationWarning, - stacklevel=2, - ) - value = extras.get(backcompat_key) if not value: raise AirflowException(f"Required connection parameter is missing: `{name}`") return value diff --git a/providers/src/airflow/providers/microsoft/azure/hooks/base_azure.py b/providers/src/airflow/providers/microsoft/azure/hooks/base_azure.py index 70496d8796d6e..c54ece1e041f6 100644 --- a/providers/src/airflow/providers/microsoft/azure/hooks/base_azure.py +++ b/providers/src/airflow/providers/microsoft/azure/hooks/base_azure.py @@ -16,13 +16,12 @@ # under the License. from __future__ import annotations -import warnings from typing import Any from azure.common.client_factory import get_client_from_auth_file, get_client_from_json_dict from azure.common.credentials import ServicePrincipalCredentials -from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning +from airflow.exceptions import AirflowException from airflow.hooks.base import BaseHook from airflow.providers.microsoft.azure.utils import ( AzureIdentityCredentialAdapter, @@ -99,24 +98,7 @@ def get_conn(self) -> Any: """ conn = self.get_connection(self.conn_id) tenant = conn.extra_dejson.get("tenantId") - if not tenant and conn.extra_dejson.get("extra__azure__tenantId"): - warnings.warn( - "`extra__azure__tenantId` is deprecated in azure connection extra, " - "please use `tenantId` instead", - AirflowProviderDeprecationWarning, - stacklevel=2, - ) - tenant = conn.extra_dejson.get("extra__azure__tenantId") subscription_id = conn.extra_dejson.get("subscriptionId") - if not subscription_id and conn.extra_dejson.get("extra__azure__subscriptionId"): - warnings.warn( - "`extra__azure__subscriptionId` is deprecated in azure connection extra, " - "please use `subscriptionId` instead", - AirflowProviderDeprecationWarning, - stacklevel=2, - ) - subscription_id = conn.extra_dejson.get("extra__azure__subscriptionId") - key_path = conn.extra_dejson.get("key_path") if key_path: if not key_path.endswith(".json"): diff --git a/providers/src/airflow/providers/microsoft/azure/hooks/container_instance.py b/providers/src/airflow/providers/microsoft/azure/hooks/container_instance.py index a3547bfa1a9af..4aaa668c5ae9f 100644 --- a/providers/src/airflow/providers/microsoft/azure/hooks/container_instance.py +++ b/providers/src/airflow/providers/microsoft/azure/hooks/container_instance.py @@ -23,18 +23,14 @@ from azure.common.client_factory import get_client_from_auth_file, get_client_from_json_dict from azure.identity import ClientSecretCredential, DefaultAzureCredential from azure.mgmt.containerinstance import ContainerInstanceManagementClient -from deprecated import deprecated -from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning +from airflow.exceptions import AirflowException from airflow.providers.microsoft.azure.hooks.base_azure import AzureBaseHook from airflow.providers.microsoft.azure.utils import get_sync_default_azure_credential if TYPE_CHECKING: from azure.mgmt.containerinstance.models import ( ContainerGroup, - ContainerPropertiesInstanceView, - ContainerState, - Event, ) @@ -116,43 +112,6 @@ def create_or_update(self, resource_group: str, name: str, container_group: Cont """ self.connection.container_groups.begin_create_or_update(resource_group, name, container_group) - @deprecated( - reason="get_state_exitcode_details() is deprecated. Related method is get_state()", - category=AirflowProviderDeprecationWarning, - ) - def get_state_exitcode_details(self, resource_group: str, name: str) -> tuple: - """ - Get the state and exitcode of a container group. - - :param resource_group: the name of the resource group - :param name: the name of the container group - :return: A tuple with the state, exitcode, and details. - If the exitcode is unknown 0 is returned. - """ - cg_state = self.get_state(resource_group, name) - container = cg_state.containers[0] - instance_view: ContainerPropertiesInstanceView = container.instance_view # type: ignore[assignment] - c_state: ContainerState = instance_view.current_state # type: ignore[assignment] - return c_state.state, c_state.exit_code, c_state.detail_status - - @deprecated( - reason="get_messages() is deprecated. Related method is get_state()", - category=AirflowProviderDeprecationWarning, - ) - def get_messages(self, resource_group: str, name: str) -> list: - """ - Get the messages of a container group. - - :param resource_group: the name of the resource group - :param name: the name of the container group - :return: A list of the event messages - """ - cg_state = self.get_state(resource_group, name) - container = cg_state.containers[0] - instance_view: ContainerPropertiesInstanceView = container.instance_view # type: ignore[assignment] - events: list[Event] = instance_view.events # type: ignore[assignment] - return [event.message for event in events] - def get_state(self, resource_group: str, name: str) -> ContainerGroup: """ Get the state of a container group. diff --git a/providers/src/airflow/providers/microsoft/azure/hooks/data_factory.py b/providers/src/airflow/providers/microsoft/azure/hooks/data_factory.py index 2e95ac6994fe0..2b12729f1a783 100644 --- a/providers/src/airflow/providers/microsoft/azure/hooks/data_factory.py +++ b/providers/src/airflow/providers/microsoft/azure/hooks/data_factory.py @@ -35,7 +35,6 @@ import inspect import time -import warnings from functools import wraps from typing import IO, TYPE_CHECKING, Any, Callable, TypeVar, Union, cast @@ -48,7 +47,7 @@ from azure.mgmt.datafactory import DataFactoryManagementClient from azure.mgmt.datafactory.aio import DataFactoryManagementClient as AsyncDataFactoryManagementClient -from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning +from airflow.exceptions import AirflowException from airflow.hooks.base import BaseHook from airflow.providers.microsoft.azure.utils import ( add_managed_identity_connection_widgets, @@ -1095,14 +1094,6 @@ async def bind_argument(arg: Any, default_key: str) -> None: default_value = extras.get(default_key) or extras.get( f"extra__azure_data_factory__{default_key}" ) - if not default_value and extras.get(f"extra__azure_data_factory__{default_key}"): - warnings.warn( - f"`extra__azure_data_factory__{default_key}` is deprecated in azure connection extra," - f" please use `{default_key}` instead", - AirflowProviderDeprecationWarning, - stacklevel=2, - ) - default_value = extras.get(f"extra__azure_data_factory__{default_key}") if not default_value: raise AirflowException("Could not determine the targeted data factory.") diff --git a/providers/src/airflow/providers/microsoft/azure/hooks/synapse.py b/providers/src/airflow/providers/microsoft/azure/hooks/synapse.py index 39e6d1022bce2..af5a77aebf07e 100644 --- a/providers/src/airflow/providers/microsoft/azure/hooks/synapse.py +++ b/providers/src/airflow/providers/microsoft/azure/hooks/synapse.py @@ -17,7 +17,6 @@ from __future__ import annotations import time -import warnings from typing import TYPE_CHECKING, Any, Union from azure.core.exceptions import ServiceRequestError @@ -25,7 +24,7 @@ from azure.synapse.artifacts import ArtifactsClient from azure.synapse.spark import SparkClient -from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning, AirflowTaskTimeout +from airflow.exceptions import AirflowException, AirflowTaskTimeout from airflow.hooks.base import BaseHook from airflow.providers.microsoft.azure.utils import ( add_managed_identity_connection_widgets, @@ -307,13 +306,6 @@ def __init__( azure_synapse_conn_id: str = default_conn_name, **kwargs, ): - # Handling deprecation of "default_conn_name" - if azure_synapse_conn_id == self.default_conn_name: - warnings.warn( - "The usage of `default_conn_name=azure_synapse_connection` is deprecated and will be removed in future. Please update your code to use the new default connection name: `default_conn_name=azure_synapse_default`. ", - AirflowProviderDeprecationWarning, - stacklevel=2, - ) self._conn: ArtifactsClient | None = None self.azure_synapse_workspace_dev_endpoint = azure_synapse_workspace_dev_endpoint super().__init__(azure_synapse_conn_id=azure_synapse_conn_id, **kwargs) diff --git a/providers/src/airflow/providers/microsoft/azure/operators/adx.py b/providers/src/airflow/providers/microsoft/azure/operators/adx.py index 5efa087f9de31..05c2cd8d54eeb 100644 --- a/providers/src/airflow/providers/microsoft/azure/operators/adx.py +++ b/providers/src/airflow/providers/microsoft/azure/operators/adx.py @@ -23,10 +23,7 @@ from functools import cached_property from typing import TYPE_CHECKING -from deprecated.classic import deprecated - from airflow.configuration import conf -from airflow.exceptions import AirflowProviderDeprecationWarning from airflow.models import BaseOperator from airflow.providers.microsoft.azure.hooks.adx import AzureDataExplorerHook @@ -72,11 +69,6 @@ def hook(self) -> AzureDataExplorerHook: """Return new instance of AzureDataExplorerHook.""" return AzureDataExplorerHook(self.azure_data_explorer_conn_id) - @deprecated(reason="use `hook` property instead.", category=AirflowProviderDeprecationWarning) - def get_hook(self) -> AzureDataExplorerHook: - """Return new instance of AzureDataExplorerHook.""" - return self.hook - def execute(self, context: Context) -> KustoResultTable | str: """ Run KQL Query on Azure Data Explorer (Kusto). diff --git a/providers/src/airflow/providers/microsoft/azure/operators/batch.py b/providers/src/airflow/providers/microsoft/azure/operators/batch.py index da724624a4bef..5b366b5b6bdc0 100644 --- a/providers/src/airflow/providers/microsoft/azure/operators/batch.py +++ b/providers/src/airflow/providers/microsoft/azure/operators/batch.py @@ -22,9 +22,8 @@ from typing import TYPE_CHECKING, Any from azure.batch import models as batch_models -from deprecated.classic import deprecated -from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning +from airflow.exceptions import AirflowException from airflow.models import BaseOperator from airflow.providers.microsoft.azure.hooks.batch import AzureBatchHook @@ -184,11 +183,6 @@ def hook(self) -> AzureBatchHook: """Create and return an AzureBatchHook (cached).""" return AzureBatchHook(self.azure_batch_conn_id) - @deprecated(reason="use `hook` property instead.", category=AirflowProviderDeprecationWarning) - def get_hook(self) -> AzureBatchHook: - """Create and return an AzureBatchHook.""" - return self.hook - def _check_inputs(self) -> Any: if not self.os_family and not self.vm_publisher: raise AirflowException("You must specify either vm_publisher or os_family") diff --git a/providers/src/airflow/providers/microsoft/azure/secrets/key_vault.py b/providers/src/airflow/providers/microsoft/azure/secrets/key_vault.py index 8735af0c8a851..aa1724b8e1bdb 100644 --- a/providers/src/airflow/providers/microsoft/azure/secrets/key_vault.py +++ b/providers/src/airflow/providers/microsoft/azure/secrets/key_vault.py @@ -31,9 +31,7 @@ from azure.core.exceptions import ResourceNotFoundError from azure.identity import ClientSecretCredential, DefaultAzureCredential from azure.keyvault.secrets import SecretClient -from deprecated import deprecated -from airflow.exceptions import AirflowProviderDeprecationWarning from airflow.providers.microsoft.azure.utils import get_sync_default_azure_credential from airflow.secrets import BaseSecretsBackend from airflow.utils.log.logging_mixin import LoggingMixin @@ -154,24 +152,6 @@ def get_conn_value(self, conn_id: str) -> str | None: return self._get_secret(self.connections_prefix, conn_id) - @deprecated( - reason=( - "Method `AzureKeyVaultBackend.get_conn_uri` is deprecated and will be removed " - "in a future release. Please use method `get_conn_value` instead." - ), - category=AirflowProviderDeprecationWarning, - ) - def get_conn_uri(self, conn_id: str) -> str | None: - """ - Return URI representation of Connection conn_id. - - As of Airflow version 2.3.0 this method is deprecated. - - :param conn_id: the connection id - :return: deserialized Connection - """ - return self.get_conn_value(conn_id) - def get_variable(self, key: str) -> str | None: """ Get an Airflow Variable from an Azure Key Vault secret. diff --git a/providers/src/airflow/providers/microsoft/azure/sensors/wasb.py b/providers/src/airflow/providers/microsoft/azure/sensors/wasb.py index 5862b518233d9..ec02c3cef8ba4 100644 --- a/providers/src/airflow/providers/microsoft/azure/sensors/wasb.py +++ b/providers/src/airflow/providers/microsoft/azure/sensors/wasb.py @@ -19,12 +19,10 @@ from collections.abc import Sequence from datetime import timedelta -from typing import TYPE_CHECKING, Any - -from deprecated import deprecated +from typing import TYPE_CHECKING from airflow.configuration import conf -from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning +from airflow.exceptions import AirflowException from airflow.providers.microsoft.azure.hooks.wasb import WasbHook from airflow.providers.microsoft.azure.triggers.wasb import WasbBlobSensorTrigger, WasbPrefixSensorTrigger from airflow.sensors.base import BaseSensorOperator @@ -111,36 +109,6 @@ def execute_complete(self, context: Context, event: dict[str, str]) -> None: raise AirflowException("Did not receive valid event from the triggerer") -@deprecated( - reason=( - "Class `WasbBlobAsyncSensor` is deprecated and " - "will be removed in a future release. " - "Please use `WasbBlobSensor` and " - "set `deferrable` attribute to `True` instead" - ), - category=AirflowProviderDeprecationWarning, -) -class WasbBlobAsyncSensor(WasbBlobSensor): - """ - Poll asynchronously for the existence of a blob in a WASB container. - - This class is deprecated and will be removed in a future release. - - Please use :class:`airflow.providers.microsoft.azure.sensors.wasb.WasbBlobSensor` - and set *deferrable* attribute to *True* instead. - - :param container_name: name of the container in which the blob should be searched for - :param blob_name: name of the blob to check existence for - :param wasb_conn_id: the connection identifier for connecting to Azure WASB - :param poke_interval: polling period in seconds to check for the status - :param public_read: whether an anonymous public read access should be used. Default is False - :param timeout: Time, in seconds before the task times out and fails. - """ - - def __init__(self, **kwargs: Any) -> None: - super().__init__(**kwargs, deferrable=True) - - class WasbPrefixSensor(BaseSensorOperator): """ Wait for blobs matching a prefix to arrive on Azure Blob Storage. diff --git a/providers/src/airflow/providers/microsoft/azure/transfers/azure_blob_to_gcs.py b/providers/src/airflow/providers/microsoft/azure/transfers/azure_blob_to_gcs.py deleted file mode 100644 index 5a8417a3f26ac..0000000000000 --- a/providers/src/airflow/providers/microsoft/azure/transfers/azure_blob_to_gcs.py +++ /dev/null @@ -1,44 +0,0 @@ -# -# 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 __future__ import annotations - -from deprecated import deprecated - -from airflow.exceptions import AirflowProviderDeprecationWarning -from airflow.providers.google.cloud.transfers.azure_blob_to_gcs import ( - AzureBlobStorageToGCSOperator as AzureBlobStorageToGCSOperatorFromGoogleProvider, -) - - -@deprecated( - reason=( - "Please use " - "`airflow.providers.google.cloud.transfers.azure_blob_to_gcs.AzureBlobStorageToGCSOperator`." - ), - category=AirflowProviderDeprecationWarning, -) -class AzureBlobStorageToGCSOperator(AzureBlobStorageToGCSOperatorFromGoogleProvider): - """ - This class is deprecated. - - Please use - :class:`airflow.providers.google.cloud.transfers.azure_blob_to_gcs.AzureBlobStorageToGCSOperator`. - """ - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) diff --git a/providers/tests/microsoft/azure/secrets/test_key_vault.py b/providers/tests/microsoft/azure/secrets/test_key_vault.py index 60040804e1000..6ad744f21968d 100644 --- a/providers/tests/microsoft/azure/secrets/test_key_vault.py +++ b/providers/tests/microsoft/azure/secrets/test_key_vault.py @@ -19,10 +19,8 @@ from unittest import mock -import pytest from azure.core.exceptions import ResourceNotFoundError -from airflow.exceptions import AirflowProviderDeprecationWarning from airflow.providers.microsoft.azure.secrets.key_vault import AzureKeyVaultBackend KEY_VAULT_MODULE = "airflow.providers.microsoft.azure.secrets.key_vault" @@ -35,40 +33,6 @@ def test_get_connection(self, mock_get_value): conn = AzureKeyVaultBackend().get_connection("fake_conn") assert conn.host == "host" - @mock.patch(f"{KEY_VAULT_MODULE}.get_sync_default_azure_credential") - @mock.patch(f"{KEY_VAULT_MODULE}.SecretClient") - def test_get_conn_uri(self, mock_secret_client, mock_azure_cred): - mock_cred = mock.Mock() - mock_sec_client = mock.Mock() - mock_azure_cred.return_value = mock_cred - mock_secret_client.return_value = mock_sec_client - - mock_sec_client.get_secret.return_value = mock.Mock( - value="postgresql://airflow:airflow@host:5432/airflow" - ) - - backend = AzureKeyVaultBackend(vault_url="https://example-akv-resource-name.vault.azure.net/") - with pytest.warns(AirflowProviderDeprecationWarning, match="Method `.*get_conn_uri` is deprecated"): - returned_uri = backend.get_conn_uri(conn_id="hi") - mock_secret_client.assert_called_once_with( - credential=mock_cred, vault_url="https://example-akv-resource-name.vault.azure.net/" - ) - assert returned_uri == "postgresql://airflow:airflow@host:5432/airflow" - - @mock.patch(f"{KEY_VAULT_MODULE}.AzureKeyVaultBackend.client") - def test_get_conn_uri_non_existent_key(self, mock_client): - """ - Test that if the key with connection ID is not present, - AzureKeyVaultBackend.get_connection should return None - """ - conn_id = "test_mysql" - mock_client.get_secret.side_effect = ResourceNotFoundError - backend = AzureKeyVaultBackend(vault_url="https://example-akv-resource-name.vault.azure.net/") - - with pytest.warns(AirflowProviderDeprecationWarning, match="Method `.*get_conn_uri` is deprecated"): - assert backend.get_conn_uri(conn_id=conn_id) is None - assert backend.get_connection(conn_id=conn_id) is None - @mock.patch(f"{KEY_VAULT_MODULE}.AzureKeyVaultBackend.client") def test_get_variable(self, mock_client): mock_client.get_secret.return_value = mock.Mock(value="world") @@ -109,24 +73,6 @@ def test_get_secret_value(self, mock_client): mock_client.get_secret.assert_called_with(name="af-secrets-test-mysql-password") assert secret_val == "super-secret" - @mock.patch(f"{KEY_VAULT_MODULE}.AzureKeyVaultBackend._get_secret") - def test_connection_prefix_none_value(self, mock_get_secret): - """ - Test that if Connections prefix is None, - AzureKeyVaultBackend.get_connection should return None - AzureKeyVaultBackend._get_secret should not be called - """ - kwargs = {"connections_prefix": None} - - backend = AzureKeyVaultBackend(**kwargs) - assert backend.get_connection("test_mysql") is None - mock_get_secret.assert_not_called() - - mock_get_secret.reset_mock() - with pytest.warns(AirflowProviderDeprecationWarning, match="Method `.*get_conn_uri` is deprecated"): - assert backend.get_conn_uri("test_mysql") is None - mock_get_secret.assert_not_called() - @mock.patch(f"{KEY_VAULT_MODULE}.AzureKeyVaultBackend._get_secret") def test_variable_prefix_none_value(self, mock_get_secret): """ From 003cf1768bd9f65d4dc60cc20512c60d5fdcbc24 Mon Sep 17 00:00:00 2001 From: vatsrahul1001 Date: Sat, 7 Dec 2024 21:59:50 +0530 Subject: [PATCH 2/3] updating change log --- .../providers/microsoft/azure/CHANGELOG.rst | 27 +++++++++++++++++++ .../providers/microsoft/azure/provider.yaml | 5 +--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst b/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst index 2329c87f12e2f..7aa92cc92aa6c 100644 --- a/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst +++ b/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst @@ -27,6 +27,33 @@ Changelog --------- +main +.... + +.. warning:: + All deprecated classes, parameters and features have been removed from the microspft azure provider package. + The following breaking changes were introduced: + + * Removed deprecated ``extra__azure_data_explorer__foo`` in azure connection extra. + * Removed deprecated ``extra__azure__tenantId`` in azure connection extra. Use ``tenantId`` instead. + * Removed deprecated ``get_state_exitcode_details`` method. Use ``get_state`` instead. + * Removed deprecated ``get_messages`` method. Use ``get_state`` instead. + * Removed deprecated ``extra__azure_data_factory__foo`` in azure connection extra. + * Usage of `default_conn_name=azure_synapse_connection` is deprecated in ``AzureSynapsePipelineHook``. Use ``default_conn_name=azure_synapse_default`` instead. + * Removed deprecated method ``get_hook`` to get instance of ``AzureDataExplorerHook``. Use ``hook`` property instead. + * Removed deprecated method ``get_hook`` to get instance of ``AzureBatchHook``. Use ``hook`` property instead. + * Removed deprecated method ``AzureKeyVaultBackend.get_conn_uri``. Use ``get_conn_value`` instead. + * Removed deprecated class ``WasbBlobAsyncSensor``. Use ``WasbBlobSensor`` with ``deferrable=True`` instead. + * Removed deprecated operator `AzureBlobStorageToGCSOperator`. Use ``airflow.providers.google.cloud.transfers.azure_blob_to_gcs.AzureBlobStorageToGCSOperator`` instead. + + + + + + + + + 11.1.0 ...... diff --git a/providers/src/airflow/providers/microsoft/azure/provider.yaml b/providers/src/airflow/providers/microsoft/azure/provider.yaml index 257d50a6f8fb2..6b54d6fdac701 100644 --- a/providers/src/airflow/providers/microsoft/azure/provider.yaml +++ b/providers/src/airflow/providers/microsoft/azure/provider.yaml @@ -328,10 +328,7 @@ transfers: target-integration-name: Microsoft Azure Blob Storage how-to-guide: /docs/apache-airflow-providers-microsoft-azure/transfer/s3_to_wasb.rst python-module: airflow.providers.microsoft.azure.transfers.s3_to_wasb - - source-integration-name: Microsoft Azure Blob Storage - target-integration-name: Google Cloud Storage (GCS) - how-to-guide: /docs/apache-airflow-providers-microsoft-azure/transfer/azure_blob_to_gcs.rst - python-module: airflow.providers.microsoft.azure.transfers.azure_blob_to_gcs + connection-types: - hook-class-name: airflow.providers.microsoft.azure.hooks.base_azure.AzureBaseHook From da757d75be389a84c256b1374f76fa7c5b95f505 Mon Sep 17 00:00:00 2001 From: vatsrahul1001 Date: Sat, 7 Dec 2024 23:22:51 +0530 Subject: [PATCH 3/3] fixing static checks --- .../transfer/azure_blob_to_gcs.rst | 20 ------------------- .../providers/microsoft/azure/CHANGELOG.rst | 2 +- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 docs/apache-airflow-providers-microsoft-azure/transfer/azure_blob_to_gcs.rst diff --git a/docs/apache-airflow-providers-microsoft-azure/transfer/azure_blob_to_gcs.rst b/docs/apache-airflow-providers-microsoft-azure/transfer/azure_blob_to_gcs.rst deleted file mode 100644 index df2cd0bcceea0..0000000000000 --- a/docs/apache-airflow-providers-microsoft-azure/transfer/azure_blob_to_gcs.rst +++ /dev/null @@ -1,20 +0,0 @@ - .. 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. - - -Upload data from Azure Blob Storage to Google Cloud Storage (Moved to Google Providers) -======================================================================================= diff --git a/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst b/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst index 7aa92cc92aa6c..d90e57def42b5 100644 --- a/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst +++ b/providers/src/airflow/providers/microsoft/azure/CHANGELOG.rst @@ -31,7 +31,7 @@ main .... .. warning:: - All deprecated classes, parameters and features have been removed from the microspft azure provider package. + All deprecated classes, parameters and features have been removed from the microsoft azure provider package. The following breaking changes were introduced: * Removed deprecated ``extra__azure_data_explorer__foo`` in azure connection extra.