From 870a9314201f578372d5e5a293ca9cb26912b863 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Wed, 3 Sep 2025 18:20:53 +0530 Subject: [PATCH 1/2] Check backup framework enabled config in zone scope first (before checking in global scope) --- .../java/org/apache/cloudstack/backup/BackupManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1e6ef1a7852b..58c3e892db41 100644 --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@ -947,7 +947,7 @@ public boolean configure(String name, Map params) throws Configu } public boolean isDisabled(final Long zoneId) { - return !(BackupFrameworkEnabled.value() && BackupFrameworkEnabled.valueIn(zoneId)); + return !(BackupFrameworkEnabled.valueIn(zoneId)); } private void validateForZone(final Long zoneId) { From b0b037f2cf2296fbb4e06c9082b7a7057aa96d54 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Tue, 9 Sep 2025 16:05:08 +0530 Subject: [PATCH 2/2] Update backup.framework.enabled config to Global scope --- .../cloudstack/backup/BackupManager.java | 2 +- .../cloudstack/backup/BackupManagerImpl.java | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/backup/BackupManager.java b/api/src/main/java/org/apache/cloudstack/backup/BackupManager.java index 78d189c3bf1d..7aa0176f1a01 100644 --- a/api/src/main/java/org/apache/cloudstack/backup/BackupManager.java +++ b/api/src/main/java/org/apache/cloudstack/backup/BackupManager.java @@ -40,7 +40,7 @@ public interface BackupManager extends BackupService, Configurable, PluggableSer ConfigKey BackupFrameworkEnabled = new ConfigKey<>("Advanced", Boolean.class, "backup.framework.enabled", "false", - "Is backup and recovery framework enabled.", false, ConfigKey.Scope.Zone); + "Is backup and recovery framework enabled.", false); ConfigKey BackupProviderPlugin = new ConfigKey<>("Advanced", String.class, "backup.framework.provider.plugin", 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 58c3e892db41..58bb332f5d13 100644 --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@ -946,13 +946,13 @@ public boolean configure(String name, Map params) throws Configu return true; } - public boolean isDisabled(final Long zoneId) { - return !(BackupFrameworkEnabled.valueIn(zoneId)); + public boolean isDisabled() { + return !(BackupFrameworkEnabled.value()); } private void validateForZone(final Long zoneId) { - if (zoneId == null || isDisabled(zoneId)) { - throw new CloudRuntimeException("Backup and Recovery feature is disabled for the zone"); + if (zoneId == null || isDisabled()) { + throw new CloudRuntimeException("Backup and Recovery feature is disabled"); } } @@ -1127,7 +1127,7 @@ public void scheduleBackups() { continue; } - if (isDisabled(vm.getDataCenterId())) { + if (isDisabled()) { continue; } @@ -1236,12 +1236,11 @@ protected void runInContext() { if (logger.isTraceEnabled()) { logger.trace("Backup sync background task is running..."); } + if (isDisabled()) { + logger.debug("Backup Sync Task is not enabled. Skipping!"); + return; + } for (final DataCenter dataCenter : dataCenterDao.listAllZones()) { - if (dataCenter == null || isDisabled(dataCenter.getId())) { - logger.debug("Backup Sync Task is not enabled in zone [{}]. Skipping this zone!", dataCenter == null ? "NULL Zone!" : dataCenter); - continue; - } - final BackupProvider backupProvider = getBackupProvider(dataCenter.getId()); if (backupProvider == null) { logger.warn("Backup provider not available or configured for zone {}", dataCenter);