elb_target_group - prevent a KeyError exception (#45169)

Ensure ports to integers after allowing the key 'Targets' to be available in params

(cherry picked from commit 038fd0d0f2)
This commit is contained in:
Sloane Hertel 2018-09-05 12:50:03 -04:00 committed by Toshio Kuratomi
parent 6d49cd643c
commit 66759810a0
2 changed files with 7 additions and 4 deletions

View file

@ -0,0 +1,3 @@
---
bugfixes:
- elb_target_group - cast target ports to integers before making API calls after the key 'Targets' is in params.

View file

@ -429,10 +429,6 @@ def create_or_update_target_group(connection, module):
if params['TargetType'] == 'ip': if params['TargetType'] == 'ip':
fail_if_ip_target_type_not_supported(module) fail_if_ip_target_type_not_supported(module)
# Correct type of target ports
for target in params['Targets']:
target['Port'] = int(target.get('Port', module.params.get('port')))
# Get target group # Get target group
tg = get_target_group(connection, module) tg = get_target_group(connection, module)
@ -496,6 +492,10 @@ def create_or_update_target_group(connection, module):
if module.params.get("targets"): if module.params.get("targets"):
params['Targets'] = module.params.get("targets") params['Targets'] = module.params.get("targets")
# Correct type of target ports
for target in params['Targets']:
target['Port'] = int(target.get('Port', module.params.get('port')))
# get list of current target instances. I can't see anything like a describe targets in the doco so # get list of current target instances. I can't see anything like a describe targets in the doco so
# describe_target_health seems to be the only way to get them # describe_target_health seems to be the only way to get them