On Mon, Mar 21, 2022 at 04:24:36PM +0100, Peter Krempa wrote:
Implement the XML parser and formatter for overriding of device
properties such as:
<qemu:deviceOverride>
s/deviceOverride/devices/
<qemu:device alias='ua-disk'>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
<qemu:property name='prop3' type='unsigned'
value='123'/>
<qemu:property name='prop4' type='bool'
value='true'/>
<qemu:property name='prop5' type='bool'
value='false'/>
<qemu:property name='prop6' type='bool'
value='false'/>
<qemu:property name='prop6' type='remove'/>
</qemu:device>
</qemu:deviceOverride>
This all applies to the frontend. Could we make this work
with the backend too ? Obviously there are many different
types of backend, so it is less convenient to implement
that, but would at least be nice to have a thought about
how we could represent it in the XML config.
Some ideas:
1. Type specific backend at the top level
<qemu:device alias='ua-disk'>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
</qemu:device>
<qemu:blockdev alias='ua-disk'>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
</qemu:blockdev>
2. Type specific backend at the inner level
<qemu:device alias='ua-disk'>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
<qemu:blockdev alias='ua-disk'>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
</qemu:blockdev>
</qemu:device>
3. Inner generic backends/frontends:
<qemu:device alias='ua-disk'>
<qemu:frontend>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
</qemu:frontend>
<qemu:backend>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
</qemu:backend>
</qemu:device>
4. Inner generic backends:
<qemu:device alias='ua-disk'>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
<qemu:backend>
<qemu:property name='prop1' type='string'
value='propval1'/>
<qemu:property name='prop2' type='signed'
value='-321'/>
</qemu:backend>
</qemu:device>
I'd probably lean slightly towards options (3)/(4), which happens
to be possible to retrofit with this series as.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|