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

Reply via email to