mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-07-03 08:42:39 +00:00
Fix update when changing health check type (#944)
This commit is contained in:
parent
a3e2c3ea05
commit
3d178f5633
|
@ -322,6 +322,9 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||
hchk := &compute.HealthCheck{
|
||||
Name: d.Get("name").(string),
|
||||
}
|
||||
|
||||
nullFields := make([]string, 0, 3)
|
||||
|
||||
// Optional things
|
||||
if v, ok := d.GetOk("description"); ok {
|
||||
hchk.Description = v.(string)
|
||||
|
@ -355,6 +358,8 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||
tcpHealthCheck.Response = val.(string)
|
||||
}
|
||||
hchk.TcpHealthCheck = tcpHealthCheck
|
||||
} else {
|
||||
nullFields = append(nullFields, "TcpHealthCheck")
|
||||
}
|
||||
if v, ok := d.GetOk("ssl_health_check"); ok {
|
||||
hchk.Type = "SSL"
|
||||
|
@ -373,6 +378,8 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||
sslHealthCheck.Response = val.(string)
|
||||
}
|
||||
hchk.SslHealthCheck = sslHealthCheck
|
||||
} else {
|
||||
nullFields = append(nullFields, "SslHealthCheck")
|
||||
}
|
||||
if v, ok := d.GetOk("http_health_check"); ok {
|
||||
hchk.Type = "HTTP"
|
||||
|
@ -391,6 +398,8 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||
httpHealthCheck.RequestPath = val.(string)
|
||||
}
|
||||
hchk.HttpHealthCheck = httpHealthCheck
|
||||
} else {
|
||||
nullFields = append(nullFields, "HttpHealthCheck")
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("https_health_check"); ok {
|
||||
|
@ -410,8 +419,12 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||
httpsHealthCheck.RequestPath = val.(string)
|
||||
}
|
||||
hchk.HttpsHealthCheck = httpsHealthCheck
|
||||
} else {
|
||||
nullFields = append(nullFields, "HttpsHealthCheck")
|
||||
}
|
||||
|
||||
hchk.NullFields = nullFields
|
||||
|
||||
log.Printf("[DEBUG] HealthCheck patch request: %#v", hchk)
|
||||
op, err := config.clientCompute.HealthChecks.Patch(
|
||||
project, hchk.Name, hchk).Do()
|
||||
|
|
|
@ -168,6 +168,35 @@ func TestAccComputeHealthCheck_https(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func TestAccComputeHealthCheck_typeTransition(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
hckName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
Providers: testAccProviders,
|
||||
CheckDestroy: testAccCheckComputeHealthCheckDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
resource.TestStep{
|
||||
Config: testAccComputeHealthCheck_https(hckName),
|
||||
},
|
||||
resource.TestStep{
|
||||
Config: testAccComputeHealthCheck_http(hckName),
|
||||
},
|
||||
resource.TestStep{
|
||||
Config: testAccComputeHealthCheck_ssl(hckName),
|
||||
},
|
||||
resource.TestStep{
|
||||
Config: testAccComputeHealthCheck_tcp(hckName),
|
||||
},
|
||||
resource.TestStep{
|
||||
Config: testAccComputeHealthCheck_https(hckName),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccComputeHealthCheck_tcpAndSsl_shouldFail(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user