Thanks to visit codestin.com
Credit goes to github.com

Skip to content

CloudFormation v2 Engine: Base Support for Fn::And Fn::Or and Condition Bindings #12706

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 31 commits into from
Jun 6, 2025

Conversation

MEPalma
Copy link
Contributor

@MEPalma MEPalma commented Jun 3, 2025

Motivation

The introduction of the CloudFormation v2 engine laid the foundation for a redesigned engine capable of accurately determining update requirements between CloudFormation deployments, while also enabling parallel execution during updates. However, the current implementation does not support Fn::And, Fn::Or, nor {"Condition": "<identifer>"} bindings.

Changes

  • Add support for update modeling/describe/execution of Fn::And, Fn::Or, and condition bindings
  • Unblock related tests ported from v1
  • Unrelated maintenance on ported tests from v1

@MEPalma MEPalma added this to the 4.5 milestone Jun 3, 2025
@MEPalma MEPalma self-assigned this Jun 3, 2025
@MEPalma MEPalma requested a review from dominikschubert as a code owner June 3, 2025 15:46
@MEPalma MEPalma added the semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases label Jun 3, 2025
@MEPalma MEPalma requested review from pinzon and simonrw as code owners June 3, 2025 15:46
@MEPalma MEPalma removed the request for review from dominikschubert June 3, 2025 15:46
@MEPalma MEPalma removed the request for review from pinzon June 3, 2025 15:46
Copy link

github-actions bot commented Jun 3, 2025

Test Results - Preflight, Unit

21 595 tests  ±0   19 940 ✅ ±0   6m 58s ⏱️ +41s
     1 suites ±0    1 655 💤 ±0 
     1 files   ±0        0 ❌ ±0 

Results for commit 46ea4b1. ± Comparison against base commit 2128c6a.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 3, 2025

Test Results (amd64) - Acceptance

7 tests  ±0   5 ✅ ±0   3m 7s ⏱️ -1s
1 suites ±0   2 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit 46ea4b1. ± Comparison against base commit 2128c6a.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 3, 2025

LocalStack Community integration with Pro

  2 files    2 suites   21m 50s ⏱️
885 tests 319 ✅ 566 💤 0 ❌
887 runs  319 ✅ 568 💤 0 ❌

Results for commit 46ea4b1.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 3, 2025

Test Results - Alternative Providers

987 tests   584 ✅  23m 7s ⏱️
  4 suites  403 💤
  4 files      0 ❌

Results for commit 46ea4b1.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 3, 2025

Test Results (amd64) - Integration, Bootstrap

  5 files    5 suites   33m 17s ⏱️
909 tests 344 ✅ 565 💤 0 ❌
915 runs  344 ✅ 571 💤 0 ❌

Results for commit 46ea4b1.

♻️ This comment has been updated with latest results.

@tiurin tiurin modified the milestones: 4.5, 4.6 Jun 4, 2025
Copy link
Contributor

@simonrw simonrw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work!

@@ -249,7 +249,6 @@ def test_mapping_ref_map_key(self, deploy_cfn_template, aws_client, map_key, sho

aws_client.sns.get_topic_attributes(TopicArn=topic_arn)

# @pytest.mark.skip(reason="CFNV2:Mappings")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@pytest.mark.skip(reason="CFNV2:ReferenceDotSyntax")
@pytest.mark.skip(
reason="CFNV2:Other resource name conflict with another test case resource in this suite"
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess because the deletion is not implemented yet, so we are leaving resources lying around.

@@ -169,7 +169,7 @@ def test_dynamodb_stream_response_with_cf(deploy_cfn_template, aws_client, snaps
snapshot.add_transformer(snapshot.transform.key_value("TableName"))


@pytest.mark.skip(reason="CFNV2:ReferenceDotSyntax")
@pytest.mark.skip(reason="CFNV2:Other")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: it would be nice when classifying skips as "Other" to add a little more detail (as you do above) on the actual failure, so we can look for common patterns.

Base automatically changed from MEP-CFN-fn_fixes to master June 6, 2025 11:58
@MEPalma MEPalma merged commit 9de2d58 into master Jun 6, 2025
56 checks passed
@MEPalma MEPalma deleted the MEP-CFN-fn_and_or_condition branch June 6, 2025 15:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants