Skip to content

Commit

Permalink
Standardize AWS CloudFormation naming (#20357)
Browse files Browse the repository at this point in the history
* Standardize AWS CloudFormation naming
  • Loading branch information
ferruzzi committed Dec 17, 2021
1 parent bb82cc0 commit 2a3db4d
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 14 deletions.
19 changes: 18 additions & 1 deletion airflow/providers/amazon/aws/hooks/cloud_formation.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
# under the License.

"""This module contains AWS CloudFormation Hook"""
import warnings
from typing import Optional, Union

from boto3 import client, resource
Expand All @@ -25,7 +26,7 @@
from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook


class AWSCloudFormationHook(AwsBaseHook):
class CloudFormationHook(AwsBaseHook):
"""
Interact with AWS CloudFormation.
Expand Down Expand Up @@ -78,3 +79,19 @@ def delete_stack(self, stack_name: str, params: Optional[dict] = None) -> None:
if 'StackName' not in params:
params['StackName'] = stack_name
self.get_conn().delete_stack(**params)


class AWSCloudFormationHook(CloudFormationHook):
"""
This hook is deprecated.
Please use :class:`airflow.providers.amazon.aws.hooks.cloud_formation.CloudFormationHook`.
"""

def __init__(self, *args, **kwargs):
warnings.warn(
"This hook is deprecated. "
"Please use :class:`airflow.providers.amazon.aws.hooks.cloud_formation.CloudFormationHook`.",
DeprecationWarning,
stacklevel=2,
)
super().__init__(*args, **kwargs)
6 changes: 3 additions & 3 deletions airflow/providers/amazon/aws/operators/cloud_formation.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from typing import List, Optional

from airflow.models import BaseOperator
from airflow.providers.amazon.aws.hooks.cloud_formation import AWSCloudFormationHook
from airflow.providers.amazon.aws.hooks.cloud_formation import CloudFormationHook


class CloudFormationCreateStackOperator(BaseOperator):
Expand Down Expand Up @@ -50,7 +50,7 @@ def __init__(self, *, stack_name: str, params: dict, aws_conn_id: str = 'aws_def
def execute(self, context):
self.log.info('Parameters: %s', self.params)

cloudformation_hook = AWSCloudFormationHook(aws_conn_id=self.aws_conn_id)
cloudformation_hook = CloudFormationHook(aws_conn_id=self.aws_conn_id)
cloudformation_hook.create_stack(self.stack_name, self.params)


Expand Down Expand Up @@ -85,5 +85,5 @@ def __init__(
def execute(self, context):
self.log.info('Parameters: %s', self.params)

cloudformation_hook = AWSCloudFormationHook(aws_conn_id=self.aws_conn_id)
cloudformation_hook = CloudFormationHook(aws_conn_id=self.aws_conn_id)
cloudformation_hook.delete_stack(self.stack_name, self.params)
14 changes: 7 additions & 7 deletions airflow/providers/amazon/aws/sensors/cloud_formation.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
else:
from cached_property import cached_property

from airflow.providers.amazon.aws.hooks.cloud_formation import AWSCloudFormationHook
from airflow.providers.amazon.aws.hooks.cloud_formation import CloudFormationHook
from airflow.sensors.base import BaseSensorOperator


Expand Down Expand Up @@ -59,9 +59,9 @@ def poke(self, context):
raise ValueError(f'Stack {self.stack_name} in bad state: {stack_status}')

@cached_property
def hook(self) -> AWSCloudFormationHook:
"""Create and return an AWSCloudFormationHook"""
return AWSCloudFormationHook(aws_conn_id=self.aws_conn_id, region_name=self.region_name)
def hook(self) -> CloudFormationHook:
"""Create and return an CloudFormationHook"""
return CloudFormationHook(aws_conn_id=self.aws_conn_id, region_name=self.region_name)


class CloudFormationDeleteStackSensor(BaseSensorOperator):
Expand Down Expand Up @@ -102,6 +102,6 @@ def poke(self, context):
raise ValueError(f'Stack {self.stack_name} in bad state: {stack_status}')

@cached_property
def hook(self) -> AWSCloudFormationHook:
"""Create and return an AWSCloudFormationHook"""
return AWSCloudFormationHook(aws_conn_id=self.aws_conn_id, region_name=self.region_name)
def hook(self) -> CloudFormationHook:
"""Create and return an CloudFormationHook"""
return CloudFormationHook(aws_conn_id=self.aws_conn_id, region_name=self.region_name)
6 changes: 3 additions & 3 deletions tests/providers/amazon/aws/hooks/test_cloud_formation.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import json
import unittest

from airflow.providers.amazon.aws.hooks.cloud_formation import AWSCloudFormationHook
from airflow.providers.amazon.aws.hooks.cloud_formation import CloudFormationHook

try:
from moto import mock_cloudformation
Expand All @@ -28,9 +28,9 @@


@unittest.skipIf(mock_cloudformation is None, 'moto package not present')
class TestAWSCloudFormationHook(unittest.TestCase):
class TestCloudFormationHook(unittest.TestCase):
def setUp(self):
self.hook = AWSCloudFormationHook(aws_conn_id='aws_default')
self.hook = CloudFormationHook(aws_conn_id='aws_default')

def create_stack(self, stack_name):
timeout = 15
Expand Down

0 comments on commit 2a3db4d

Please sign in to comment.