From 90020679a4e5b27b95e9426fdf4faebcf7d406ed Mon Sep 17 00:00:00 2001 From: Edison Su Date: Wed, 22 Feb 2012 17:19:45 -0800 Subject: [PATCH] bug 13771: don't send pre snapshot if it's migrated status 13771: resolved fixed Reviewed-by: anthony --- .../src/com/cloud/storage/snapshot/SnapshotManagerImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java index f4c9d1f8ff3..02677213a8c 100755 --- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -181,6 +181,8 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma private ResourceManager _resourceMgr; @Inject private DomainManager _domainMgr; + @Inject + private VolumeDao _volumeDao; String _name; private int _totalRetries; private int _pauseInterval; @@ -282,7 +284,7 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma String preSnapshotPath = null; SnapshotVO preSnapshotVO = null; - if (preId != 0) { + if (preId != 0 && !(volume.getLastPoolId() != null && !volume.getLastPoolId().equals(volume.getPoolId()))) { preSnapshotVO = _snapshotDao.findByIdIncludingRemoved(preId); if (preSnapshotVO != null && preSnapshotVO.getBackupSnapshotId() != null) { preSnapshotPath = preSnapshotVO.getPath(); @@ -337,6 +339,7 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma if (volume.getLastPoolId() != null && !volume.getLastPoolId().equals(volume.getPoolId())) { preSnapshotId = 0; volume.setLastPoolId(volume.getPoolId()); + _volumeDao.update(volume.getId(), volume); } snapshot = updateDBOnCreate(snapshotId, answer.getSnapshotPath(), preSnapshotId); }