in lambdas/custom_resources/CTE_CrossAccountCloudFormation/src/cfn_helper.py [0:0]
def list_stacks(session=None):
"""Gets a list of all CloudFormation stacks in the account
http://boto3.readthedocs.io/en/latest/reference/services/cloudformation.html#CloudFormation.Client.list_stacks
Args:
session (object, optional): boto3 session object
Returns:
list of str: List of stack names in the account
"""
stacks = []
client = boto3_client(service='cloudformation', session=session)
try:
paginator = client.get_paginator("list_stacks")
for page in paginator.paginate(
StackStatusFilter=[
'CREATE_IN_PROGRESS',
'CREATE_FAILED',
'CREATE_COMPLETE',
'ROLLBACK_IN_PROGRESS',
'ROLLBACK_FAILED',
'ROLLBACK_COMPLETE',
'DELETE_IN_PROGRESS',
'DELETE_FAILED',
'UPDATE_IN_PROGRESS',
'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS',
'UPDATE_COMPLETE',
'UPDATE_ROLLBACK_IN_PROGRESS',
'UPDATE_ROLLBACK_FAILED',
'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS',
'UPDATE_ROLLBACK_COMPLETE',
'REVIEW_IN_PROGRESS'
]
):
for x in page['StackSummaries']:
stacks.append(x['StackName'])
except Exception as e:
raise ex.CloudFormationException(
f"Failed to get list of cloudformation templates: {str(e)}"
)
return stacks