-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Cloud Formation: [POC] Support for Update Graph Modeling of: Conditions, Intrinsic Functions, and Type Divergences #12421
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
Cloud Formation: [POC] Support for Update Graph Modeling of: Conditions, Intrinsic Functions, and Type Divergences #12421
Conversation
LocalStack Community integration with Pro 2 files ± 0 2 suites ±0 21m 6s ⏱️ - 1h 30m 36s Results for commit 5c25903. ± Comparison against base commit 7fdfe01. This pull request removes 3882 tests.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome stuff!
|
||
Maybe = Union[T, NothingType] | ||
Nothing = NothingType() | ||
|
||
|
||
class Scope(str): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love this concept, thank you!
self.resources = resources | ||
|
||
|
||
class NodeDivergence(ChangeSetNode): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note for the future: it will be nice to get some docstrings indicating what these resources represent (possibly with an example from a template)
* Depends on #12405
Motivation
Currently, the POC Update Graph approach to modeling CloudFormation templates does not support CloudFormation Conditions. This gap prevents condition-driven workflows from being accurately tracked or updated within the existing logic. In addition, there is no support for certain intrinsic functions (such as Fn::If, Fn::Not, and Fn::Equals). Furthermore, the modeling layer does not currently handle scenarios where changes in a template result in a new subtype or intrinsic function (for example, switching from one intrinsic function to a different one). This limitation meant that strict type changes to certain template bindings was not supported. Finally, caching mechanisms within the describer visitor are needed. A number of minor issues with this pipeline were also addressed. Unit tests have been added to validate these scenarios.
Changes