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 :|