in cloudstack/resource_cloudstack_service_offering.go [104:150]
func resourceCloudStackServiceOfferingCreate(d *schema.ResourceData, meta interface{}) error {
cs := meta.(*cloudstack.CloudStackClient)
name := d.Get("name").(string)
display_text := d.Get("display_text").(string)
// Create a new parameter struct
p := cs.ServiceOffering.NewCreateServiceOfferingParams(display_text, name)
if v, ok := d.GetOk("cpu_number"); ok {
p.SetCpunumber(v.(int))
}
if v, ok := d.GetOk("cpu_speed"); ok {
p.SetCpuspeed(v.(int))
}
if v, ok := d.GetOk("host_tags"); ok {
p.SetHosttags(v.(string))
}
if v, ok := d.GetOk("limit_cpu_use"); ok {
p.SetLimitcpuuse(v.(bool))
}
if v, ok := d.GetOk("memory"); ok {
p.SetMemory(v.(int))
}
if v, ok := d.GetOk("offer_ha"); ok {
p.SetOfferha(v.(bool))
}
if v, ok := d.GetOk("storage_type"); ok {
p.SetStoragetype(v.(string))
}
log.Printf("[DEBUG] Creating Service Offering %s", name)
s, err := cs.ServiceOffering.CreateServiceOffering(p)
if err != nil {
return err
}
log.Printf("[DEBUG] Service Offering %s successfully created", name)
d.SetId(s.Id)
return resourceCloudStackServiceOfferingRead(d, meta)
}