Skip to content

Commit f8faada

Browse files
committed
[SQUASH] AD stack quarantine.
1 parent 1a0340e commit f8faada

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

tests/integration-tests/cfn_stacks_factory.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@
3131
class CfnStack:
3232
"""Identify a CloudFormation stack."""
3333

34-
def __init__(self, name, region, template, parameters=None, capabilities=None, tags=None):
34+
def __init__(self, name, region, template, parameters=None, capabilities=None, tags=None, disable_rollback=False):
3535
self.name = name
3636
self.region = region
3737
self.template = template
3838
self.parameters = parameters or []
3939
self.capabilities = capabilities or []
4040
self.tags = tags or []
41+
self.disable_rollback=disable_rollback
4142
self.cfn_stack_id = None
4243
self.__cfn_outputs = None
4344
self.__cfn_resources = None
@@ -175,6 +176,7 @@ def create_stack(self, stack, stack_is_under_test=False):
175176
Parameters=stack.parameters,
176177
Capabilities=stack.capabilities,
177178
Tags=stack.tags,
179+
DisableRollback=stack.disable_rollback,
178180
)
179181
else:
180182
result = cfn_client.create_stack(
@@ -183,6 +185,7 @@ def create_stack(self, stack, stack_is_under_test=False):
183185
Parameters=stack.parameters,
184186
Capabilities=stack.capabilities,
185187
Tags=stack.tags,
188+
DisableRollback=stack.disable_rollback,
186189
)
187190
stack.cfn_stack_id = result["StackId"]
188191
self.__created_stacks[id] = stack

tests/integration-tests/tests/ad_integration/test_ad_integration.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
from remote_command_executor import RemoteCommandExecutor
2828
from retrying import retry
2929
from time_utils import seconds
30+
31+
from pcluster.models.imagebuilder_resources import StackError
3032
from utils import find_stack_by_tag, generate_stack_name, is_directory_supported, random_alphanumeric
3133

3234
from tests.ad_integration.cluster_user import ClusterUser
@@ -218,6 +220,7 @@ def _create_directory_stack(cfn_stacks_factory, request, directory_type, region,
218220
parameters=stack_parameters,
219221
capabilities=["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"],
220222
tags=tags,
223+
disable_rollback=True,
221224
)
222225
try:
223226
cfn_stacks_factory.create_stack(directory_stack, stack_is_under_test=True)
@@ -227,7 +230,9 @@ def _create_directory_stack(cfn_stacks_factory, request, directory_type, region,
227230
# We retain a limited number of stack to contain the costs.
228231
n_retained_ad_stacks = get_retained_ad_stacks_count()
229232
if n_retained_ad_stacks < MAX_QUARANTINED_STACKS:
230-
logging.warn("Retaining failed stack %s to debug failure", directory_stack_name)
233+
logging.warn("Retaining failed stack %s to debug failure (retained: %d, max: %d)",
234+
directory_stack_name, n_retained_ad_stacks, MAX_QUARANTINED_STACKS)
235+
231236
add_tag_to_stack(directory_stack.name, DO_NOT_DELETE_TAG_KEY, "Retained to debug failure")
232237
else:
233238
logging.warn("Cannot retain failed stack %s for debugging because there are already %d retained (max: %d)",

0 commit comments

Comments
 (0)