Francesco Romani has uploaded a new change for review. Change subject: restapi: spice: allow to disable the clipboard ......................................................................
restapi: spice: allow to disable the clipboard spice supports clipboard copy-paste. This feature is enabled by default, but can be turned off. This patch exposes the feature control toggle through the REST API. Change-Id: I8a8dcbc5c4b4316a9d7fb373ff69ef5547896a45 Bug-Url: https://bugzilla.redhat.com/1082479 Signed-off-by: Francesco Romani <from...@redhat.com> --- M backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd M backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java M backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java M backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java 6 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/51/28151/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd index 771c12f..ae13091 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd @@ -2581,6 +2581,7 @@ <xs:element name="smartcard_enabled" type="xs:boolean" minOccurs="0" maxOccurs="1"/> <xs:element name="keyboard_layout" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="proxy" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="copy_paste_enabled" type="xs:boolean" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml index 5234df3..1640fb3 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml @@ -65,6 +65,7 @@ vm.display.type: xs:string vm.display.allow_override: xs:boolean vm.display.smartcard_enabled: xs:boolean + vm.display.copy_paste_enabled: xs:boolean vm.display.keyboard_layout: xs:string vm.os.cmdline: xs:string vm.cpu.mode: xs:string @@ -143,6 +144,7 @@ vm.display.type: xs:string vm.display.allow_override: xs:boolean vm.display.smartcard_enabled: xs:boolean + vm.display.copy_paste_enabled: xs:boolean vm.display.keyboard_layout: xs:string vm.os.cmdline: xs:string vm.cpu.topology.cores: xs:int @@ -200,6 +202,7 @@ vm.display.type: xs:string vm.display.allow_override: xs:boolean vm.display.smartcard_enabled: xs:boolean + vm.display.copy_paste_enabled: xs:boolean vm.display.keyboard_layout: xs:string vm.os.cmdline: xs:string vm.cpu.topology.cores: xs:int @@ -250,6 +253,7 @@ vm.display.type: xs:string vm.display.allow_override: xs:boolean vm.display.smartcard_enabled: xs:boolean + vm.display.copy_paste_enabled: xs:boolean vm.display.keyboard_layout: xs:string vm.os.cmdline: xs:string vm.cpu.topology.cores: xs:int @@ -3556,6 +3560,7 @@ vm.display.single_qxl_pci: xs:boolean template.display.allow_override: xs:boolean template.display.smartcard_enabled: xs:boolean + vm.display.copy_paste_enabled: xs:boolean template.display.keyboard_layout: xs:string template.os.initRd: xs:string template.usb.enabled: xs:boolean @@ -3611,6 +3616,7 @@ vm.display.single_qxl_pci: xs:boolean template.display.allow_override: xs:boolean template.display.smartcard_enabled: xs:boolean + template.display.copy_paste_enabled: xs:boolean template.display.keyboard_layout: xs:string template.os.initRd: xs:string template.usb.enabled: xs:boolean diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java index e7b791a..43f0620 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java @@ -152,6 +152,9 @@ } entity.setVncKeyboardLayout(layout); } + if (model.getDisplay().isSetCopyPasteEnabled()) { + entity.setSpiceCopyPasteEnabled(model.getDisplay().isCopyPasteEnabled()); + } } if (model.isSetDomain() && model.getDomain().isSetName()) { if (entity.getVmInit() == null) { @@ -291,6 +294,9 @@ } staticVm.setVncKeyboardLayout(layout); } + if (model.getDisplay().isSetCopyPasteEnabled()) { + staticVm.setSpiceCopyPasteEnabled(model.getDisplay().isCopyPasteEnabled()); + } } if (model.isSetDomain() && model.getDomain().isSetName()) { if (staticVm.getVmInit() == null) { @@ -376,6 +382,7 @@ model.getDisplay().setAllowOverride(entity.isAllowConsoleReconnect()); model.getDisplay().setSmartcardEnabled(entity.isSmartcardEnabled()); model.getDisplay().setKeyboardLayout(entity.getVncKeyboardLayout()); + model.getDisplay().setCopyPasteEnabled(entity.isSpiceCopyPasteEnabled()); } if (entity.getClusterArch() != null) { model.getCpu().setArchitecture(CPUMapper.map(entity.getClusterArch(), null)); diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java index 4f7ec4d..f600332 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java @@ -127,6 +127,7 @@ staticVm.setVmInit(entity.getVmInit()); staticVm.setSerialNumberPolicy(entity.getSerialNumberPolicy()); staticVm.setCustomSerialNumber(entity.getCustomSerialNumber()); + staticVm.setSpiceCopyPasteEnabled(entity.isSpiceCopyPasteEnabled()); return staticVm; } @@ -261,6 +262,9 @@ layout = null; // uniquely represent unset keyboard layout as null } staticVm.setVncKeyboardLayout(layout); + } + if (vm.getDisplay().isSetCopyPasteEnabled()) { + staticVm.setSpiceCopyPasteEnabled(vm.getDisplay().isSetCopyPasteEnabled()); } } if (vm.isSetPlacementPolicy() && vm.getPlacementPolicy().isSetAffinity()) { @@ -492,6 +496,7 @@ model.getDisplay().setAllowOverride(entity.getAllowConsoleReconnect()); model.getDisplay().setSmartcardEnabled(entity.isSmartcardEnabled()); model.getDisplay().setKeyboardLayout(entity.getDefaultVncKeyboardLayout()); + model.getDisplay().setCopyPasteEnabled(entity.isSpiceCopyPasteEnabled()); } model.setType(map(entity.getVmType(), null)); model.setStateless(entity.isStateless()); diff --git a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java index 8bde853..f014a38 100644 --- a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java +++ b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java @@ -86,5 +86,6 @@ assertEquals(model.getVersion().getBaseTemplate().getId(), transform.getVersion().getBaseTemplate().getId()); assertEquals(model.getSerialNumber().getPolicy(), transform.getSerialNumber().getPolicy()); assertEquals(model.getSerialNumber().getValue(), transform.getSerialNumber().getValue()); + assertEquals(model.getDisplay().isCopyPasteEnabled(), transform.getDisplay().isCopyPasteEnabled()); } } diff --git a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java index a63e2a4..cd33282 100644 --- a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java +++ b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java @@ -98,6 +98,7 @@ guestNic.setBootProtocol(MappingTestHelper.shuffle(BootProtocol.class).value()); } from.getSerialNumber().setPolicy(SerialNumberPolicy.CUSTOM.value()); + from.getDisplay().setCopyPasteEnabled(true); return from; } @@ -147,6 +148,7 @@ assertEquals(model.getMigrationDowntime(), transform.getMigrationDowntime()); assertEquals(model.getSerialNumber().getPolicy(), transform.getSerialNumber().getPolicy()); assertEquals(model.getSerialNumber().getValue(), transform.getSerialNumber().getValue()); + assertEquals(model.getDisplay().isCopyPasteEnabled(), transform.getDisplay().isCopyPasteEnabled()); } @Test -- To view, visit http://gerrit.ovirt.org/28151 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8a8dcbc5c4b4316a9d7fb373ff69ef5547896a45 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Francesco Romani <from...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches