Martin Betak has uploaded a new change for review.

Change subject: restapi: Enable support for Vm Boot menu
......................................................................

restapi: Enable support for Vm Boot menu

Exposed VmBase#bootMenuEnabled property as

  <os>
    <menu>true|false</menu>
  </os>

element of Vm and Template resources.
This property controls wheter to display menu upon system boot.
Default is false.

Change-Id: I926aaf58da72494f2e1710aec8530fe4794c2fe4
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1047624
Signed-off-by: Martin Betak <[email protected]>
---
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/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
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
7 files changed, 35 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/26128/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 746b8b0..d46504e 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
@@ -2413,6 +2413,7 @@
 
   <xs:complexType name="OperatingSystem">
     <xs:sequence>
+      <xs:element name="menu" type="xs:boolean" minOccurs="0" maxOccurs="1" />
       <xs:element name="boot" type="Boot" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element name="kernel" type="xs:string" minOccurs="0"/>
       <xs:element name="initrd" type="xs:string" minOccurs="0"/>
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 705bbb2..d648fa0 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
@@ -94,6 +94,7 @@
           vm.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 'xs:int', 
vcpu_pin.cpu_set: 'xs:string'}
           vm.serial_number.policy: xs:string
           vm.serial_number.value: xs:string
+          vm.os.menu: xs:boolean
         description: update the virtual machine in the system for the given 
virtual machine id with the values specified in the request
     urlparams: {}
     headers:
@@ -173,6 +174,7 @@
           vm.use_latest_template_version: xs:boolean
           vm.serial_number.policy: xs:string
           vm.serial_number.value: xs:string
+          vm.os.menu: xs:string
         description: add a virtual machine to the system from scratch
       # the following signature is for clone VM from a Snapshot - requires the 
Snapshot ID
       - mandatoryArguments: {vm.name: 'xs:string', vm.template.id|name: 
'xs:string', vm.cluster.id|name: 'xs:string',
@@ -220,6 +222,7 @@
           vm.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 'xs:int', 
vcpu_pin.cpu_set: 'xs:string'}
           vm.serial_number.policy: xs:string
           vm.serial_number.value: xs:string
+          vm.os.menu: xs:boolean
         description: add a virtual machine to the system by cloning from a 
snapshot
       # the following signature is for adding VM from a configuration - 
requires the configuration type and the configuration data
       - mandatoryArguments: {vm.initialization.configuration.type: 
'xs:string', vm.initialization.configuration.data: 'xs:string'}
@@ -269,6 +272,7 @@
                 vm.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 
'xs:int', vcpu_pin.cpu_set: 'xs:string'}
                 vm.serial_number.policy: xs:string
                 vm.serial_number.value: xs:string
+                vm.os.menu: xs:boolean
         description: add a virtual machine to the system from a configuration 
- requires the configuration type and the configuration data
     urlparams: {}
     headers:
@@ -3422,6 +3426,7 @@
           template.version.version_name: xs:string
           template.serial_number.policy: xs:string
           template.serial_number.value: xs:string
+          template.os.menu: xs:boolean
         description: update the specified template in the system
     urlparams: {}
     headers:
@@ -3477,6 +3482,7 @@
           template.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 
'xs:int', vcpu_pin.cpu_set: 'xs:string'}
           template.serial_number.policy: xs:string
           template.serial_number.value: xs:string
+          template.os.menu: xs:boolean
         description: add a new template to the system
     urlparams: {}
     headers:
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
index 873d3e9..c032de7 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
@@ -480,6 +480,21 @@
     }
 
     @Test
+    public void testStartWithBootMenu() throws Exception {
+        setUpWindowsGetEntityExpectations(1, false);
+        setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
+                                           RunVmOnceParams.class,
+                                           new String[] { "VmId", 
"BootMenuEnabled" },
+                                           new Object[] { GUIDS[0], true }));
+        Action action = new Action();
+        action.setVm(new VM());
+        action.getVm().setOs(new OperatingSystem());
+        action.getVm().getOs().setMenu(true);
+
+        verifyActionResponse(resource.start(action));
+    }
+
+    @Test
     public void testStartWithCdRomAndFloppy() throws Exception {
         setUpWindowsGetEntityExpectations(1, false);
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
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 f912eaa..9042da8 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
@@ -118,6 +118,9 @@
             if (model.getOs().isSetCmdline()) {
                 entity.setKernelParams(model.getOs().getCmdline());
             }
+            if (model.getOs().isSetMenu()) {
+                entity.setBootMenuEnabled(model.getOs().isMenu());
+            }
         }
         if (model.isSetDisplay()) {
             if (model.getDisplay().isSetType()) {
@@ -345,6 +348,7 @@
             os.setKernel(entity.getKernelUrl());
             os.setInitrd(entity.getInitrdUrl());
             os.setCmdline(entity.getKernelParams());
+            os.setMenu(entity.isBootMenuEnabled());
             model.setOs(os);
         }
         if (entity.getVdsGroupId() != 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 21e1d4f..b32a571 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
@@ -200,6 +200,9 @@
             if (vm.getOs().isSetCmdline()) {
                 staticVm.setKernelParams(vm.getOs().getCmdline());
             }
+            if (vm.getOs().isSetMenu()) {
+                staticVm.setBootMenuEnabled(vm.getOs().isMenu());
+            }
         }
         if (vm.isSetType()) {
             VmType vmType = VmType.fromValue(vm.getType());
@@ -389,6 +392,7 @@
             os.setKernel(entity.getKernelUrl());
             os.setInitrd(entity.getInitrdUrl());
             os.setCmdline(entity.getKernelParams());
+            os.setMenu(entity.isBootMenuEnabled());
             model.setOs(os);
         }
         if (entity.getVdsGroupId() != null) {
@@ -592,6 +596,9 @@
             if (vm.getOs().isSetCmdline()) {
                 params.setKernelParams(vm.getOs().getCmdline());
             }
+            if (vm.getOs().isSetMenu()) {
+                params.setBootMenuEnabled(vm.getOs().isMenu());
+            }
         }
         if (vm.isSetDomain() && vm.getDomain().isSetName()) {
             params.setSysPrepDomainName(vm.getDomain().getName());
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 c907509..992f20f 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
@@ -70,6 +70,7 @@
         assertEquals(model.getOs().getKernel(), transform.getOs().getKernel());
         assertEquals(model.getOs().getInitrd(), transform.getOs().getInitrd());
         assertEquals(model.getOs().getCmdline(), 
transform.getOs().getCmdline());
+        assertEquals(model.getOs().isMenu(), transform.getOs().isMenu());
         assertNotNull(model.getDisplay());
         assertEquals(model.getDisplay().getType(), 
transform.getDisplay().getType());
         assertEquals(model.getDisplay().getMonitors(), 
transform.getDisplay().getMonitors());
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 5f3861e..ff1372c 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
@@ -130,6 +130,7 @@
         assertEquals(model.getOs().getKernel(), transform.getOs().getKernel());
         assertEquals(model.getOs().getInitrd(), transform.getOs().getInitrd());
         assertEquals(model.getOs().getCmdline(), 
transform.getOs().getCmdline());
+        assertEquals(model.getOs().isMenu(), transform.getOs().isMenu());
         assertTrue(transform.isSetDisplay());
         assertEquals(model.isSetDisplay(), transform.isSetDisplay());
         assertEquals(model.getDisplay().getType(), 
transform.getDisplay().getType());


-- 
To view, visit http://gerrit.ovirt.org/26128
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I926aaf58da72494f2e1710aec8530fe4794c2fe4
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Betak <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to