FIXED CLOUDSTACK-6669 Support volume resize in usage server

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

Branch: refs/heads/4.4-forward
Commit: cc663bb7fc515a4960cd483e8f5697bc141ce95e
Parents: c5a1423
Author: Rajani Karuturi <rajanikarut...@gmail.com>
Authored: Fri May 30 11:47:56 2014 +0530
Committer: Kishan Kavala <kis...@cloud.com>
Committed: Fri May 30 14:50:52 2014 +0530

----------------------------------------------------------------------
 usage/src/com/cloud/usage/UsageManagerImpl.java | 21 +++++---------------
 1 file changed, 5 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc663bb7/usage/src/com/cloud/usage/UsageManagerImpl.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java 
b/usage/src/com/cloud/usage/UsageManagerImpl.java
index 4ceecbb..159380b 100644
--- a/usage/src/com/cloud/usage/UsageManagerImpl.java
+++ b/usage/src/com/cloud/usage/UsageManagerImpl.java
@@ -961,9 +961,8 @@ public class UsageManagerImpl extends ManagerBase 
implements UsageManager, Runna
     }
 
     private boolean isVolumeEvent(String eventType) {
-        if (eventType == null)
-            return false;
-        return (eventType.equals(EventTypes.EVENT_VOLUME_CREATE) || 
eventType.equals(EventTypes.EVENT_VOLUME_DELETE));
+        return eventType != null &&
+            (eventType.equals(EventTypes.EVENT_VOLUME_CREATE) || 
eventType.equals(EventTypes.EVENT_VOLUME_DELETE) || 
eventType.equals(EventTypes.EVENT_VOLUME_RESIZE));
     }
 
     private boolean isTemplateEvent(String eventType) {
@@ -1366,20 +1365,9 @@ public class UsageManagerImpl extends ManagerBase 
implements UsageManager, Runna
 
     private void createVolumeHelperEvent(UsageEventVO event) {
 
-        Long doId = -1L;
-        long zoneId = -1L;
-        Long templateId = -1L;
-        long size = -1L;
-
         long volId = event.getResourceId();
-        if (EventTypes.EVENT_VOLUME_CREATE.equals(event.getType())) {
-            doId = event.getOfferingId();
-            zoneId = event.getZoneId();
-            templateId = event.getTemplateId();
-            size = event.getSize();
-        }
 
-        if (EventTypes.EVENT_VOLUME_CREATE.equals(event.getType())) {
+        if (EventTypes.EVENT_VOLUME_CREATE.equals(event.getType()) || 
EventTypes.EVENT_VOLUME_RESIZE.equals(event.getType())) {
             SearchCriteria<UsageVolumeVO> sc = 
_usageVolumeDao.createSearchCriteria();
             sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId());
             sc.addAnd("id", SearchCriteria.Op.EQ, volId);
@@ -1389,6 +1377,7 @@ public class UsageManagerImpl extends ManagerBase 
implements UsageManager, Runna
                 //This is a safeguard to avoid double counting of volumes.
                 s_logger.error("Found duplicate usage entry for volume: " + 
volId + " assigned to account: " + event.getAccountId() + "; marking as 
deleted...");
             }
+            //an entry exists if it is a resize volume event. marking the 
existing deleted and creating a new one in the case of resize.
             for (UsageVolumeVO volumesVO : volumesVOs) {
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug("deleting volume: " + volumesVO.getId() + " 
from account: " + volumesVO.getAccountId());
@@ -1400,7 +1389,7 @@ public class UsageManagerImpl extends ManagerBase 
implements UsageManager, Runna
                 s_logger.debug("create volume with id : " + volId + " for 
account: " + event.getAccountId());
             }
             Account acct = 
_accountDao.findByIdIncludingRemoved(event.getAccountId());
-            UsageVolumeVO volumeVO = new UsageVolumeVO(volId, zoneId, 
event.getAccountId(), acct.getDomainId(), doId, templateId, size, 
event.getCreateDate(), null);
+            UsageVolumeVO volumeVO = new UsageVolumeVO(volId, 
event.getZoneId(), event.getAccountId(), acct.getDomainId(), 
event.getOfferingId(), event.getTemplateId(), event.getSize(), 
event.getCreateDate(), null);
             _usageVolumeDao.persist(volumeVO);
         } else if (EventTypes.EVENT_VOLUME_DELETE.equals(event.getType())) {
             SearchCriteria<UsageVolumeVO> sc = 
_usageVolumeDao.createSearchCriteria();

Reply via email to