mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-01 16:21:06 +00:00
Read named ports changes properly in google_compute_instance_group (#188)
This commit is contained in:
parent
349847400f
commit
666351627d
@ -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,15 +259,19 @@ 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 {
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(add) > 0 {
|
||||
|
||||
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user