You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/04/16 18:40:49 UTC

[43/50] [abbrv] git commit: updated refs/heads/marvin_refactor to 284581f

CLOUDSTACK-2040 VM with snapshot not getting destroyed during account delation


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cbe021b8
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cbe021b8
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cbe021b8

Branch: refs/heads/marvin_refactor
Commit: cbe021b8d2867a4c02d1797e722e38b322a17c06
Parents: 7bff1d0
Author: Mice Xia <mi...@tcloudcomputing.com>
Authored: Tue Apr 16 12:38:52 2013 +0800
Committer: Mice Xia <mi...@tcloudcomputing.com>
Committed: Tue Apr 16 13:18:44 2013 +0800

----------------------------------------------------------------------
 .../agent/api/DeleteSnapshotBackupCommand.java     |    6 ++++--
 .../driver/AncientImageDataStoreDriverImpl.java    |   10 +++++++---
 .../storage/snapshot/SnapshotManagerImpl.java      |   11 +++++------
 3 files changed, 16 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbe021b8/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java b/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
index 6114148..128df84 100644
--- a/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
+++ b/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
@@ -19,6 +19,7 @@ package com.cloud.agent.api;
 import com.cloud.agent.api.LogLevel.Log4jLevel;
 import com.cloud.agent.api.to.S3TO;
 import com.cloud.agent.api.to.SwiftTO;
+import com.cloud.storage.StoragePool;
 
 /**
  * This command encapsulates a primitive operation which enables coalescing the backed up VHD snapshots on the secondary server
@@ -78,7 +79,8 @@ public class DeleteSnapshotBackupCommand extends SnapshotCommand {
      * @param backupUUID                  The VHD which has to be deleted
      * @param childUUID                   The child VHD file of the backup whose parent is reset to its grandparent.
      */
-    public DeleteSnapshotBackupCommand(SwiftTO swift,
+    public DeleteSnapshotBackupCommand(StoragePool pool,
+                                       SwiftTO swift,
                                        S3TO s3,
                                        String secondaryStoragePoolURL,
                                        Long   dcId,
@@ -86,7 +88,7 @@ public class DeleteSnapshotBackupCommand extends SnapshotCommand {
                                        Long   volumeId,
  String backupUUID, Boolean all)
     {
-        super(null, secondaryStoragePoolURL, backupUUID, null, dcId, accountId, volumeId);
+        super(pool, secondaryStoragePoolURL, backupUUID, null, dcId, accountId, volumeId);
         setSwift(swift);
         this.s3 = s3;
         setAll(all);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbe021b8/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java b/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java
index 97ea6c4..4c16f2f 100644
--- a/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java
+++ b/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java
@@ -33,6 +33,8 @@ import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
 import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
 import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
 import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.cloudstack.storage.image.ImageDataStoreDriver;
 import org.apache.log4j.Logger;
 
@@ -45,8 +47,8 @@ import com.cloud.agent.api.to.SwiftTO;
 import com.cloud.host.HostVO;
 import com.cloud.host.dao.HostDao;
 import com.cloud.storage.RegisterVolumePayload;
-import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.SnapshotVO;
+import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.VMTemplateStorageResourceAssoc;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.VMTemplateZoneVO;
@@ -80,6 +82,7 @@ public class AncientImageDataStoreDriverImpl implements ImageDataStoreDriver {
     @Inject SnapshotDao snapshotDao;
     @Inject AgentManager agentMgr;
     @Inject SnapshotManager snapshotMgr;
+    @Inject PrimaryDataStoreDao primaryDataStoreDao;
 	@Inject
     private SwiftManager _swiftMgr;
     @Inject 
@@ -196,9 +199,10 @@ public class AncientImageDataStoreDriverImpl implements ImageDataStoreDriver {
     		}
     		SwiftTO swift = _swiftMgr.getSwiftTO(snapshot.getSwiftId());
     		S3TO s3 = _s3Mgr.getS3TO();
-
+            VolumeVO volume = volumeDao.findById(volumeId);
+            StoragePoolVO pool = primaryDataStoreDao.findById(volume.getPoolId());
     		DeleteSnapshotBackupCommand cmd = new DeleteSnapshotBackupCommand(
-    				swift, s3, secondaryStoragePoolUrl, dcId, accountId, volumeId,
+    				pool, swift, s3, secondaryStoragePoolUrl, dcId, accountId, volumeId,
     				backupOfSnapshot, false);
     		Answer answer = agentMgr.sendToSSVM(dcId, cmd);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbe021b8/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
index 3a453d5..490948b 100755
--- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@ -181,9 +181,8 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
     private ResourceTagDao _resourceTagDao;
     @Inject
     private ConfigurationDao _configDao;
-
-    @Inject 
-    private VMSnapshotDao _vmSnapshotDao;
+    @Inject  
+    private PrimaryDataStoreDao _primaryDataStoreDao;
     String _name;
 
     @Inject TemplateManager templateMgr;
@@ -694,11 +693,11 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
             S3TO s3 = _s3Mgr.getS3TO();
 
             checkObjectStorageConfiguration(swift, s3);
-
+            StoragePoolVO pool = _primaryDataStoreDao.findById(volume.getPoolId());
             if (swift == null && s3 == null) {
                 for (HostVO ssHost : ssHosts) {
                     DeleteSnapshotBackupCommand cmd = new DeleteSnapshotBackupCommand(
-                            null, null, ssHost.getStorageUrl(), dcId,
+                            pool,null, null, ssHost.getStorageUrl(), dcId,
                             accountId, volumeId, "", true);
                     Answer answer = null;
                     try {
@@ -717,7 +716,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
                 }
             } else {
                 DeleteSnapshotBackupCommand cmd = new DeleteSnapshotBackupCommand(
-                        swift, s3, "", dcId, accountId, volumeId, "", true);
+                        pool,swift, s3, "", dcId, accountId, volumeId, "", true);
                 Answer answer = null;
                 try {
                     answer = _agentMgr.sendToSSVM(dcId, cmd);