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