@Override public PrimaryStorageCapacityVO call(PrimaryStorageCapacityVO cap) { if (total != null) { cap.setTotalCapacity(cap.getTotalCapacity() + total); } if (avail != null) { cap.setAvailableCapacity(cap.getAvailableCapacity() + avail); } if (totalPhysical != null) { cap.setTotalPhysicalCapacity(cap.getTotalPhysicalCapacity() + totalPhysical); } if (availPhysical != null) { cap.setAvailablePhysicalCapacity(cap.getAvailablePhysicalCapacity() + availPhysical); } if (systemUsed != null) { if (cap.getSystemUsedCapacity() == null) { cap.setSystemUsedCapacity(0L); } cap.setSystemUsedCapacity(cap.getSystemUsedCapacity() + systemUsed); } return cap; } });
@Transactional private boolean _update(Long total, Long avail, Long physicalTotal, Long physicalAvail) { if (!lockCapacity()) { logDeletedPrimaryStorage(); return false; } if (capacityVO.getSystemUsedCapacity() == null && physicalTotal != null && physicalAvail != null) { capacityVO.setSystemUsedCapacity(physicalTotal - physicalAvail); } if (total != null) { capacityVO.setTotalCapacity(total); } if (avail != null) { capacityVO.setAvailableCapacity(avail); } if (physicalTotal != null) { capacityVO.setTotalPhysicalCapacity(physicalTotal); } if (physicalAvail != null) { capacityVO.setAvailablePhysicalCapacity(physicalAvail); } merge(); return true; }
private boolean lockCapacity() { if (primaryStorageUuid != null) { capacityVO = dbf.getEntityManager().find(PrimaryStorageCapacityVO.class, primaryStorageUuid, LockModeType.PESSIMISTIC_WRITE); } else if (query != null) { query.setLockMode(LockModeType.PESSIMISTIC_WRITE); List<PrimaryStorageCapacityVO> caps = query.getResultList(); capacityVO = caps.isEmpty() ? null : caps.get(0); } if (capacityVO != null) { totalForLog = capacityVO.getTotalCapacity(); availForLog = capacityVO.getAvailableCapacity(); totalPhysicalForLog = capacityVO.getTotalPhysicalCapacity(); availPhysicalForLog = capacityVO.getAvailablePhysicalCapacity(); originalCopy = new PrimaryStorageCapacityVO(); originalCopy.setAvailableCapacity(capacityVO.getAvailableCapacity()); originalCopy.setTotalCapacity(capacityVO.getTotalCapacity()); originalCopy.setAvailablePhysicalCapacity(capacityVO.getAvailablePhysicalCapacity()); originalCopy.setTotalPhysicalCapacity(capacityVO.getTotalPhysicalCapacity()); originalCopy.setSystemUsedCapacity(capacityVO.getSystemUsedCapacity()); } return capacityVO != null; }
long su = cap.getSystemUsedCapacity() - systemUsed; cap.setSystemUsedCapacity(su < 0 ? 0 : su);
public static PrimaryStorageCapacityInventory valueOf(PrimaryStorageCapacityVO vo) { PrimaryStorageCapacityInventory inv = new PrimaryStorageCapacityInventory(); inv.setUuid(vo.getUuid()); inv.setTotalCapacity(vo.getTotalCapacity()); inv.setAvailableCapacity(vo.getAvailableCapacity()); inv.setCreateDate(vo.getCreateDate()); inv.setLastOpDate(vo.getLastOpDate()); inv.setTotalPhysicalCapacity(vo.getTotalPhysicalCapacity()); inv.setAvailablePhysicalCapacity(vo.getAvailablePhysicalCapacity()); inv.setSystemUsedCapacity(vo.getSystemUsedCapacity()); return inv; }
protected PrimaryStorageInventory(PrimaryStorageVO vo) { setZoneUuid(vo.getZoneUuid()); setCreateDate(vo.getCreateDate()); setDescription(vo.getDescription()); setLastOpDate(vo.getLastOpDate()); setName(vo.getName()); setState(vo.getState().toString()); setType(vo.getType()); setUrl(vo.getUrl()); setUuid(vo.getUuid()); setMountPath(vo.getMountPath()); setStatus(vo.getStatus().toString()); attachedClusterUuids = new ArrayList<String>(vo.getAttachedClusterRefs().size()); for (PrimaryStorageClusterRefVO ref : vo.getAttachedClusterRefs()) { attachedClusterUuids.add(ref.getClusterUuid()); } if (vo.getCapacity() != null) { setTotalCapacity(vo.getCapacity().getTotalCapacity()); setAvailableCapacity(vo.getCapacity().getAvailableCapacity()); setTotalPhysicalCapacity(vo.getCapacity().getTotalPhysicalCapacity()); setAvailablePhysicalCapacity(vo.getCapacity().getAvailablePhysicalCapacity()); setSystemUsedCapacity(vo.getCapacity().getSystemUsedCapacity()); } }