Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1512850 - Unable to boot VM from CD-ROM
Summary: Unable to boot VM from CD-ROM
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine-sdk-java
Classification: oVirt
Component: Core
Version: 4.1.3
Hardware: All
OS: All
unspecified
high vote
Target Milestone: ovirt-4.1.8
: 4.1.6
Assignee: Juan Hernández
QA Contact: Lucie Leistnerova
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-11-14 09:52 UTC by Mirko Solic
Modified: 2017-12-11 16:29 UTC (History)
4 users (show)

Fixed In Version: java-ovirt-engine-sdk4-4.1.6
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-12-11 16:29:50 UTC
oVirt Team: Infra
rule-engine: ovirt-4.1+


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
oVirt gerrit 84071 master MERGED Fix XML tag for lists of enums 2017-11-14 14:00:04 UTC
oVirt gerrit 84090 metamodel_1.1 MERGED Fix XML tag for lists of enums 2017-11-14 14:08:50 UTC
oVirt gerrit 84157 master MERGED Update to metamodel 1.2.13 2017-11-15 11:26:41 UTC
oVirt gerrit 84171 sdk_4.1 MERGED Update to metamodel 1.1.16 2017-11-15 11:42:01 UTC

Description Mirko Solic 2017-11-14 09:52:53 UTC
Description of problem:

I'm trying to boot VM from CD-ROM, using SDK. This is code I use

connection.systemService().vmsService()
  .vmService("123")
  .start()
  .vm(
     vm()
       .os(
	 operatingSystem().boot(boot().devices(BootDevice.CDROM)))
       )
   .send();

Response I get from server is 400.

Looking further into code I realised that SDK produces wrong request. It looks like this:

<action>
  <vm>
    <os>
      <boot>
        <devices>
          <boot_device>cdrom</boot_device>
        </devices>
      </boot>
    </os>
  </vm>
</action>

Problem is in tag <boot_device>, it should be <device>

The same I see in engine.log

2017-11-14 10:27:06,967+01 ERROR [org.ovirt.engine.api.restapi.resource.validation.IOExceptionMapper] (default task-30) [] Exception: java.io.IOException: javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"boot_device"). Expected elements are <{}device>
        at org.ovirt.engine.api.restapi.xml.JAXBProvider.readFrom(JAXBProvider.java:199) [restapi-jaxrs.jar:]
        at org.ovirt.engine.api.restapi.xml.JAXBProvider.readFrom(JAXBProvider.java:161) [restapi-jaxrs.jar:]


Version-Release number of selected component (if applicable):

I'm using java SDK version 4.1.5 and I'm connecting to Ovirt 4.1.6.
I tried the same code with SDK version 4.2.0.alpha2, but had the same problem.


How reproducible:

Run this code.

connection.systemService().vmsService()
  .vmService("123")
  .start()
  .vm(
     vm()
       .os(
	 operatingSystem().boot(boot().devices(BootDevice.CDROM)))
       )
   .send();

Comment 1 Juan Hernández 2017-11-14 10:35:28 UTC
To fix this we need to fix the code generator. That is what the proposed patch does. Once that fix is merged and the new code generator is released, we will need to re-generate the SDK.

Comment 2 Lev Veyde 2017-11-23 16:39:52 UTC
Package was added to oVirt 4.1.8 RC2 release.

Comment 3 Lucie Leistnerova 2017-11-28 16:33:05 UTC
VM from cdrom booted successfully 

verified in java-ovirt-engine-sdk4-4.1.6-1.el7ev.noarch with ovirt-engine-4.1.8.1-0.1.el7.noarch


Note You need to log in before you can comment on or make changes to this bug.