elb_application_lb: fix issue with boto parameter validation on Rules (#27333)

This commit is contained in:
Michael Tinning 2017-08-23 18:49:52 +01:00 committed by ansibot
parent cfc6d9f904
commit 282e743eb0
2 changed files with 163 additions and 4 deletions

View file

@ -685,8 +685,8 @@ def compare_rules(connection, module, current_listeners, listener):
if modified_rule:
modified_rule['Priority'] = int(current_rule['Priority'])
modified_rule['RuleArn'] = current_rule['RuleArn']
modified_rule['Actions'] = current_rule['Actions']
modified_rule['Conditions'] = current_rule['Conditions']
modified_rule['Actions'] = new_rule['Actions']
modified_rule['Conditions'] = new_rule['Conditions']
rules_to_modify.append(modified_rule)
break
@ -716,7 +716,11 @@ def create_or_update_elb_listeners(connection, module, elb):
for listener_to_add in listeners_to_add:
try:
listener_to_add['LoadBalancerArn'] = elb['LoadBalancerArn']
connection.create_listener(**listener_to_add)
# Rules is not a valid parameter for create_listener
listener_to_add.pop('Rules')
response = connection.create_listener(**listener_to_add)
# Add the new listener
current_listeners.append(response['Listeners'][0])
listener_changed = True
except ClientError as e:
module.fail_json(msg=e.message, exception=traceback.format_exc(), **camel_dict_to_snake_dict(e.response))
@ -724,6 +728,8 @@ def create_or_update_elb_listeners(connection, module, elb):
# Modify listeners
for listener_to_modify in listeners_to_modify:
try:
# Rules is not a valid parameter for modify_listener
listener_to_modify.pop('Rules')
connection.modify_listener(**listener_to_modify)
listener_changed = True
except ClientError as e:
@ -738,7 +744,7 @@ def create_or_update_elb_listeners(connection, module, elb):
module.fail_json(msg=e.message, exception=traceback.format_exc(), **camel_dict_to_snake_dict(e.response))
# For each listener, check rules
for listener in listeners:
for listener in deepcopy(listeners):
if 'Rules' in listener:
# Ensure rules are using Target Group ARN not name
listener['Rules'] = ensure_rules_action_has_arn(connection, module, listener['Rules'])