FIXED CLOUDSTACK-6669 Support volume resize in usage server

(cherry picked from commit bdde5335f9)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	usage/src/com/cloud/usage/UsageManagerImpl.java
This commit is contained in:
Rajani Karuturi 2014-05-30 11:47:56 +05:30 committed by Rohit Yadav
parent 90c92ff17d
commit 06a664b063
1 changed files with 5 additions and 17 deletions

View File

@ -924,9 +924,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) {
@ -1313,21 +1312,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 = m_usageVolumeDao.createSearchCriteria();
sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId());
sc.addAnd("id", SearchCriteria.Op.EQ, volId);
@ -1337,6 +1324,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());
@ -1348,7 +1336,7 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
s_logger.debug("create volume with id : " + volId + " for account: " + event.getAccountId());
}
Account acct = m_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);
m_usageVolumeDao.persist(volumeVO);
} else if (EventTypes.EVENT_VOLUME_DELETE.equals(event.getType())) {
SearchCriteria<UsageVolumeVO> sc = m_usageVolumeDao.createSearchCriteria();