From 7d95952bc1a997dbc1ab0422fec06ab46e499137 Mon Sep 17 00:00:00 2001 From: Abhisar Sinha <63767682+abh1sar@users.noreply.github.com> Date: Wed, 18 Sep 2024 18:54:21 +0530 Subject: [PATCH] Enable Backup and Recovery for Shared Filesystems (#9676) --- .../cloudstack/backup/BackupManagerImpl.java | 28 ------------------- ui/src/config/section/compute.js | 8 +++--- 2 files changed, 4 insertions(+), 32 deletions(-) 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 4f99a22c9fc..6e13ba135df 100644 --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@ -31,8 +31,6 @@ import java.util.stream.Collectors; import com.amazonaws.util.CollectionUtils; import com.cloud.storage.VolumeApiService; import com.cloud.utils.fsm.NoTransitionException; -import com.cloud.vm.UserVmManager; -import com.cloud.vm.UserVmVO; import com.cloud.vm.VirtualMachineManager; import javax.inject.Inject; import javax.naming.ConfigurationException; @@ -296,13 +294,6 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager { throw new CloudRuntimeException("VM is not in running or stopped state"); } - if (vm.getType().equals(VirtualMachine.Type.User)) { - UserVmVO userVm = userVmDao.findById(vmId); - if (userVm != null && UserVmManager.SHAREDFSVM.equals(userVm.getUserVmType())) { - throw new InvalidParameterValueException("Operation not supported on Shared FileSystem Instance"); - } - } - validateForZone(vm.getDataCenterId()); accountManager.checkAccess(CallContext.current().getCallingAccount(), null, true, vm); @@ -431,12 +422,6 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager { } final VMInstanceVO vm = findVmById(vmId); - if (vm.getType().equals(VirtualMachine.Type.User)) { - UserVmVO userVm = userVmDao.findById(vmId); - if (userVm != null && UserVmManager.SHAREDFSVM.equals(userVm.getUserVmType())) { - throw new InvalidParameterValueException("Operation not supported on Shared FileSystem Instance"); - } - } validateForZone(vm.getDataCenterId()); accountManager.checkAccess(CallContext.current().getCallingAccount(), null, true, vm); @@ -504,13 +489,6 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager { validateForZone(vm.getDataCenterId()); accountManager.checkAccess(CallContext.current().getCallingAccount(), null, true, vm); - if (vm.getType().equals(VirtualMachine.Type.User)) { - UserVmVO userVm = userVmDao.findById(vmId); - if (userVm != null && UserVmManager.SHAREDFSVM.equals(userVm.getUserVmType())) { - throw new InvalidParameterValueException("Operation not supported on Shared FileSystem Instance"); - } - } - if (vm.getBackupOfferingId() == null) { throw new CloudRuntimeException("VM has not backup offering configured, cannot create backup before assigning it to a backup offering"); } @@ -784,12 +762,6 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager { validateForZone(backup.getZoneId()); final VMInstanceVO vm = findVmById(vmId); - if (vm.getType().equals(VirtualMachine.Type.User)) { - UserVmVO userVm = userVmDao.findById(vmId); - if (userVm != null && UserVmManager.SHAREDFSVM.equals(userVm.getUserVmType())) { - throw new InvalidParameterValueException("Operation not supported on Shared FileSystem Instance"); - } - } accountManager.checkAccess(CallContext.current().getCallingAccount(), null, true, vm); if (vm.getBackupOfferingId() != null && !BackupEnableAttachDetachVolumes.value()) { diff --git a/ui/src/config/section/compute.js b/ui/src/config/section/compute.js index c6d16d6ea78..5a82c1ce48a 100644 --- a/ui/src/config/section/compute.js +++ b/ui/src/config/section/compute.js @@ -222,7 +222,7 @@ export default { docHelp: 'adminguide/virtual_machines.html#backup-offerings', dataView: true, args: ['virtualmachineid', 'backupofferingid'], - show: (record) => { return !record.backupofferingid && record.vmtype !== 'sharedfsvm' }, + show: (record) => { return !record.backupofferingid }, mapping: { virtualmachineid: { value: (record, params) => { return record.id } @@ -237,7 +237,7 @@ export default { docHelp: 'adminguide/virtual_machines.html#creating-vm-backups', dataView: true, args: ['virtualmachineid'], - show: (record) => { return record.backupofferingid && record.vmtype !== 'sharedfsvm' }, + show: (record) => { return record.backupofferingid }, mapping: { virtualmachineid: { value: (record, params) => { return record.id } @@ -251,7 +251,7 @@ export default { docHelp: 'adminguide/virtual_machines.html#creating-vm-backups', dataView: true, popup: true, - show: (record) => { return record.backupofferingid && record.vmtype !== 'sharedfsvm' }, + show: (record) => { return record.backupofferingid }, component: shallowRef(defineAsyncComponent(() => import('@/views/compute/BackupScheduleWizard.vue'))), mapping: { virtualmachineid: { @@ -270,7 +270,7 @@ export default { docHelp: 'adminguide/virtual_machines.html#restoring-vm-backups', dataView: true, args: ['virtualmachineid', 'forced'], - show: (record) => { return record.backupofferingid && record.vmtype !== 'sharedfsvm' }, + show: (record) => { return record.backupofferingid }, mapping: { virtualmachineid: { value: (record, params) => { return record.id }