You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/07/30 23:24:45 UTC

git commit: updated refs/heads/4.2 to 4527227

Updated Branches:
  refs/heads/4.2 422cc2a92 -> 452722736


CLOUDSTACK-3857: create VOLUME_CREATE event at CreateVolumeCmd instead
of at AttachVolumeCmd.

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

Branch: refs/heads/4.2
Commit: 4527227360512e3edad93117dd10f25aa2619855
Parents: 422cc2a
Author: Min Chen <mi...@citrix.com>
Authored: Tue Jul 30 14:24:12 2013 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Tue Jul 30 14:24:12 2013 -0700

----------------------------------------------------------------------
 .../com/cloud/storage/VolumeManagerImpl.java    | 52 +++++++-------------
 1 file changed, 17 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/45272273/server/src/com/cloud/storage/VolumeManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/VolumeManagerImpl.java b/server/src/com/cloud/storage/VolumeManagerImpl.java
index d7e4468..d8cbf11 100644
--- a/server/src/com/cloud/storage/VolumeManagerImpl.java
+++ b/server/src/com/cloud/storage/VolumeManagerImpl.java
@@ -104,9 +104,8 @@ import com.cloud.domain.Domain;
 import com.cloud.domain.dao.DomainDao;
 import com.cloud.event.ActionEvent;
 import com.cloud.event.EventTypes;
-import com.cloud.event.UsageEventVO;
+import com.cloud.event.UsageEventUtils;
 import com.cloud.event.dao.EventDao;
-import com.cloud.event.dao.UsageEventDao;
 import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InsufficientStorageCapacityException;
 import com.cloud.exception.InvalidParameterValueException;
@@ -267,8 +266,6 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
     @Inject
     protected ClusterDao _clusterDao;
     @Inject
-    protected UsageEventDao _usageEventDao;
-    @Inject
     protected VirtualMachineManager _vmMgr;
     @Inject
     protected DomainRouterDao _domrDao;
@@ -605,13 +602,8 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
         createdVolume = createVolumeFromSnapshot(volume,
                 snapshot);
 
-        UsageEventVO usageEvent = new UsageEventVO(
-                EventTypes.EVENT_VOLUME_CREATE,
-                createdVolume.getAccountId(),
-                createdVolume.getDataCenterId(), createdVolume.getId(),
-                createdVolume.getName(), createdVolume.getDiskOfferingId(),
-                null, createdVolume.getSize());
-        _usageEventDao.persist(usageEvent);
+        UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, createdVolume.getAccountId(), createdVolume.getDataCenterId(), createdVolume.getId(),
+                createdVolume.getName(), createdVolume.getDiskOfferingId(), null, createdVolume.getSize(), Volume.class.getName(), createdVolume.getUuid());
 
         return _volsDao.findById(createdVolume.getId());
     }
@@ -703,12 +695,6 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
                 throw new CloudRuntimeException("create volume failed:" + result.getResult());
             }
 
-
-            UsageEventVO usageEvent = new UsageEventVO(
-                    EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(),
-                    volume.getDataCenterId(), volume.getId(), volume.getName(),
-                    volume.getDiskOfferingId(), null, volume.getSize());
-            _usageEventDao.persist(usageEvent);
             return result.getVolume();
         } catch (InterruptedException e) {
             s_logger.error("create volume failed", e);
@@ -747,6 +733,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
                 .getDomainId());
         volume.setFormat(ImageFormat.valueOf(format));
         volume = _volsDao.persist(volume);
+
         UserContext.current().setEventDetails("Volume Id: " + volume.getId());
 
         // Increment resource count during allocation; if actual creation fails,
@@ -1027,6 +1014,11 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
         }
 
         volume = _volsDao.persist(volume);
+        if (cmd.getSnapshotId() == null) {
+            // for volume created from snapshot, create usage event after volume creation
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(), diskOfferingId,
+                    null, size, Volume.class.getName(), volume.getUuid());
+        }
 
         UserContext.current().setEventDetails("Volume Id: " + volume.getId());
 
@@ -1259,10 +1251,8 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
             }
             _volsDao.update(volume.getId(), volume);
             // Log usage event for volumes belonging user VM's only
-            UsageEventVO usageEvent = new UsageEventVO(
-                    EventTypes.EVENT_VOLUME_RESIZE, volume.getAccountId(),
-                    volume.getDataCenterId(), volume.getId(), volume.getName(), volume.getDiskOfferingId(), volume.getTemplateId(), volume.getSize());
-            _usageEventDao.persist(usageEvent);
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_RESIZE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(),
+                    volume.getDiskOfferingId(), volume.getTemplateId(), volume.getSize(), Volume.class.getName(), volume.getUuid());
 
             /* Update resource count for the account on primary storage resource */
             if (!shrinkOk) {
@@ -1341,10 +1331,8 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
                     }
 
                     // Log usage event for volumes belonging user VM's only
-                    UsageEventVO usageEvent = new UsageEventVO(
-                            EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(),
-                            volume.getDataCenterId(), volume.getId(), volume.getName());
-                    _usageEventDao.persist(usageEvent);
+                    UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(),
+                            Volume.class.getName(), volume.getUuid());
                 }
             }
             // expunge volume from primary if volume is on primary
@@ -1417,11 +1405,8 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
         // Save usage event and update resource count for user vm volumes
         if (vm instanceof UserVm) {
 
-            UsageEventVO usageEvent = new UsageEventVO(
-                    EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(),
-                    vol.getDataCenterId(), vol.getId(), vol.getName(),
-                    offering.getId(), null, size);
-            _usageEventDao.persist(usageEvent);
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(), vol.getDataCenterId(), vol.getId(), vol.getName(), offering.getId(), null, size,
+                    Volume.class.getName(), vol.getUuid());
 
             _resourceLimitMgr.incrementResourceCount(vm.getAccountId(),
                     ResourceType.volume);
@@ -1468,11 +1453,8 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
                 offeringId = offering.getId();
             }
 
-            UsageEventVO usageEvent = new UsageEventVO(
-                    EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(),
-                    vol.getDataCenterId(), vol.getId(), vol.getName(),
-                    offeringId, template.getId(), vol.getSize());
-            _usageEventDao.persist(usageEvent);
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(), vol.getDataCenterId(), vol.getId(), vol.getName(), offeringId, null, size,
+                    Volume.class.getName(), vol.getUuid());
 
             _resourceLimitMgr.incrementResourceCount(vm.getAccountId(),
                     ResourceType.volume);