in cloudstack/resource_cloudstack_configuration.go [105:159]
func resourceCloudStackConfigurationRead(d *schema.ResourceData, meta interface{}) error {
cs := meta.(*cloudstack.CloudStackClient)
p := cs.Configuration.NewListConfigurationsParams()
// required
p.SetName(d.Id())
// optional
if v, ok := d.GetOk("account_id"); ok {
p.SetAccountid(v.(string))
}
if v, ok := d.GetOk("category"); ok {
p.SetCategory(v.(string))
}
if v, ok := d.GetOk("cluster_id"); ok {
p.SetClusterid(v.(string))
}
if v, ok := d.GetOk("domain_id"); ok {
p.SetDomainid(v.(string))
}
if v, ok := d.GetOk("image_store_uuid"); ok {
p.SetImagestoreuuid(v.(string))
}
if v, ok := d.GetOk("store_id"); ok {
p.SetStorageid(v.(string))
}
if v, ok := d.GetOk("zone_id"); ok {
p.SetZoneid(v.(string))
}
cfg, err := cs.Configuration.ListConfigurations(p)
if err != nil {
return err
}
found := false
for _, v := range cfg.Configurations {
if v.Name == d.Id() {
d.Set("category", v.Category)
d.Set("description", v.Description)
d.Set("is_dynamic", v.Isdynamic)
d.Set("name", v.Name)
d.Set("value", v.Value)
d.Set("scope", v.Scope)
found = true
}
}
if !found {
return fmt.Errorf("listConfiguration failed. no matching names found %s", d.Id())
}
return nil
}