diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 59828a65a63d..c1942e03386e 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -1455,7 +1455,7 @@ protected synchronized void attachOrDetachDisk(final Connect conn, final boolean throws LibvirtException, InternalErrorException { attachOrDetachDisk(conn, attach, vmName, attachingDisk, devId, serial, bytesReadRate, bytesReadRateMax, bytesReadRateMaxLength, bytesWriteRate, bytesWriteRateMax, bytesWriteRateMaxLength, iopsReadRate, iopsReadRateMax, iopsReadRateMaxLength, iopsWriteRate, - iopsWriteRateMax, iopsWriteRateMaxLength, cacheMode, encryptDetails, provider, krbdpath, shareable, kvdoEnable, details, controllerInfo); + iopsWriteRateMax, iopsWriteRateMaxLength, cacheMode, encryptDetails, provider, krbdpath, shareable, kvdoEnable, 0l, details, controllerInfo); } /** diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index 94581a14f09a..0be52b6ed686 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -9891,11 +9891,6 @@ public UserVm allocateVMFromBackup(CreateVMFromBackupCmd cmd) throws Insufficien throw new CloudRuntimeException("Create instance from backup is not supported for this provider."); } - BackupProvider backupProvider = backupManager.getBackupProviderForOffering(backup.getBackupOfferingId()); - if (backupProvider != null && "bx".equalsIgnoreCase(backupProvider.getName())) { - throw new CloudRuntimeException("Create instance from backup is not supported for this provider."); - } - DataCenter targetZone = _dcDao.findById(cmd.getZoneId()); if (targetZone == null) { throw new InvalidParameterValueException("Unable to find zone by id=" + cmd.getZoneId()); @@ -10046,13 +10041,6 @@ public UserVm restoreVMFromBackup(CreateVMFromBackupCmd cmd) throws ResourceUnav additonalParams.put(VirtualMachineProfile.Param.ReturnAfterVolumePrepare, true); try { - BackupVO backup = backupDao.findById(cmd.getBackupId()); - BackupProvider backupProvider = backupManager.getBackupProviderForOffering(backup.getBackupOfferingId()); - if (backupProvider != null && "bx".equalsIgnoreCase(backupProvider.getName())) { - vm = _vmDao.findById(vmId); - return vm; - } - Pair> vmParamPair = null; vmParamPair = startVirtualMachine(vmId, null, null, null, additonalParams, null); vm = vmParamPair.first(); @@ -11032,27 +11020,14 @@ public Pair restoreVMFromBxBackup(CreateVMFromBxBackupCmd cmd) } BackupProvider backupProvider = backupManager.getBackupProviderForOffering(backup.getBackupOfferingId()); - if (backupProvider != null && "bx".equalsIgnoreCase(backupProvider.getName())) { - Pair result = backupProvider.restoreBackupToVM(cmd.getBackupId(), cmd.getName()); - logger.debug(">>>restoreVMFromBxBackup result: {}", result); - if (result == null || !Boolean.TRUE.equals(result.first())) { - if (result != null && StringUtils.isNotEmpty(result.second())) { - throw new CloudRuntimeException(String.format("Failed to create Instance from backup %s using bx provider. Error: %s", backup.getUuid(), result.second())); - } - throw new CloudRuntimeException(String.format("Failed to create Instance from backup %s using bx provider.", backup.getUuid())); - } - - // logger.debug(">>>allocateVMFromBackup cmd.getName: {}", cmd.getName()); - // VMInstanceVO vmInstance = _vmInstanceDao.findVMByInstanceName(cmd.getName()); - // logger.debug(">>>allocateVMFromBackup vmInstance: {}", vmInstance); - // UserVm vm = (UserVm) vmInstance; - // logger.debug(">>>allocateVMFromBackup vm: {}", vm); - // if (vm == null) { - // throw new CloudRuntimeException(String.format("Unable to find restored Instance created from backup %s using bx provider.", backup.getUuid())); - // } - return result; - } else { - throw new CloudRuntimeException("Create instance from backup is not supported for this provider."); + Pair result = backupProvider.restoreBackupToVM(cmd.getBackupId(), cmd.getName()); + if (result == null || !Boolean.TRUE.equals(result.first())) { + if (result != null && StringUtils.isNotEmpty(result.second())) { + throw new CloudRuntimeException(String.format("Failed to create Instance from backup %s using bx provider. Error: %s", backup.getUuid(), result.second())); + } + throw new CloudRuntimeException(String.format("Failed to create Instance from backup %s using bx provider.", backup.getUuid())); } + + return result; } }