From 341c7ce30745b0a957f63ca57cf2c0d50d4d48e7 Mon Sep 17 00:00:00 2001 From: James Martin Date: Wed, 12 Nov 2014 12:16:53 -0500 Subject: [PATCH] asg will now be terminated if state=absent. adds mutually exclusive options --- cloud/amazon/ec2_asg.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cloud/amazon/ec2_asg.py b/cloud/amazon/ec2_asg.py index 4940d0d9dcd..7fcd332fc4b 100755 --- a/cloud/amazon/ec2_asg.py +++ b/cloud/amazon/ec2_asg.py @@ -557,9 +557,13 @@ def main(): tags=dict(type='list', default=[]), health_check_period=dict(type='int', default=300), health_check_type=dict(default='EC2', choices=['EC2', 'ELB']), - ) + ), + ) + + module = AnsibleModule( + argument_spec=argument_spec, + mutually_exclusive = [['replace_all_instances', 'replace_instances']] ) - module = AnsibleModule(argument_spec=argument_spec) state = module.params.get('state') replace_instances = module.params.get('replace_instances') @@ -572,15 +576,15 @@ def main(): except boto.exception.NoAuthHandlerFound, e: module.fail_json(msg=str(e)) changed = create_changed = replace_changed = False - if replace_all_instances and replace_instances: - module.fail_json(msg="You can't use replace_instances and replace_all_instances in the same task.") + + if state == 'present': create_changed, asg_properties=create_autoscaling_group(connection, module) - if replace_all_instances or replace_instances: - replace_changed, asg_properties=replace(connection, module) elif state == 'absent': changed = delete_autoscaling_group(connection, module) module.exit_json( changed = changed ) + if replace_all_instances or replace_instances: + replace_changed, asg_properties=replace(connection, module) if create_changed or replace_changed: changed = True module.exit_json( changed = changed, **asg_properties )