fix(ec2): no warning for importing Subnet without routeTableId, instead exception when referencing routeTable#31998
fix(ec2): no warning for importing Subnet without routeTableId, instead exception when referencing routeTable#31998
Conversation
aws-cdk-automation
left a comment
There was a problem hiding this comment.
The pull request linter has failed. See the aws-cdk-automation comment below for failure reasons. If you believe this pull request should receive an exemption, please comment and provide a justification.
A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed add Clarification Request to a comment.
|
Exemption Request In my opinion no integration test is needed for this change. |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
|
@rix0rrr anyone going to look at this? |
|
@Jacco Thanks for the PR. I will take a look tomorrow! |
| public get routeTable(): IRouteTable { | ||
| if (!this._routeTableId) { | ||
| throw new Error('You cannot reference an imported Subnet\'s route table if it was not supplied. Add the routeTableId when importing using Subnet.fromSubnetAttributes()') | ||
| } |
There was a problem hiding this comment.
This would be a breaking change. With the old code, CDK users can do:
if (subnet.routeTable.routeTableId === undefined) {
// handle gracefully
}In addition, the old warning would warn once where this new change will warn every time routeTable is accessed.
I went through the original issue and understood that the annoyance was because CDK users did not have a way to acknowledge the warning. But as mentioned in the issue, a feature was added to allow users doing so:
cdk.Annotations.of(subnet).acknowledgeWarning('@aws-cdk/aws-ec2:noSubnetRouteTableId');
With this feature, I think keeping the old behaviour is a less intrusive approach.
|
The pull request linter fails with the following errors: PRs must pass status checks before we can provide a meaningful review. If you would like to request an exemption from the status checks or clarification on feedback, please leave a comment on this PR containing ✅ A exemption request has been requested. Please wait for a maintainer's review. |
|
Closing this PR as the old behavior is preferable at the moment. Please let us know if you see a new and better approach. Thanks. |
|
Comments on closed issues and PRs are hard for our team to see. |
Issue # (if applicable)
Closes #19786.
Reason for this change
See discussion in mentioned issue.
Description of changes
The constructor of ImportedSubnet was changed to no longer emit a warning when no routeTableId is specified in the attributes. The public routeTable field was change to a property of which the get method throws en exception when it is accessed while undefined.
Description of how you validated changes
Two unit tests have been added. One to test that the warning is nog longer emitted and the other to verify that an exception is thrown when routeTable is referenced while no routeTableId was specified.
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license