This is an automated email from the ASF dual-hosted git repository. pearl11594 pushed a commit to branch 4.19 in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.19 by this push: new 35e809e7ce4 Set external Id to null after backupProvider.removeVMFromBackup (#10562) 35e809e7ce4 is described below commit 35e809e7ce4cc7504ae8438bbde4592f9dc7ba2b Author: Abhisar Sinha <63767682+abh1...@users.noreply.github.com> AuthorDate: Mon Mar 17 22:16:05 2025 +0530 Set external Id to null after backupProvider.removeVMFromBackup (#10562) --- .../main/java/org/apache/cloudstack/backup/VeeamBackupProvider.java | 3 +++ .../src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/backup/veeam/src/main/java/org/apache/cloudstack/backup/VeeamBackupProvider.java b/plugins/backup/veeam/src/main/java/org/apache/cloudstack/backup/VeeamBackupProvider.java index e20f67995b9..e8b65e19e0b 100644 --- a/plugins/backup/veeam/src/main/java/org/apache/cloudstack/backup/VeeamBackupProvider.java +++ b/plugins/backup/veeam/src/main/java/org/apache/cloudstack/backup/VeeamBackupProvider.java @@ -199,6 +199,9 @@ public class VeeamBackupProvider extends AdapterBase implements BackupProvider, public boolean removeVMFromBackupOffering(final VirtualMachine vm) { final VeeamClient client = getClient(vm.getDataCenterId()); final VmwareDatacenter vmwareDC = findVmwareDatacenterForVM(vm); + if (vm.getBackupExternalId() == null) { + throw new CloudRuntimeException("The VM does not have a backup job assigned."); + } try { if (!client.removeVMFromVeeamJob(vm.getBackupExternalId(), vm.getInstanceName(), vmwareDC.getVcenterHost())) { LOG.warn("Failed to remove VM from Veeam Job id: " + vm.getBackupExternalId()); 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 36978ab2f87..2fc98973ad1 100644 --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@ -368,10 +368,10 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager { boolean result = false; try { + result = backupProvider.removeVMFromBackupOffering(vm); vm.setBackupOfferingId(null); - vm.setBackupExternalId(null); vm.setBackupVolumes(null); - result = backupProvider.removeVMFromBackupOffering(vm); + vm.setBackupExternalId(null); if (result && backupProvider.willDeleteBackupsOnOfferingRemoval()) { final List<Backup> backups = backupDao.listByVmId(null, vm.getId()); for (final Backup backup : backups) {