From 75792bf08e86bfb9bb9c23c86d275f6fe5d4346b Mon Sep 17 00:00:00 2001 From: Wido den Hollander Date: Thu, 10 Apr 2014 05:28:56 +0200 Subject: [PATCH] CLOUDSTACK-4665: Check if a snapshot is protected before trying to unprotect Otherwise a RBDException will be thrown with the message that the snapshot isn't protected. Conflicts: plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java --- .../hypervisor/kvm/storage/LibvirtStorageAdaptor.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java index b6d527d6153..3161bcfab67 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java @@ -764,7 +764,13 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { RbdImage image = rbd.open(uuid); List snaps = image.snapList(); for (RbdSnapInfo snap : snaps) { - image.snapUnprotect(snap.name); + if (image.snapIsProtected(snap.name)) { + s_logger.debug("Unprotecting snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name); + image.snapUnprotect(snap.name); + } else { + s_logger.debug("Snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name + " is not protected."); + } + s_logger.debug("Removing snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name); image.snapRemove(snap.name); }