attempt to set availability_zones to all if neither availability_zones or vpc_identifier are set

This commit is contained in:
Ben Holloway 2014-04-24 17:56:26 -06:00
parent 008905f58d
commit c20f6b58c7

View file

@ -39,8 +39,8 @@ options:
required: false
availability_zones:
description:
- List of availability zone names in which to create the group.
required: true
- List of availability zone names in which to create the group. Required if vpc_zone_identifier is not set.
required: false
launch_config_name:
description:
- Name of the Launch configuration to use for the group. See the ec2_lc module for managing these.
@ -102,7 +102,7 @@ def enforce_required_arguments(module):
they cannot be mandatory arguments for the module, so we enforce
them here '''
missing_args = []
for arg in ('min_size', 'max_size', 'launch_config_name', 'availability_zones'):
for arg in ('min_size', 'max_size', 'launch_config_name'):
if module.params[arg] is None:
missing_args.append(arg)
if missing_args:
@ -122,9 +122,17 @@ def create_autoscaling_group(connection, module):
vpc_zone_identifier = module.params.get('vpc_zone_identifier')
launch_configs = connection.get_all_launch_configurations(names=[launch_config_name])
as_groups = connection.get_all_groups(names=[group_name])
if not vpc_zone_identifier and not availability_zones:
region, ec2_url, aws_connect_params = get_aws_connection_info(module)
try:
ec2_connection = connect_to_aws(boto.ec2, region, **aws_connect_params)
except boto.exception.NoAuthHandlerFound, e:
module.fail_json(msg=str(e))
module.params['availability_zones'] = [zone.name for zone in ec2_connection.get_all_zones()]
if not as_groups:
ag = AutoScalingGroup(
group_name=group_name,