mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-7870: When Vm deployments fail and end in error state volume count should be decremented
This commit is contained in:
parent
1e1cc11d9a
commit
a8b89bea4f
@ -1380,9 +1380,13 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
|
||||
} else {
|
||||
volService.destroyVolume(volume.getId());
|
||||
}
|
||||
// FIXME - All this is boiler plate code and should be done as part of state transition. This shouldn't be part of orchestrator.
|
||||
// publish usage event for the volume
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(),
|
||||
Volume.class.getName(), volume.getUuid(), volume.isDisplayVolume());
|
||||
_resourceLimitMgr.decrementResourceCount(volume.getAccountId(), ResourceType.volume, volume.isDisplay());
|
||||
//FIXME - why recalculate and not decrement
|
||||
_resourceLimitMgr.recalculateResourceCount(volume.getAccountId(), volume.getDomainId(), ResourceType.primary_storage.getOrdinal());
|
||||
} catch (Exception e) {
|
||||
s_logger.debug("Failed to destroy volume" + volume.getId(), e);
|
||||
throw new CloudRuntimeException("Failed to destroy volume" + volume.getId(), e);
|
||||
|
||||
@ -4785,7 +4785,10 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
newVol = volumeMgr.allocateDuplicateVolume(root, null);
|
||||
}
|
||||
|
||||
// Create Usage event for the newly created volume
|
||||
// 1. Save usage event and update resource count for user vm volumes
|
||||
_resourceLimitMgr.incrementResourceCount(newVol.getAccountId(), ResourceType.volume, newVol.isDisplay());
|
||||
_resourceLimitMgr.incrementResourceCount(newVol.getAccountId(), ResourceType.primary_storage, newVol.isDisplay(), new Long(newVol.getSize()));
|
||||
// 2. Create Usage event for the newly created volume
|
||||
UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_VOLUME_CREATE, newVol.getAccountId(), newVol.getDataCenterId(), newVol.getId(), newVol.getName(), newVol.getDiskOfferingId(), template.getId(), newVol.getSize());
|
||||
_usageEventDao.persist(usageEvent);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user