mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-04 17:51:11 +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{
|
hchk := &compute.HealthCheck{
|
||||||
Name: d.Get("name").(string),
|
Name: d.Get("name").(string),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nullFields := make([]string, 0, 3)
|
||||||
|
|
||||||
// Optional things
|
// Optional things
|
||||||
if v, ok := d.GetOk("description"); ok {
|
if v, ok := d.GetOk("description"); ok {
|
||||||
hchk.Description = v.(string)
|
hchk.Description = v.(string)
|
||||||
@ -355,6 +358,8 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||||||
tcpHealthCheck.Response = val.(string)
|
tcpHealthCheck.Response = val.(string)
|
||||||
}
|
}
|
||||||
hchk.TcpHealthCheck = tcpHealthCheck
|
hchk.TcpHealthCheck = tcpHealthCheck
|
||||||
|
} else {
|
||||||
|
nullFields = append(nullFields, "TcpHealthCheck")
|
||||||
}
|
}
|
||||||
if v, ok := d.GetOk("ssl_health_check"); ok {
|
if v, ok := d.GetOk("ssl_health_check"); ok {
|
||||||
hchk.Type = "SSL"
|
hchk.Type = "SSL"
|
||||||
@ -373,6 +378,8 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||||||
sslHealthCheck.Response = val.(string)
|
sslHealthCheck.Response = val.(string)
|
||||||
}
|
}
|
||||||
hchk.SslHealthCheck = sslHealthCheck
|
hchk.SslHealthCheck = sslHealthCheck
|
||||||
|
} else {
|
||||||
|
nullFields = append(nullFields, "SslHealthCheck")
|
||||||
}
|
}
|
||||||
if v, ok := d.GetOk("http_health_check"); ok {
|
if v, ok := d.GetOk("http_health_check"); ok {
|
||||||
hchk.Type = "HTTP"
|
hchk.Type = "HTTP"
|
||||||
@ -391,6 +398,8 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||||||
httpHealthCheck.RequestPath = val.(string)
|
httpHealthCheck.RequestPath = val.(string)
|
||||||
}
|
}
|
||||||
hchk.HttpHealthCheck = httpHealthCheck
|
hchk.HttpHealthCheck = httpHealthCheck
|
||||||
|
} else {
|
||||||
|
nullFields = append(nullFields, "HttpHealthCheck")
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := d.GetOk("https_health_check"); ok {
|
if v, ok := d.GetOk("https_health_check"); ok {
|
||||||
@ -410,8 +419,12 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{})
|
|||||||
httpsHealthCheck.RequestPath = val.(string)
|
httpsHealthCheck.RequestPath = val.(string)
|
||||||
}
|
}
|
||||||
hchk.HttpsHealthCheck = httpsHealthCheck
|
hchk.HttpsHealthCheck = httpsHealthCheck
|
||||||
|
} else {
|
||||||
|
nullFields = append(nullFields, "HttpsHealthCheck")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hchk.NullFields = nullFields
|
||||||
|
|
||||||
log.Printf("[DEBUG] HealthCheck patch request: %#v", hchk)
|
log.Printf("[DEBUG] HealthCheck patch request: %#v", hchk)
|
||||||
op, err := config.clientCompute.HealthChecks.Patch(
|
op, err := config.clientCompute.HealthChecks.Patch(
|
||||||
project, hchk.Name, hchk).Do()
|
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) {
|
func TestAccComputeHealthCheck_tcpAndSsl_shouldFail(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user