Read named ports changes properly in google_compute_instance_group (#188)

This commit is contained in:
Vincent Roseberry 2017-07-13 10:24:25 -07:00 committed by Dana Hoffman
parent 349847400f
commit 666351627d
2 changed files with 19 additions and 19 deletions

View File

@ -186,14 +186,14 @@ func resourceComputeInstanceGroupRead(d *schema.ResourceData, meta interface{})
return err
}
// retreive instance group
// retrieve instance group
instanceGroup, err := config.clientCompute.InstanceGroups.Get(
project, d.Get("zone").(string), d.Id()).Do()
if err != nil {
return handleNotFoundError(err, d, fmt.Sprintf("Instance Group %q", d.Get("name").(string)))
}
// retreive instance group members
// retrieve instance group members
var memberUrls []string
members, err := config.clientCompute.InstanceGroups.ListInstances(
project, d.Get("zone").(string), d.Id(), &compute.InstanceGroupsListInstancesRequest{
@ -215,6 +215,8 @@ func resourceComputeInstanceGroupRead(d *schema.ResourceData, meta interface{})
d.Set("instances", memberUrls)
}
d.Set("named_port", flattenNamedPorts(instanceGroup.NamedPorts))
// Set computed fields
d.Set("network", instanceGroup.Network)
d.Set("size", instanceGroup.Size)
@ -230,12 +232,6 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{}
return err
}
// refresh the state incase referenced instances have been removed earlier in the run
err = resourceComputeInstanceGroupRead(d, meta)
if err != nil {
return fmt.Errorf("Error reading InstanceGroup: %s", err)
}
d.Partial(true)
if d.HasChange("instances") {
@ -263,13 +259,17 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{}
removeOp, err := config.clientCompute.InstanceGroups.RemoveInstances(
project, d.Get("zone").(string), d.Id(), removeReq).Do()
if err != nil {
return fmt.Errorf("Error removing instances from InstanceGroup: %s", err)
}
// Wait for the operation to complete
err = computeOperationWaitZone(config, removeOp, project, d.Get("zone").(string), "Updating InstanceGroup")
if err != nil {
return err
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
log.Printf("[WARN] Instances already removed from InstanceGroup: %s", remove)
} else {
return fmt.Errorf("Error removing instances from InstanceGroup: %s", err)
}
} else {
// Wait for the operation to complete
err = computeOperationWaitZone(config, removeOp, project, d.Get("zone").(string), "Updating InstanceGroup")
if err != nil {
return err
}
}
}

View File

@ -59,7 +59,7 @@ func TestAccComputeInstanceGroup_update(t *testing.T) {
testAccComputeInstanceGroup_exists(
"google_compute_instance_group.update", &instanceGroup),
testAccComputeInstanceGroup_updated(
"google_compute_instance_group.update", 3, &instanceGroup),
"google_compute_instance_group.update", 1, &instanceGroup),
testAccComputeInstanceGroup_named_ports(
"google_compute_instance_group.update",
map[string]int64{"http": 8081, "test": 8444},
@ -319,7 +319,7 @@ func testAccComputeInstanceGroup_update(instance string) string {
machine_type = "n1-standard-1"
can_ip_forward = false
zone = "us-central1-c"
count = 1
count = 2
disk {
image = "debian-8-jessie-v20160803"
@ -334,7 +334,7 @@ func testAccComputeInstanceGroup_update(instance string) string {
description = "Terraform test instance group"
name = "%s"
zone = "us-central1-c"
instances = [ "${google_compute_instance.ig_instance.self_link}" ]
instances = [ "${google_compute_instance.ig_instance.*.self_link}" ]
named_port {
name = "http"
port = "8080"
@ -354,7 +354,7 @@ func testAccComputeInstanceGroup_update2(instance string) string {
machine_type = "n1-standard-1"
can_ip_forward = false
zone = "us-central1-c"
count = 3
count = 1
disk {
image = "debian-8-jessie-v20160803"