Skip to content

Commit c807b68

Browse files
committed
Add delete_mapping function to manage event source mappings in adopt_event_source_mappings.sh
- Introduced a new delete_mapping function to handle the deletion of AWS Lambda event source mappings, including a timeout mechanism for deletion confirmation. - Updated adopt_mapping function to utilize the new delete_mapping function, improving the logic for handling target and counterpart mapping UUIDs. - Enhanced code clarity and maintainability by restructuring the mapping lookup and deletion process.
1 parent 7cc77a6 commit c807b68

1 file changed

Lines changed: 32 additions & 3 deletions

File tree

utilities/scripts/adopt_event_source_mappings.sh

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,30 @@ state_has_resource() {
6666
terraform state show "${address}" >/dev/null 2>&1
6767
}
6868

69+
delete_mapping() {
70+
local mapping_uuid="$1"
71+
72+
aws lambda delete-event-source-mapping --uuid "${mapping_uuid}" >/dev/null
73+
74+
for _ in {1..30}; do
75+
if ! aws lambda get-event-source-mapping --uuid "${mapping_uuid}" >/dev/null 2>&1; then
76+
return 0
77+
fi
78+
79+
sleep 2
80+
done
81+
82+
echo "Timed out waiting for event source mapping ${mapping_uuid} to be deleted."
83+
exit 1
84+
}
85+
6986
adopt_mapping() {
7087
local address="$1"
7188
local event_source_arn="$2"
7289
local target_function_name="$3"
7390
local counterpart_function_name="${4:-}"
91+
local target_mapping_uuid=""
92+
local counterpart_mapping_uuid=""
7493
local mapping_uuid=""
7594

7695
shift 4
@@ -80,9 +99,19 @@ adopt_mapping() {
8099
return 0
81100
fi
82101

83-
mapping_uuid="$(lookup_mapping_uuid "${event_source_arn}" "${target_function_name}")"
84-
if [[ -z "${mapping_uuid}" && -n "${counterpart_function_name}" ]]; then
85-
mapping_uuid="$(lookup_mapping_uuid "${event_source_arn}" "${counterpart_function_name}")"
102+
target_mapping_uuid="$(lookup_mapping_uuid "${event_source_arn}" "${target_function_name}")"
103+
104+
if [[ -n "${counterpart_function_name}" ]]; then
105+
counterpart_mapping_uuid="$(lookup_mapping_uuid "${event_source_arn}" "${counterpart_function_name}")"
106+
fi
107+
108+
if [[ -n "${counterpart_mapping_uuid}" ]]; then
109+
if [[ -n "${target_mapping_uuid}" ]]; then
110+
delete_mapping "${target_mapping_uuid}"
111+
fi
112+
mapping_uuid="${counterpart_mapping_uuid}"
113+
else
114+
mapping_uuid="${target_mapping_uuid}"
86115
fi
87116

88117
if [[ -z "${mapping_uuid}" ]]; then

0 commit comments

Comments
 (0)