func resourceCloudStackVPCUpdate()

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)
}