private static Display extractDisplayFromResource(BaseResource res) { if (res instanceof Vm) { return ((Vm) res).getDisplay(); } if (res instanceof Template) { return ((Template) res).getDisplay(); } return null; }
/** * For backwards compatibility. Derives graphics type (backend) from display (rest). */ public static void fillDisplayInParams(Vm vm, RunVmOnceParams params) { if (params == null) { return; } if (vm.isSetDisplay() && vm.getDisplay().isSetType()) { DisplayType displayType = vm.getDisplay().getType(); if (displayType != null) { org.ovirt.engine.core.common.businessentities.DisplayType display = mapDisplayType(displayType, null); if (display != null) { Set<GraphicsType> graphics = new HashSet<>(); switch (display) { case qxl: graphics.add(GraphicsType.SPICE); break; case vga: case cirrus: graphics.add(GraphicsType.VNC); break; } params.setRunOnceGraphics(graphics); } } } }
private void verifyCertificate(Vm model) { assertNotNull(model.getDisplay()); assertNotNull(model.getDisplay().getCertificate()); assertEquals(CERTIFICATE, model.getDisplay().getCertificate().getSubject()); }
public static void setCertificateInfo(BackendResource resouce, Vm vm) { QueryReturnValue result = resouce.runQuery(QueryType.GetVdsCertificateSubjectByVmId, new IdQueryParameters(resouce.asGuid(vm.getId()))); if (result != null && result.getSucceeded() && result.getReturnValue() != null) { if (!vm.isSetDisplay()) { vm.setDisplay(new Display()); } vm.getDisplay().setCertificate(new Certificate()); vm.getDisplay().getCertificate().setSubject(result.getReturnValue().toString()); } }
public void setCertificateInfo(Vm model) { QueryReturnValue result = runQuery(QueryType.GetVdsCertificateSubjectByVmId, new IdQueryParameters(asGuid(model.getId()))); if (result != null && result.getSucceeded() && result.getReturnValue() != null) { if (!model.isSetDisplay()) { model.setDisplay(new Display()); } model.getDisplay().setCertificate(new Certificate()); model.getDisplay().getCertificate().setSubject(result.getReturnValue().toString()); } }
protected Response addVmFromScratch(VmStatic staticVm, Vm vm, InstanceType instanceType, Cluster cluster) { AddVmParameters params = new AddVmParameters(staticVm); params.setVmPayload(getPayload(vm)); params.setMakeCreatorExplicitOwner(shouldMakeCreatorExplicitOwner()); addDevicesToParams(params, vm, null, instanceType, staticVm, cluster); IconHelper.setIconToParams(vm, params); DisplayHelper.setGraphicsToParams(vm.getDisplay(), params); return performCreate(ActionType.AddVmFromScratch, params, new QueryIdResolver<Guid>(QueryType.GetVmByVmId, IdQueryParameters.class)); }
@Test public void testClusterSpiceProxy() { org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM(); entity.setClusterSpiceProxy(CLUSTER_SPICE_PROXY); Vm model = VmMapper.map(entity, (Vm) null); assertEquals(CLUSTER_SPICE_PROXY, model.getDisplay().getProxy()); }
@Test @MockedConfig("mockSpiceConfiguration") public void testGlobalSpiceProxy() { org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM(); Vm model = VmMapper.map(entity, (Vm) null); assertEquals(GLOBAL_SPICE_PROXY, model.getDisplay().getProxy()); }
@Test public void testPoolSpiceProxy() { org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM(); entity.setVmPoolSpiceProxy(POOL_SPICE_PROXY); Vm model = VmMapper.map(entity, (Vm) null); assertEquals(POOL_SPICE_PROXY, model.getDisplay().getProxy()); }
@Test public void testDisplayPort() { org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM(); entity.setStatus(VMStatus.Up); entity.getGraphicsInfos().put(GraphicsType.SPICE, new GraphicsInfo()); entity.getGraphicsInfos().get(GraphicsType.SPICE) .setPort(5900) .setTlsPort(9999); Vm model = VmMapper.map(entity, (Vm) null); entity.getGraphicsInfos().put(GraphicsType.SPICE, new GraphicsInfo()); entity.getGraphicsInfos().get(GraphicsType.SPICE) .setPort(null) .setTlsPort(null); model = VmMapper.map(entity, (Vm) null); assertNull(model.getDisplay().getPort()); assertNull(model.getDisplay().getSecurePort()); }
private Response cloneVmFromTemplate(VmStatic staticVm, Vm vm, VmTemplate template, InstanceType instanceType, Cluster cluster) { AddVmParameters params = new AddVmParameters(staticVm); params.setDiskInfoDestinationMap(getDisksToClone(vm.getDiskAttachments(), template.getId())); params.setVmPayload(getPayload(vm)); addDevicesToParams(params, vm, template, instanceType, staticVm, cluster); IconHelper.setIconToParams(vm, params); params.setMakeCreatorExplicitOwner(shouldMakeCreatorExplicitOwner()); setupCloneTemplatePermissions(params); DisplayHelper.setGraphicsToParams(vm.getDisplay(), params); return performCreate(ActionType.AddVmFromTemplate, params, new QueryIdResolver<Guid>(QueryType.GetVmByVmId, IdQueryParameters.class)); }
protected Response addVm(VmStatic staticVm, Vm vm, Guid storageDomainId, VmTemplate template, InstanceType instanceType, Cluster cluster) { AddVmParameters params = new AddVmParameters(staticVm); params.setVmPayload(getPayload(vm)); params.setStorageDomainId(storageDomainId); params.setDiskInfoDestinationMap(getDisksToClone(vm.getDiskAttachments(), template.getId())); params.setMakeCreatorExplicitOwner(shouldMakeCreatorExplicitOwner()); setupCloneTemplatePermissions(params); addDevicesToParams(params, vm, template, instanceType, staticVm, cluster); IconHelper.setIconToParams(vm, params); DisplayHelper.setGraphicsToParams(vm.getDisplay(), params); return performCreate(ActionType.AddVm, params, new QueryIdResolver<Guid>(QueryType.GetVmByVmId, IdQueryParameters.class)); }
private void testStartWithModifiedGraphics(GraphicsType graphicsType) { setUpWindowsGetEntityExpectations(1, false); setUriInfo(setUpActionExpectations(ActionType.RunVmOnce, RunVmOnceParams.class, new String[] { "VmId", "RunOnceGraphics" }, new Object[] { GUIDS[0], Collections.singleton(graphicsType) })); Action action = new Action(); action.setVm(new Vm()); action.getVm().setDisplay(new Display()); DisplayType display = (graphicsType == GraphicsType.VNC) ? DisplayType.VNC : DisplayType.SPICE; action.getVm().getDisplay().setType(display); verifyActionResponse(resource.start(action)); }
from.setStorageErrorResumeBehaviour(VmStorageErrorResumeBehaviour.AUTO_RESUME); from.setOrigin(OriginType.VMWARE.name().toLowerCase()); from.getDisplay().setType(DisplayType.SPICE); from.getPayloads().getPayloads().get(0).setType(VmDeviceType.CDROM); List<BootDevice> devices = from.getOs().getBoot().getDevices().getDevices(); guestNic.setBootProtocol(BootProtocol.STATIC); from.getDisplay().setType(DisplayType.SPICE); from.getSerialNumber().setPolicy(SerialNumberPolicy.CUSTOM); from.getDisplay().setFileTransferEnabled(true); from.getDisplay().setCopyPasteEnabled(true); from.getMigration().setAutoConverge(InheritableBoolean.TRUE); from.getMigration().setCompressed(InheritableBoolean.TRUE); from.getDisplay().setDisconnectAction(DisplayDisconnectAction.LOCK_SCREEN.toString()); return from;
org.ovirt.engine.core.common.businessentities.GraphicsType graphicsType = deriveGraphicsType(entity.getGraphicsInfos()); if (graphicsType != null) { model.getDisplay().setType(DisplayMapper.map(graphicsType, null)); model.getDisplay().setAddress(graphicsInfo == null ? null : graphicsInfo.getIp()); Integer displayPort = graphicsInfo == null ? null : graphicsInfo.getPort(); model.getDisplay().setPort(displayPort == null || displayPort.equals(-1) ? null : displayPort); Integer displaySecurePort = graphicsInfo == null ? null : graphicsInfo.getTlsPort(); model.getDisplay().setSecurePort(displaySecurePort==null || displaySecurePort.equals(-1) ? null : displaySecurePort); model.setStopTime(DateMapper.map(entity.getLastStopTime(), null)); model.getDisplay().setMonitors(entity.getNumOfMonitors()); model.getDisplay().setSingleQxlPci(entity.getSingleQxlPci()); model.getDisplay().setAllowOverride(entity.getAllowConsoleReconnect()); model.getDisplay().setSmartcardEnabled(entity.isSmartcardEnabled()); model.getDisplay().setKeyboardLayout(entity.getDefaultVncKeyboardLayout()); model.getDisplay().setFileTransferEnabled(entity.isSpiceFileTransferEnabled()); model.getDisplay().setCopyPasteEnabled(entity.isSpiceCopyPasteEnabled()); model.getDisplay().setProxy(getEffectiveSpiceProxy(entity)); model.getDisplay().setDisconnectAction(map(entity.getConsoleDisconnectAction(), null).toString());
assertTrue(transform.isSetDisplay()); assertEquals(model.isSetDisplay(), transform.isSetDisplay()); assertEquals(model.getDisplay().getType(), transform.getDisplay().getType()); assertEquals(model.getDisplay().getMonitors(), transform.getDisplay().getMonitors()); assertEquals(model.getDisplay().isSingleQxlPci(), transform.getDisplay().isSingleQxlPci()); assertEquals(model.getDisplay().isAllowOverride(), transform.getDisplay().isAllowOverride()); assertTrue(Math.abs(model.getMemoryPolicy().getGuaranteed() - transform.getMemoryPolicy().getGuaranteed()) <= (1024 * 1024)); assertEquals(model.getTimeZone().getName(), transform.getTimeZone().getName()); assertEquals(model.getDisplay().isSmartcardEnabled(), transform.getDisplay().isSmartcardEnabled()); assertEquals(model.getDisplay().getKeyboardLayout(), transform.getDisplay().getKeyboardLayout()); assertEquals(model.isDeleteProtected(), transform.isDeleteProtected()); assertEquals(model.isTunnelMigration(), transform.isTunnelMigration()); assertEquals(model.getSerialNumber().getPolicy(), transform.getSerialNumber().getPolicy()); assertEquals(model.getSerialNumber().getValue(), transform.getSerialNumber().getValue()); assertEquals(model.getDisplay().isFileTransferEnabled(), transform.getDisplay().isFileTransferEnabled()); assertEquals(model.getDisplay().isCopyPasteEnabled(), transform.getDisplay().isCopyPasteEnabled()); assertEquals(model.isStartPaused(), transform.isStartPaused()); assertEquals(model.getMigration().getAutoConverge(), transform.getMigration().getAutoConverge()); assertEquals(model.getMigration().getCompressed(), transform.getMigration().getCompressed()); assertEquals(model.getDisplay().getDisconnectAction(), transform.getDisplay().getDisconnectAction());
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)); }
if (vm.getDisplay().isSetKeyboardLayout()) { String vncKeyboardLayout = vm.getDisplay().getKeyboardLayout(); params.setVncKeyboardLayout(vncKeyboardLayout);
to.setDisplay(adaptOut(from.getDisplay()));
DisplayHelper.setGraphicsToParams(incoming.getDisplay(), params);