Skip to content

Commit 10bb97b

Browse files
committed
Extract engine_parameter_value
1 parent 4d1dec3 commit 10bb97b

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

localstack-core/localstack/services/cloudformation/engine/v2/change_set_model.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
from localstack.utils.strings import camel_to_snake_case
1414

1515
if TYPE_CHECKING:
16-
from localstack.services.cloudformation.v2.entities import EngineParameter
16+
from localstack.services.cloudformation.v2.entities import (
17+
EngineParameter,
18+
engine_parameter_value,
19+
)
1720

1821
T = TypeVar("T")
1922

@@ -1019,18 +1022,14 @@ def _visit_dynamic_parameter(self, parameter_name: str) -> ChangeSetEntity:
10191022

10201023
before_parameter = Nothing
10211024
if not is_nothing(before_parameter_dct):
1022-
before_parameter = (
1023-
before_parameter_dct.get("resolved_value")
1024-
or before_parameter_dct["given_value"]
1025-
or before_parameter_dct.get("default_value")
1025+
before_parameter = before_parameter_dct.get("resolved_value") or engine_parameter_value(
1026+
before_parameter_dct
10261027
)
10271028

10281029
after_parameter = Nothing
10291030
if not is_nothing(after_parameter_dct):
1030-
after_parameter = (
1031-
after_parameter_dct.get("resolved_value")
1032-
or after_parameter_dct["given_value"]
1033-
or after_parameter_dct.get("default_value")
1031+
after_parameter = after_parameter_dct.get("resolved_value") or engine_parameter_value(
1032+
after_parameter_dct
10341033
)
10351034

10361035
parameter = self._visit_value(

localstack-core/localstack/services/cloudformation/v2/entities.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@ class EngineParameter(TypedDict):
4545
default_value: NotRequired[str | None]
4646

4747

48+
def engine_parameter_value(parameter: EngineParameter) -> str:
49+
value = parameter.get("given_value") or parameter.get("default_value")
50+
if value is None:
51+
raise RuntimeError("Parameter value is None")
52+
53+
return value
54+
55+
4856
class ResolvedResource(TypedDict):
4957
LogicalResourceId: str
5058
Type: str

0 commit comments

Comments
 (0)