Merge pull request #4693 from stack72/f-aws-asg-schedule-0values

provider/aws: aws autoscale schedule 0 values
This commit is contained in:
Paul Stack 2016-01-28 15:38:41 +00:00
commit 05d19b0fc3
3 changed files with 62 additions and 15 deletions

View File

@ -97,17 +97,9 @@ func resourceAwsAutoscalingScheduleCreate(d *schema.ResourceData, meta interface
params.Recurrence = aws.String(attr.(string)) params.Recurrence = aws.String(attr.(string))
} }
if attr, ok := d.GetOk("min_size"); ok { params.MinSize = aws.Int64(int64(d.Get("min_size").(int)))
params.MinSize = aws.Int64(int64(attr.(int))) params.MaxSize = aws.Int64(int64(d.Get("max_size").(int)))
} params.DesiredCapacity = aws.Int64(int64(d.Get("desired_capacity").(int)))
if attr, ok := d.GetOk("max_size"); ok {
params.MaxSize = aws.Int64(int64(attr.(int)))
}
if attr, ok := d.GetOk("desired_capacity"); ok {
params.DesiredCapacity = aws.Int64(int64(attr.(int)))
}
log.Printf("[INFO] Creating Autoscaling Scheduled Action: %s", d.Get("scheduled_action_name").(string)) log.Printf("[INFO] Creating Autoscaling Scheduled Action: %s", d.Get("scheduled_action_name").(string))
_, err := autoscalingconn.PutScheduledUpdateGroupAction(params) _, err := autoscalingconn.PutScheduledUpdateGroupAction(params)

View File

@ -47,6 +47,24 @@ func TestAccAWSAutoscalingSchedule_recurrence(t *testing.T) {
}) })
} }
func TestAccAWSAutoscalingSchedule_zeroValues(t *testing.T) {
var schedule autoscaling.ScheduledUpdateGroupAction
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckAWSAutoscalingScheduleDestroy,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccAWSAutoscalingScheduleConfig_zeroValues,
Check: resource.ComposeTestCheckFunc(
testAccCheckScalingScheduleExists("aws_autoscaling_schedule.foobar", &schedule),
),
},
},
})
}
func testAccCheckScalingScheduleExists(n string, policy *autoscaling.ScheduledUpdateGroupAction) resource.TestCheckFunc { func testAccCheckScalingScheduleExists(n string, policy *autoscaling.ScheduledUpdateGroupAction) resource.TestCheckFunc {
return func(s *terraform.State) error { return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n] rs, ok := s.RootModule().Resources[n]
@ -168,3 +186,38 @@ resource "aws_autoscaling_schedule" "foobar" {
autoscaling_group_name = "${aws_autoscaling_group.foobar.name}" autoscaling_group_name = "${aws_autoscaling_group.foobar.name}"
} }
`) `)
var testAccAWSAutoscalingScheduleConfig_zeroValues = fmt.Sprintf(`
resource "aws_launch_configuration" "foobar" {
name = "terraform-test-foobar5"
image_id = "ami-21f78e11"
instance_type = "t1.micro"
}
resource "aws_autoscaling_group" "foobar" {
availability_zones = ["us-west-2a"]
name = "terraform-test-foobar5"
max_size = 1
min_size = 1
health_check_grace_period = 300
health_check_type = "ELB"
force_delete = true
termination_policies = ["OldestInstance"]
launch_configuration = "${aws_launch_configuration.foobar.name}"
tag {
key = "Foo"
value = "foo-bar"
propagate_at_launch = true
}
}
resource "aws_autoscaling_schedule" "foobar" {
scheduled_action_name = "foobar"
max_size = 0
min_size = 0
desired_capacity = 0
start_time = "2018-01-16T07:00:00Z"
end_time = "2018-01-16T13:00:00Z"
autoscaling_group_name = "${aws_autoscaling_group.foobar.name}"
}
`)

View File

@ -45,11 +45,13 @@ The following arguments are supported:
* `end_time` - (Optional) The time for this action to end, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). * `end_time` - (Optional) The time for this action to end, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ).
If you try to schedule your action in the past, Auto Scaling returns an error messag If you try to schedule your action in the past, Auto Scaling returns an error messag
* `recurrence` - (Optional) The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format. * `recurrence` - (Optional) The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.
* `min_size` - (Optional) The minimum size for the Auto Scaling group. * `min_size` - (Optional) The minimum size for the Auto Scaling group. Default
* `max_size` - (Optional) The maximum size for the Auto Scaling group. 0.
* `desired_capacity` - (Optional) The number of EC2 instances that should be running in the group. * `max_size` - (Optional) The maximum size for the Auto Scaling group. Default
0.
* `desired_capacity` - (Optional) The number of EC2 instances that should be running in the group. Default 0.
~> **NOTE:** When `start_time` and `end_time` are specified with `recurrence` , they form the boundaries of when the recurring action will start and stop. ~> **NOTE:** When `start_time` and `end_time` are specified with `recurrence` , they form the boundaries of when the recurring action will start and stop.
## Attribute Reference ## Attribute Reference
* `arn` - The ARN assigned by AWS to the autoscaling schedule. * `arn` - The ARN assigned by AWS to the autoscaling schedule.