diff --git a/builtin/providers/cloudstack/resource_cloudstack_vpc.go b/builtin/providers/cloudstack/resource_cloudstack_vpc.go index 44ce692125..3456d1c3d1 100644 --- a/builtin/providers/cloudstack/resource_cloudstack_vpc.go +++ b/builtin/providers/cloudstack/resource_cloudstack_vpc.go @@ -182,8 +182,26 @@ func resourceCloudStackVPCRead(d *schema.ResourceData, meta interface{}) error { func resourceCloudStackVPCUpdate(d *schema.ResourceData, meta interface{}) error { cs := meta.(*cloudstack.CloudStackClient) - // Check if the name or display text is changed - if d.HasChange("name") || d.HasChange("display_text") { + name := d.Get("name").(string) + + // Check if the name is changed + if d.HasChange("name") { + // Create a new parameter struct + p := cs.VPC.NewUpdateVPCParams(d.Id()) + + // Set the new name + p.SetName(name) + + // Update the VPC + _, err := cs.VPC.UpdateVPC(p) + if err != nil { + return fmt.Errorf( + "Error updating name of VPC %s: %s", name, err) + } + } + + // Check if the display text is changed + if d.HasChange("display_text") { // Create a new parameter struct p := cs.VPC.NewUpdateVPCParams(d.Id()) @@ -192,14 +210,15 @@ func resourceCloudStackVPCUpdate(d *schema.ResourceData, meta interface{}) error if !ok { displaytext = d.Get("name") } - // Set the (new) display text + + // Set the new display text p.SetDisplaytext(displaytext.(string)) // Update the VPC _, err := cs.VPC.UpdateVPC(p) if err != nil { return fmt.Errorf( - "Error updating VPC %s: %s", d.Get("name").(string), err) + "Error updating display test of VPC %s: %s", name, err) } }