Backup provider improvements
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.4k
- Avg merge
- 6d 19h
- Merged PRs (30d)
- 32
Description
### The required feature described as a wish
Currently, with the backup implementation, I found the following issues/limitations
**Issue 1**
**Allow multiple backup framework providers at zone level**
**Steps to reproduce the issue**
1. Have a CloudStack environment with One zone and multiple clusters ( KVM. VMware)
2. Configure VEEAM for vmare cluster
https://docs.cloudstack.apache.org/en/4.22.0.0/adminguide/veeam_plugin.html
3. Configure NAS for KVM cluster
https://docs.cloudstack.apache.org/en/4.22.0.0/adminguide/nas_plugin.html#nas-backup-and-recovery-plugin
4. Configure the Global setting "backup.framework.provider.plugin" = veeam.nas
5. Navigate to Service offering > Backup offering
```
2025-12-17 07:24:28,644 ERROR [c.c.a.AlertManagerImpl] (CapacityChecker:[ctx-96786e18]) (logid:0203c46c) Exception in CapacityChecker com.cloud.utils.exception.CloudRuntimeException: Failed to find backup provider by the name: veeam,nas
at org.apache.cloudstack.backup.BackupManagerImpl.getBackupProvider(BackupManagerImpl.java:1656)
at org.apache.cloudstack.backup.BackupManagerImpl.getBackupProvider(BackupManagerImpl.java:1648)
at org.apache.cloudstack.backup.BackupManagerImpl.getBackupStorageUsedStats(BackupManagerImpl.java:2262)
at org.apache.cloudstack.backup.BackupManagerImpl.getBackupStorageUsedStats(BackupManagerImpl.java:176)
at jdk.internal.reflect.GeneratedMethodAccessor417.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
```
**Current behaviour**
Currently, only one Backup framework is allowed per zone, it would be
**Expected behaviour**
It would be great if we could configure the "backup.framework.provider.plugin" at cluster level rather than zone level or support multiple backup providers at zone level
---------------
**Issue 2**
**Associate the backup offerings based on the hypervisor or cluster**
**Steps to reproduce the issue**
1. Have multiple backup offerings one for kvm and one for vmware
2. Navigate to deploy vm form Compute > Select a KVM host or KVM template , all the backup offering are displayed
Similarly, select a VMWare host or vmware template , all the backup offering are displayed
3. Similarly, in the instance view all the backup offerings are displayed
**Expected behaviour**
It would be great if we could display the backup offerings based on the hypervisor or cluster type ( KVM or vmware)
Contributor guide
Research direction
Start with the BackupManagerImpl.java locations shown in the stack trace and read the linked Veeam and NAS plugin documentation. Reproduce the zone configuration and inspect the Compute deployment and instance views described in the issue. Done means multiple providers can coexist as required and backup offerings are filtered by hypervisor or cluster type.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100