diff options
author | Duncan Mac-Vicar P <dmacvicar@suse.de> | 2016-03-11 23:53:15 +0100 |
---|---|---|
committer | Duncan Mac-Vicar P <dmacvicar@suse.de> | 2016-03-11 23:53:15 +0100 |
commit | 7dc8c26bd8b0d30d79e91c1568790b448e75328f (patch) | |
tree | e8aca99c80f0be418917cbe6c2b3349c8ae381b1 /libvirt/resource_libvirt_volume.go | |
parent | 503655c08b527309be26f0677d85a579b628858a (diff) | |
download | terraform-provider-libvirt-7dc8c26bd8b0d30d79e91c1568790b448e75328f.tar terraform-provider-libvirt-7dc8c26bd8b0d30d79e91c1568790b448e75328f.tar.gz |
refresh the storage pool so that libvirt does not think volume is used
Diffstat (limited to 'libvirt/resource_libvirt_volume.go')
-rw-r--r-- | libvirt/resource_libvirt_volume.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libvirt/resource_libvirt_volume.go b/libvirt/resource_libvirt_volume.go index 77561413..7f8b874a 100644 --- a/libvirt/resource_libvirt_volume.go +++ b/libvirt/resource_libvirt_volume.go @@ -78,6 +78,13 @@ func resourceLibvirtVolumeCreate(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("can't find storage pool '%s'", poolName) } + // Refresh the pool of the volume so that libvirt knows it is + // not longer in use. + err = pool.Refresh(0) + if err != nil { + return fmt.Errorf("Error refreshing pool for volume: %s", err) + } + volumeDef := newDefVolume() volumeDef.Name = d.Get("name").(string) @@ -192,6 +199,18 @@ func resourceLibvirtVolumeDelete(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Can't retrieve volume %s", d.Id()) } + // Refresh the pool of the volume so that libvirt knows it is + // not longer in use. + volPool, err := volume.LookupPoolByVolume() + if err != nil { + return fmt.Errorf("Error retrieving pool for volume: %s", err) + } + + err = volPool.Refresh(0) + if err != nil { + return fmt.Errorf("Error refreshing pool for volume: %s", err) + } + err = volume.Delete(0) if err != nil { return fmt.Errorf("Can't delete volume %s", d.Id()) |