Add project parameter to cloudstack_disk

This commit is contained in:
Hany Fahim 2015-08-20 13:35:11 -04:00
parent 078b16b20e
commit 330673038c
1 changed files with 18 additions and 0 deletions

View File

@ -61,6 +61,12 @@ func resourceCloudStackDisk() *schema.Resource {
Required: true, Required: true,
ForceNew: true, ForceNew: true,
}, },
"project": &schema.Schema{
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
}, },
} }
} }
@ -74,6 +80,17 @@ func resourceCloudStackDiskCreate(d *schema.ResourceData, meta interface{}) erro
// Create a new parameter struct // Create a new parameter struct
p := cs.Volume.NewCreateVolumeParams(name) p := cs.Volume.NewCreateVolumeParams(name)
// If there is a project supplied, we retreive and set the project id
if project, ok := d.GetOk("project"); ok {
// Retrieve the project UUID
projectid, e := retrieveUUID(cs, "project", project.(string))
if e != nil {
return e.Error()
}
// Set the default project ID
p.SetProjectid(projectid)
}
// Retrieve the disk_offering UUID // Retrieve the disk_offering UUID
diskofferingid, e := retrieveUUID(cs, "disk_offering", d.Get("disk_offering").(string)) diskofferingid, e := retrieveUUID(cs, "disk_offering", d.Get("disk_offering").(string))
if e != nil { if e != nil {
@ -144,6 +161,7 @@ func resourceCloudStackDiskRead(d *schema.ResourceData, meta interface{}) error
setValueOrUUID(d, "disk_offering", v.Diskofferingname, v.Diskofferingid) setValueOrUUID(d, "disk_offering", v.Diskofferingname, v.Diskofferingid)
setValueOrUUID(d, "zone", v.Zonename, v.Zoneid) setValueOrUUID(d, "zone", v.Zonename, v.Zoneid)
setValueOrUUID(d, "project", v.Project, v.Projectid)
if v.Attached != "" { if v.Attached != "" {
// Get the virtual machine details // Get the virtual machine details