bug CS-15648: For volumes created from snapshot, create usage event after 
successful volume
status CS-15648: resolved fixed
reviewed-by: Nitin


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

Branch: refs/heads/4.0
Commit: 5657412cfe67259cbf79bf5c5256afc2dc39e52b
Parents: aebf033
Author: kishan <[email protected]>
Authored: Wed Aug 8 16:20:51 2012 +0530
Committer: Alex Huang <[email protected]>
Committed: Wed Aug 15 14:04:39 2012 -0700

----------------------------------------------------------------------
 .../src/com/cloud/storage/StorageManagerImpl.java  |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5657412c/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java 
b/server/src/com/cloud/storage/StorageManagerImpl.java
index 5a256dc..20dde8b 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -649,6 +649,9 @@ public class StorageManagerImpl implements StorageManager, 
Manager, ClusterManag
         Pair<VolumeVO, String> volumeDetails = 
createVolumeFromSnapshot(volume, snapshot);
         if (volumeDetails != null) {
             createdVolume = volumeDetails.first();
+               UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VOLUME_CREATE, createdVolume.getAccountId(), 
createdVolume.getDataCenterId(), createdVolume.getId(), 
createdVolume.getName(), 
+                                                                  
createdVolume.getDiskOfferingId(), null, createdVolume.getSize());
+               _usageEventDao.persist(usageEvent);
         }
         return createdVolume;
     }
@@ -2019,8 +2022,11 @@ public class StorageManagerImpl implements 
StorageManager, Manager, ClusterManag
         volume.setDomainId((caller == null) ? Domain.ROOT_DOMAIN : 
caller.getDomainId());
 
         volume = _volsDao.persist(volume);
-        UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), 
volume.getDataCenterId(), volume.getId(), volume.getName(), diskOfferingId, 
null, size);
-        _usageEventDao.persist(usageEvent);
+        if(cmd.getSnapshotId() == null){
+               //for volume created from snapshot, create usage event after 
volume creation
+               UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), 
volume.getDataCenterId(), volume.getId(), volume.getName(), diskOfferingId, 
null, size);
+               _usageEventDao.persist(usageEvent);
+        }
 
         UserContext.current().setEventDetails("Volume Id: " + volume.getId());
 

Reply via email to