in cloudstack/resource_cloudstack_autoscale_vm_profile.go [191:229]
func resourceCloudStackAutoScaleVMProfileUpdate(d *schema.ResourceData, meta interface{}) error {
cs := meta.(*cloudstack.CloudStackClient)
// Create a new parameter struct
p := cs.AutoScale.NewUpdateAutoScaleVmProfileParams(d.Id())
if d.HasChange("template") {
zoneid, e := retrieveID(cs, "zone", d.Get("zone").(string))
if e != nil {
return e.Error()
}
templateid, e := retrieveTemplateID(cs, zoneid, d.Get("template").(string))
if e != nil {
return e.Error()
}
p.SetTemplateid(templateid)
}
if d.HasChange("destroy_vm_grace_period") {
duration, err := time.ParseDuration(d.Get("destroy_vm_grace_period").(string))
if err != nil {
return err
}
p.SetDestroyvmgraceperiod(int(duration.Seconds()))
}
_, err := cs.AutoScale.UpdateAutoScaleVmProfile(p)
if err != nil {
return fmt.Errorf("Error updating AutoScaleVmProfile %s: %s", d.Id(), err)
}
if d.HasChange("metadata") {
if err := updateMetadata(cs, d, "AutoScaleVmProfile"); err != nil {
return fmt.Errorf("Error updating tags on AutoScaleVmProfile %s: %s", d.Id(), err)
}
}
return resourceCloudStackAutoScaleVMProfileRead(d, meta)
}