Skip to content

Commit f5d5eaf

Browse files
authored
fix(service_instance resource): only send modified attributes in update request (#550)
* fix(service_instance resource): only send modified attributes in update request * typo
1 parent 88db0a2 commit f5d5eaf

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

cloudfoundry/resource_cf_service_instance.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -346,14 +346,20 @@ func resourceServiceInstanceUpdate(ctx context.Context, d *schema.ResourceData,
346346

347347
serviceInstanceUpdate := resources.ServiceInstance{
348348
Name: name,
349-
Parameters: paramsFormatted,
350-
Tags: tagsFormatted,
351-
Metadata: &metadata,
352349
}
353-
// Some services don't support changing service plan, so we only add it to request body only if changed by user
350+
// Only add in the request body what has changed, because some services don't support updating multiple attributes at the same time
354351
if d.HasChange("service_plan") {
355352
serviceInstanceUpdate.ServicePlanGUID = d.Get("service_plan").(string)
356353
}
354+
if d.HasChange("tags") {
355+
serviceInstanceUpdate.Tags = tagsFormatted
356+
}
357+
if d.HasChange("json_params") {
358+
serviceInstanceUpdate.Parameters = paramsFormatted
359+
}
360+
if d.HasChange("labels") {
361+
serviceInstanceUpdate.Metadata = &metadata
362+
}
357363

358364
jobURL, _, err := session.ClientV3.UpdateServiceInstance(id, serviceInstanceUpdate)
359365
// log.Printf("Service Instance Object Job URL : %+v", JobURL)

0 commit comments

Comments
 (0)