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());
