summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Mac-Vicar P <dmacvicar@suse.de>2016-03-13 00:00:32 +0100
committerDuncan Mac-Vicar P <dmacvicar@suse.de>2016-03-13 00:00:32 +0100
commitf34b07af9420f2e4c162b6b2e6308ef0027f7e7a (patch)
tree64ddff36fc9373a68fe6ea175bb0f4a6b2a86735
parent5a06a609c6c391b8a88278061e59b75eb3af5b89 (diff)
downloadterraform-provider-libvirt-f34b07af9420f2e4c162b6b2e6308ef0027f7e7a.tar
terraform-provider-libvirt-f34b07af9420f2e4c162b6b2e6308ef0027f7e7a.tar.gz
implement volume read
-rw-r--r--libvirt/resource_libvirt_volume.go32
1 files changed, 27 insertions, 5 deletions
diff --git a/libvirt/resource_libvirt_volume.go b/libvirt/resource_libvirt_volume.go
index fb2e57b4..1bc43b19 100644
--- a/libvirt/resource_libvirt_volume.go
+++ b/libvirt/resource_libvirt_volume.go
@@ -184,16 +184,38 @@ func resourceLibvirtVolumeRead(d *schema.ResourceData, meta interface{}) error {
return fmt.Errorf("The libvirt connection was nil.")
}
- _, err := virConn.LookupStorageVolByKey(d.Id())
+ volume, err := virConn.LookupStorageVolByKey(d.Id())
if err != nil {
return fmt.Errorf("Can't retrieve volume %s", d.Id())
}
+ defer volume.Free()
- return nil
-}
+ volName, err := volume.GetName()
+ if err != nil {
+ return fmt.Errorf("Error retrieving volume name: %s", err)
+ }
+
+ volPool, err := volume.LookupPoolByVolume()
+ if err != nil {
+ return fmt.Errorf("Error retrieving pool for volume: %s", err)
+ }
+ defer volPool.Free()
+
+ volPoolName, err := volPool.GetName()
+ if err != nil {
+ return fmt.Errorf("Error retrieving pool name: %s", err)
+ }
-func resourceLibvirtVolumeUpdate(d *schema.ResourceData, meta interface{}) error {
- return fmt.Errorf("Couldn't update libvirt domain")
+ d.Set("pool", volPoolName)
+ d.Set("name", volName)
+
+ info, err := volume.GetInfo()
+ if err != nil {
+ return fmt.Errorf("Error retrieving volume name: %s", err)
+ }
+ d.Set("size", info.GetCapacityInBytes())
+
+ return nil
}
func resourceLibvirtVolumeDelete(d *schema.ResourceData, meta interface{}) error {