in cloudstack/resource_cloudstack_template.go [279:326]
func resourceCloudStackTemplateUpdate(d *schema.ResourceData, meta interface{}) error {
cs := meta.(*cloudstack.CloudStackClient)
name := d.Get("name").(string)
// Create a new parameter struct
p := cs.Template.NewUpdateTemplateParams(d.Id())
if d.HasChange("name") {
p.SetName(name)
}
if d.HasChange("display_text") {
p.SetDisplaytext(d.Get("display_text").(string))
}
if d.HasChange("format") {
p.SetFormat(d.Get("format").(string))
}
if d.HasChange("is_dynamically_scalable") {
p.SetIsdynamicallyscalable(d.Get("is_dynamically_scalable").(bool))
}
if d.HasChange("os_type") {
ostypeid, e := retrieveID(cs, "os_type", d.Get("os_type").(string))
if e != nil {
return e.Error()
}
p.SetOstypeid(ostypeid)
}
if d.HasChange("password_enabled") {
p.SetPasswordenabled(d.Get("password_enabled").(bool))
}
_, err := cs.Template.UpdateTemplate(p)
if err != nil {
return fmt.Errorf("Error updating template %s: %s", name, err)
}
if d.HasChange("tags") {
if err := updateTags(cs, d, "Template"); err != nil {
return fmt.Errorf("Error updating tags on template %s: %s", name, err)
}
}
return resourceCloudStackTemplateRead(d, meta)
}