Skip to content

Commit

Permalink
providers/google: Fix read for the backend service resource (#7476)
Browse files Browse the repository at this point in the history
  • Loading branch information
evandbrown authored and stack72 committed Aug 8, 2016
1 parent f1e5505 commit 4968f6a
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 15 deletions.
21 changes: 11 additions & 10 deletions builtin/providers/google/resource_compute_backend_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -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") {
Expand Down
50 changes: 45 additions & 5 deletions builtin/providers/google/resource_compute_backend_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,14 @@ 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,
CheckDestroy: testAccCheckComputeBackendServiceDestroy,
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),
Expand All @@ -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)

Expand Down Expand Up @@ -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}"
Expand Down Expand Up @@ -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)
}

0 comments on commit 4968f6a

Please sign in to comment.