providers/google: Fix read for the backend service resource (#7476)

This commit is contained in:
Evan Brown 2016-08-07 17:28:43 -07:00 committed by Paul Stack
parent ace4cf2831
commit f92b5eafa8
2 changed files with 56 additions and 15 deletions

View File

@ -255,20 +255,21 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{
HealthChecks: healthChecks,
}
if d.HasChange("backend") {
service.Backends = expandBackends(d.Get("backend").(*schema.Set).List())
// Optional things
if v, ok := d.GetOk("backend"); ok {
service.Backends = expandBackends(v.(*schema.Set).List())
}
if d.HasChange("description") {
service.Description = d.Get("description").(string)
if v, ok := d.GetOk("description"); ok {
service.Description = v.(string)
}
if d.HasChange("port_name") {
service.PortName = d.Get("port_name").(string)
if v, ok := d.GetOk("port_name"); ok {
service.PortName = v.(string)
}
if d.HasChange("protocol") {
service.Protocol = d.Get("protocol").(string)
if v, ok := d.GetOk("protocol"); ok {
service.Protocol = v.(string)
}
if d.HasChange("timeout_sec") {
service.TimeoutSec = int64(d.Get("timeout_sec").(int))
if v, ok := d.GetOk("timeout_sec"); ok {
service.TimeoutSec = int64(v.(int))
}
if d.HasChange("enable_cdn") {

View File

@ -46,7 +46,6 @@ func TestAccComputeBackendService_withBackend(t *testing.T) {
itName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
checkName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
var svc compute.BackendService
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
@ -54,7 +53,7 @@ func TestAccComputeBackendService_withBackend(t *testing.T) {
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccComputeBackendService_withBackend(
serviceName, igName, itName, checkName),
serviceName, igName, itName, checkName, 10),
Check: resource.ComposeTestCheckFunc(
testAccCheckComputeBackendServiceExists(
"google_compute_backend_service.lipsum", &svc),
@ -74,6 +73,47 @@ func TestAccComputeBackendService_withBackend(t *testing.T) {
}
}
func TestAccComputeBackendService_withBackendAndUpdate(t *testing.T) {
serviceName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
igName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
itName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
checkName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
var svc compute.BackendService
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckComputeBackendServiceDestroy,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccComputeBackendService_withBackend(
serviceName, igName, itName, checkName, 10),
Check: resource.ComposeTestCheckFunc(
testAccCheckComputeBackendServiceExists(
"google_compute_backend_service.lipsum", &svc),
),
},
resource.TestStep{
Config: testAccComputeBackendService_withBackend(
serviceName, igName, itName, checkName, 20),
Check: resource.ComposeTestCheckFunc(
testAccCheckComputeBackendServiceExists(
"google_compute_backend_service.lipsum", &svc),
),
},
},
})
if svc.TimeoutSec != 20 {
t.Errorf("Expected TimeoutSec == 20, got %d", svc.TimeoutSec)
}
if svc.Protocol != "HTTP" {
t.Errorf("Expected Protocol to be HTTP, got %q", svc.Protocol)
}
if len(svc.Backends) != 1 {
t.Errorf("Expected 1 backend, got %d", len(svc.Backends))
}
}
func testAccCheckComputeBackendServiceDestroy(s *terraform.State) error {
config := testAccProvider.Meta().(*Config)
@ -204,14 +244,14 @@ resource "google_compute_http_health_check" "one" {
}
func testAccComputeBackendService_withBackend(
serviceName, igName, itName, checkName string) string {
serviceName, igName, itName, checkName string, timeout int64) string {
return fmt.Sprintf(`
resource "google_compute_backend_service" "lipsum" {
name = "%s"
description = "Hello World 1234"
port_name = "http"
protocol = "HTTP"
timeout_sec = 10
timeout_sec = %v
backend {
group = "${google_compute_instance_group_manager.foobar.instance_group}"
@ -249,5 +289,5 @@ resource "google_compute_http_health_check" "default" {
check_interval_sec = 1
timeout_sec = 1
}
`, serviceName, igName, itName, checkName)
`, serviceName, timeout, igName, itName, checkName)
}