Skip to content

Commit 63f2ec7

Browse files
Internet Gateway terminal codes (#58)
Issue #, if available: [1362](aws-controllers-k8s/community#1362) Description of changes: Made the following changes in order to map exceptions for **internet gateway** resource in ec2-controller. - Added terminal codes in the "generator.yaml" for internet gateway resource. - Added few integration tests for internet gateway resource that cover invalid and malformed vpc-id. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent a692ade commit 63f2ec7

File tree

5 files changed

+55
-6
lines changed

5 files changed

+55
-6
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
ack_generate_info:
2-
build_date: "2022-06-28T16:37:45Z"
2+
build_date: "2022-07-13T18:52:15Z"
33
build_hash: 208b1e15257d57c46729698f47a40fd59441ecbd
4-
go_version: go1.18.1
4+
go_version: go1.18.3
55
version: v0.19.2-1-g208b1e1
66
api_directory_checksum: 8c35bdcab21768638dfaa277896e05fdd8a11969
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.42.0
99
generator_config_info:
10-
file_checksum: 93b679809f07b0ffa74b5ac6dce890d955e2cc19
10+
file_checksum: b8c9656298e66891b1a4ecf1c915423499795c6c
1111
original_file_name: generator.yaml
1212
last_modification:
1313
reason: API generation

apis/v1alpha1/generator.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,9 @@ resources:
233233
sdk_read_many_post_build_request:
234234
template_path: hooks/elastic_ip_address/sdk_read_many_post_build_request.go.tpl
235235
InternetGateway:
236+
exceptions:
237+
terminal_codes:
238+
- InvalidVpcId.Malformed
236239
fields:
237240
Tags:
238241
from:

generator.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,9 @@ resources:
233233
sdk_read_many_post_build_request:
234234
template_path: hooks/elastic_ip_address/sdk_read_many_post_build_request.go.tpl
235235
InternetGateway:
236+
exceptions:
237+
terminal_codes:
238+
- InvalidVpcId.Malformed
236239
fields:
237240
Tags:
238241
from:

pkg/resource/internet_gateway/sdk.go

Lines changed: 13 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/e2e/tests/test_internet_gateway.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,4 +181,36 @@ def test_vpc_association(self, ec2_client, empty_vpc):
181181
time.sleep(DELETE_WAIT_AFTER_SECONDS)
182182

183183
# Check Internet Gateway no longer exists in AWS
184-
ec2_validator.assert_internet_gateway(resource_id, exists=False)
184+
ec2_validator.assert_internet_gateway(resource_id, exists=False)
185+
186+
def test_terminal_condition_malformed_vpc(self):
187+
test_resource_values = REPLACEMENT_VALUES.copy()
188+
resource_name = random_suffix_name("ig-ack-fail-1", 24)
189+
test_resource_values["INTERNET_GATEWAY_NAME"] = resource_name
190+
test_resource_values["VPC_ID"] = "MalformedVpcId"
191+
192+
# Load Internet Gateway CR
193+
resource_data = load_ec2_resource(
194+
"internet_gateway_vpc_attachment",
195+
additional_replacements=test_resource_values,
196+
)
197+
logging.debug(resource_data)
198+
199+
# Create k8s resource
200+
ref = k8s.CustomResourceReference(
201+
CRD_GROUP, CRD_VERSION, RESOURCE_PLURAL,
202+
resource_name, namespace="default",
203+
)
204+
k8s.create_custom_resource(ref, resource_data)
205+
cr = k8s.wait_resource_consumed_by_controller(ref)
206+
207+
assert cr is not None
208+
assert k8s.get_resource_exists(ref)
209+
210+
expected_msg = 'InvalidVpcId.Malformed: Invalid id: "MalformedVpcId"'
211+
terminal_condition = k8s.get_resource_condition(ref, "ACK.Terminal")
212+
# Example condition message:
213+
# An error occurred (InvalidVpcId.Malformed) when calling the AttachInternetGateway operation:
214+
# Invalid id: "MalformedVpcId"
215+
# (expecting "vpc-...")
216+
assert expected_msg in terminal_condition['message']

0 commit comments

Comments
 (0)