diff options
-rw-r--r-- | README.md | 12 | ||||
-rw-r--r-- | libvirt/resource_libvirt_volume.go | 8 |
2 files changed, 20 insertions, 0 deletions
@@ -78,6 +78,18 @@ export TF_ACC=1 go test ./... ``` +## Known Problems + +* There is a [bug in libvirt](https://bugzilla.redhat.com/show_bug.cgi?id=1293804) that seems to be causing + problems to unlink volumes. Tracked [here](https://github.com/dmacvicar/terraform-provider-libvirt/issues/6). + + If you see something like: + + ```console + cannot unlink file '/var/lib/libvirt/images/XXXXXXXXXXXX': Permission denied + ``` + It is probably related. + ## Author * Duncan Mac-Vicar P. <dmacvicar@suse.de> diff --git a/libvirt/resource_libvirt_volume.go b/libvirt/resource_libvirt_volume.go index dd2d0ac2..76e73d02 100644 --- a/libvirt/resource_libvirt_volume.go +++ b/libvirt/resource_libvirt_volume.go @@ -243,6 +243,14 @@ func resourceLibvirtVolumeDelete(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error refreshing pool for volume: %s", err) } + // Workaround for redhat#1293804 + // https://bugzilla.redhat.com/show_bug.cgi?id=1293804#c12 + // Does not solve the problem but it makes it happen less often. + _, err = volume.GetXMLDesc(0) + if err != nil { + return fmt.Errorf("Can't retrieve volume %s XML desc: %s", d.Id(), err) + } + err = volume.Delete(0) if err != nil { return fmt.Errorf("Can't delete volume %s: %s", d.Id(), err) |