[Bug] Fix is_subnet_public to use main route table for subnets without explicit association #7174
+94
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
is_subnet_public()to correctly identify public subnets that use the VPC's main route tableroute_tables[0]Root Cause
When a subnet has no explicit route table association, it implicitly uses the VPC's main route table. The previous implementation fetched all VPC route tables but only checked
route_tables[0], which may not be the main route table. This caused public subnets (using main route table with IGW) to be incorrectly identified as private.Changes
cli/src/pcluster/aws/ec2.pyAssociations[].Mainflagcli/tests/pcluster/aws/test_ec2.pyTest plan
test_is_subnet_publicpassestest_is_subnet_public_with_main_route_tablepassestest_is_subnet_public_main_route_table_no_igwpassesFixes #7173