summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md12
-rw-r--r--libvirt/resource_libvirt_volume.go8
2 files changed, 20 insertions, 0 deletions
diff --git a/README.md b/README.md
index f471f77d..b7344c05 100644
--- a/README.md
+++ b/README.md
@@ -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)