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) {

Reply via email to