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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// retreive instance group
|
// retrieve instance group
|
||||||
instanceGroup, err := config.clientCompute.InstanceGroups.Get(
|
instanceGroup, err := config.clientCompute.InstanceGroups.Get(
|
||||||
project, d.Get("zone").(string), d.Id()).Do()
|
project, d.Get("zone").(string), d.Id()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return handleNotFoundError(err, d, fmt.Sprintf("Instance Group %q", d.Get("name").(string)))
|
return handleNotFoundError(err, d, fmt.Sprintf("Instance Group %q", d.Get("name").(string)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// retreive instance group members
|
// retrieve instance group members
|
||||||
var memberUrls []string
|
var memberUrls []string
|
||||||
members, err := config.clientCompute.InstanceGroups.ListInstances(
|
members, err := config.clientCompute.InstanceGroups.ListInstances(
|
||||||
project, d.Get("zone").(string), d.Id(), &compute.InstanceGroupsListInstancesRequest{
|
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("instances", memberUrls)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
d.Set("named_port", flattenNamedPorts(instanceGroup.NamedPorts))
|
||||||
|
|
||||||
// Set computed fields
|
// Set computed fields
|
||||||
d.Set("network", instanceGroup.Network)
|
d.Set("network", instanceGroup.Network)
|
||||||
d.Set("size", instanceGroup.Size)
|
d.Set("size", instanceGroup.Size)
|
||||||
@ -230,12 +232,6 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{}
|
|||||||
return err
|
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)
|
d.Partial(true)
|
||||||
|
|
||||||
if d.HasChange("instances") {
|
if d.HasChange("instances") {
|
||||||
@ -263,13 +259,17 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{}
|
|||||||
removeOp, err := config.clientCompute.InstanceGroups.RemoveInstances(
|
removeOp, err := config.clientCompute.InstanceGroups.RemoveInstances(
|
||||||
project, d.Get("zone").(string), d.Id(), removeReq).Do()
|
project, d.Get("zone").(string), d.Id(), removeReq).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error removing instances from InstanceGroup: %s", err)
|
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||||
}
|
log.Printf("[WARN] Instances already removed from InstanceGroup: %s", remove)
|
||||||
|
} else {
|
||||||
// Wait for the operation to complete
|
return fmt.Errorf("Error removing instances from InstanceGroup: %s", err)
|
||||||
err = computeOperationWaitZone(config, removeOp, project, d.Get("zone").(string), "Updating InstanceGroup")
|
}
|
||||||
if err != nil {
|
} else {
|
||||||
return err
|
// Wait for the operation to complete
|
||||||
|
err = computeOperationWaitZone(config, removeOp, project, d.Get("zone").(string), "Updating InstanceGroup")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ func TestAccComputeInstanceGroup_update(t *testing.T) {
|
|||||||
testAccComputeInstanceGroup_exists(
|
testAccComputeInstanceGroup_exists(
|
||||||
"google_compute_instance_group.update", &instanceGroup),
|
"google_compute_instance_group.update", &instanceGroup),
|
||||||
testAccComputeInstanceGroup_updated(
|
testAccComputeInstanceGroup_updated(
|
||||||
"google_compute_instance_group.update", 3, &instanceGroup),
|
"google_compute_instance_group.update", 1, &instanceGroup),
|
||||||
testAccComputeInstanceGroup_named_ports(
|
testAccComputeInstanceGroup_named_ports(
|
||||||
"google_compute_instance_group.update",
|
"google_compute_instance_group.update",
|
||||||
map[string]int64{"http": 8081, "test": 8444},
|
map[string]int64{"http": 8081, "test": 8444},
|
||||||
@ -319,7 +319,7 @@ func testAccComputeInstanceGroup_update(instance string) string {
|
|||||||
machine_type = "n1-standard-1"
|
machine_type = "n1-standard-1"
|
||||||
can_ip_forward = false
|
can_ip_forward = false
|
||||||
zone = "us-central1-c"
|
zone = "us-central1-c"
|
||||||
count = 1
|
count = 2
|
||||||
|
|
||||||
disk {
|
disk {
|
||||||
image = "debian-8-jessie-v20160803"
|
image = "debian-8-jessie-v20160803"
|
||||||
@ -334,7 +334,7 @@ func testAccComputeInstanceGroup_update(instance string) string {
|
|||||||
description = "Terraform test instance group"
|
description = "Terraform test instance group"
|
||||||
name = "%s"
|
name = "%s"
|
||||||
zone = "us-central1-c"
|
zone = "us-central1-c"
|
||||||
instances = [ "${google_compute_instance.ig_instance.self_link}" ]
|
instances = [ "${google_compute_instance.ig_instance.*.self_link}" ]
|
||||||
named_port {
|
named_port {
|
||||||
name = "http"
|
name = "http"
|
||||||
port = "8080"
|
port = "8080"
|
||||||
@ -354,7 +354,7 @@ func testAccComputeInstanceGroup_update2(instance string) string {
|
|||||||
machine_type = "n1-standard-1"
|
machine_type = "n1-standard-1"
|
||||||
can_ip_forward = false
|
can_ip_forward = false
|
||||||
zone = "us-central1-c"
|
zone = "us-central1-c"
|
||||||
count = 3
|
count = 1
|
||||||
|
|
||||||
disk {
|
disk {
|
||||||
image = "debian-8-jessie-v20160803"
|
image = "debian-8-jessie-v20160803"
|
||||||
|
Loading…
Reference in New Issue
Block a user