Skip to content

Commit

Permalink
[Resolve Sceptre#915] Support ChangeSetType UPDATE
Browse files Browse the repository at this point in the history
This adds logic supporting the case of creating change sets for a stack
that does not already exist, i.e. specifying ChangeSetType of CREATE.
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudformation/client/create_change_set.html
  • Loading branch information
alexharv074 committed Jun 1, 2024
1 parent 906005d commit 9a09303
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions sceptre/plan/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,17 @@ def create_change_set(self, change_set_name):
:param change_set_name: The name of the Change Set.
:type change_set_name: str
"""
try:
existing_status = self._get_status()
except StackDoesNotExistError:
existing_status = "PENDING"

self.logger.info(
"%s - Stack is in the %s state", self.stack.name, existing_status
)

change_set_type = "CREATE" if existing_status == "PENDING" else "UPDATE"

create_change_set_kwargs = {
"StackName": self.stack.external_name,
"Parameters": self._format_parameters(self.stack.parameters),
Expand All @@ -449,6 +460,7 @@ def create_change_set(self, change_set_name):
"CAPABILITY_AUTO_EXPAND",
],
"ChangeSetName": change_set_name,
"ChangeSetType": change_set_type,
"NotificationARNs": self.stack.notifications,
"Tags": [
{"Key": str(k), "Value": str(v)} for k, v in self.stack.tags.items()
Expand Down

0 comments on commit 9a09303

Please sign in to comment.