You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pe...@apache.org on 2025/03/17 16:46:12 UTC

(cloudstack) branch 4.19 updated: Set external Id to null after backupProvider.removeVMFromBackup (#10562)

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 <63...@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) {