private Response cloneVmFromSnapshot(org.ovirt.engine.core.common.businessentities.VM configVm, Vm vm, String snapshotId, Map<Guid, DiskImage> images) { VmStatic staticVm = configVm.getStaticData(); Guid sourceSnapshotId = asGuid(snapshotId); AddVmFromSnapshotParameters params = new AddVmFromSnapshotParameters(staticVm, sourceSnapshotId); params.setDiskInfoDestinationMap(images); params.setMakeCreatorExplicitOwner(shouldMakeCreatorExplicitOwner()); params.setVirtioScsiEnabled(vm.isSetVirtioScsi() && vm.getVirtioScsi().isSetEnabled() ? vm.getVirtioScsi().isEnabled() : null); if(vm.isSetSoundcardEnabled()) { params.setSoundDeviceEnabled(vm.isSoundcardEnabled()); } else { params.setSoundDeviceEnabled(isVMDeviceTypeExist(configVm.getManagedVmDeviceMap(), VmDeviceGeneralType.SOUND)); } params.setConsoleEnabled(vm.isSetConsole() && vm.getConsole().isSetEnabled() ? vm.getConsole().isEnabled() : !getConsoleDevicesForEntity(staticVm.getId()).isEmpty()); if (vm.isSetRngDevice()) { params.setUpdateRngDevice(true); params.setRngDevice(RngDeviceMapper.map(vm.getRngDevice(), null)); } DisplayHelper.setGraphicsToParams(vm.getDisplay(), params); return performCreate(ActionType.AddVmFromSnapshot, params, new QueryIdResolver<Guid>(QueryType.GetVmByVmId, IdQueryParameters.class)); }