Skip to content

Commit ebe637a

Browse files
committed
Remove transform section of a template
1 parent 7b5f438 commit ebe637a

File tree

2 files changed

+24
-25
lines changed

2 files changed

+24
-25
lines changed

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

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from typing import Any, Final, Optional, TypedDict
55

66
import boto3
7+
import jsonpath_ng
78
from botocore.exceptions import ClientError
89
from samtranslator.translator.transform import transform as transform_sam
910

@@ -199,7 +200,6 @@ def _apply_global_macro_transformation(
199200
stack_parameters=parameters,
200201
transformation_parameters=transformation_parameters,
201202
)
202-
# The type annotation on the v1 util appears to be incorrect.
203203
return transformed_template # noqa
204204

205205
def _apply_global_transform(
@@ -256,31 +256,32 @@ def transform(self) -> tuple[dict, dict]:
256256

257257
transformed_before_template = self._before_template
258258
if transform_before and not is_nothing(self._before_template):
259-
transformed_before_template = self._before_cache.get(_SCOPE_TRANSFORM_TEMPLATE_OUTCOME)
260-
if not transformed_before_template:
261-
transformed_before_template = self._before_template
262-
for before_global_transform in transform_before:
263-
if not is_nothing(before_global_transform.name):
264-
transformed_before_template = self._apply_global_transform(
265-
global_transform=before_global_transform,
266-
parameters=parameters_before,
267-
template=transformed_before_template,
268-
)
269-
self._before_cache[_SCOPE_TRANSFORM_TEMPLATE_OUTCOME] = transformed_before_template
259+
transformed_before_template = self._before_template
260+
for before_global_transform in transform_before:
261+
if not is_nothing(before_global_transform.name):
262+
transformed_before_template = self._apply_global_transform(
263+
global_transform=before_global_transform,
264+
parameters=parameters_before,
265+
template=transformed_before_template,
266+
)
267+
268+
# Macro transformations won't remove the transform from the template
269+
transformed_before_template.pop("Transform", "")
270+
self._before_cache[_SCOPE_TRANSFORM_TEMPLATE_OUTCOME] = transformed_before_template
270271

271272
transformed_after_template = self._after_template
272273
if transform_after and not is_nothing(self._after_template):
273-
transformed_after_template = self._after_cache.get(_SCOPE_TRANSFORM_TEMPLATE_OUTCOME)
274-
if not transformed_after_template:
275-
transformed_after_template = self._after_template
276-
for after_global_transform in transform_after:
277-
if not is_nothing(after_global_transform.name):
278-
transformed_after_template = self._apply_global_transform(
279-
global_transform=after_global_transform,
280-
parameters=parameters_after,
281-
template=transformed_after_template,
282-
)
283-
self._after_cache[_SCOPE_TRANSFORM_TEMPLATE_OUTCOME] = transformed_after_template
274+
transformed_after_template = self._after_template
275+
for after_global_transform in transform_after:
276+
if not is_nothing(after_global_transform.name):
277+
transformed_after_template = self._apply_global_transform(
278+
global_transform=after_global_transform,
279+
parameters=parameters_after,
280+
template=transformed_after_template,
281+
)
282+
# Macro transformations won't remove the transform from the template
283+
transformed_after_template.pop("Transform", "")
284+
self._after_cache[_SCOPE_TRANSFORM_TEMPLATE_OUTCOME] = transformed_after_template
284285

285286
self._save_runtime_cache()
286287

@@ -394,7 +395,6 @@ def _normalize_transform(obj):
394395
def _replace_at_jsonpath(self, template, node, result):
395396
path = node.scope.to_jsonpath()
396397
parent_path = ".".join(path.split(".")[:-1])
397-
import jsonpath_ng
398398

399399
pattern = jsonpath_ng.parse(parent_path)
400400
result_template = pattern.update(template, result)

tests/aws/services/cloudformation/test_template_engine.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,6 @@ def test_macro_deployment(
632632
snapshot.match("stack_outputs", stack_with_macro.outputs)
633633
snapshot.match("stack_resource_descriptions", description)
634634

635-
@skip_if_v2_provider(reason="CFNV2:Macros")
636635
@markers.aws.validated
637636
@markers.snapshot.skip_snapshot_verify(
638637
paths=[

0 commit comments

Comments
 (0)