in cloudstack/resource_cloudstack_vpc.go [218:271]
func resourceCloudStackVPCUpdate(d *schema.ResourceData, meta interface{}) error {
cs := meta.(*cloudstack.CloudStackClient)
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())
// Set the display text
displaytext, ok := d.GetOk("display_text")
if !ok {
displaytext = d.Get("name")
}
// 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 display test of VPC %s: %s", name, err)
}
}
// Check is the tags have changed
if d.HasChange("tags") {
err := updateTags(cs, d, "Vpc")
if err != nil {
return fmt.Errorf("Error updating tags on VPC %s: %s", name, err)
}
d.SetPartial("tags")
}
return resourceCloudStackVPCRead(d, meta)
}