fix removeUsage for backups (#11522)
diff --git a/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java b/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java
index e5b46b0..3f852b0 100644
--- a/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java
@@ -68,7 +68,7 @@
pstmt.setString(1, DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), eventDate));
pstmt.setLong(2, accountId);
pstmt.setLong(3, vmId);
- pstmt.setLong(3, backupOfferingId);
+ pstmt.setLong(4, backupOfferingId);
pstmt.executeUpdate();
}
} catch (SQLException e) {
diff --git a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
index bb3e3f2..aff838a 100644
--- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
@@ -1927,7 +1927,11 @@
for (final VirtualMachine vm : vms) {
Map<Long, Pair<Long, Long>> backupOfferingToSizeMap = new HashMap<>();
- for (final Backup backup: backupDao.listByVmId(null, vm.getId())) {
+ List<Backup> backups = backupDao.listByVmId(null, vm.getId());
+ if (backups.isEmpty() && vm.getBackupOfferingId() != null) {
+ backupOfferingToSizeMap.put(vm.getBackupOfferingId(), new Pair<>(0L, 0L));
+ }
+ for (final Backup backup: backups) {
Long backupSize = 0L;
Long backupProtectedSize = 0L;
if (Objects.nonNull(backup.getSize())) {