You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sa...@apache.org on 2015/06/17 11:55:09 UTC
git commit: updated refs/heads/master to d702b63
Repository: cloudstack
Updated Branches:
refs/heads/master 47278556f -> d702b63bf
CLOUDSTACK-8569: The latter snapshot export for the same volume will fail is 2 snapshot exports are queued
This closes #469
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d702b63b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d702b63b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d702b63b
Branch: refs/heads/master
Commit: d702b63bfb91f744d838ae081430308b5190fff6
Parents: 4727855
Author: Sanjay Tripathi <sa...@citrix.com>
Authored: Wed Jun 17 15:16:43 2015 +0530
Committer: Sanjay Tripathi <sa...@citrix.com>
Committed: Wed Jun 17 15:27:03 2015 +0530
----------------------------------------------------------------------
.../xenserver/resource/XenServerStorageProcessor.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d702b63b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
index 0cf40f5..f489e5c 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
@@ -1157,10 +1157,15 @@ public class XenServerStorageProcessor implements StorageProcessor {
if (volume == null) {
throw new InternalErrorException("Could not destroy snapshot on volume " + volumeUuid + " due to can not find it");
}
+ // To avoid deleting snapshots which are still waiting in queue to get backed up.
+ VDI avoidSnapshot = getVDIbyUuid(conn, avoidSnapshotUuid);
+ if (avoidSnapshot == null) {
+ throw new InternalErrorException("Could not find current snapshot " + avoidSnapshotUuid);
+ }
final Set<VDI> snapshots = volume.getSnapshots(conn);
for (final VDI snapshot : snapshots) {
try {
- if (!snapshot.getUuid(conn).equals(avoidSnapshotUuid)) {
+ if (!snapshot.getUuid(conn).equals(avoidSnapshotUuid) && snapshot.getSnapshotTime(conn).before(avoidSnapshot.getSnapshotTime(conn))) {
snapshot.destroy(conn);
}
} catch (final Exception e) {