On Wed, Oct 19, 2016 at 11:25:27AM +0200, Kevin Wolf wrote: > Am 18.10.2016 um 17:35 hat Markus Armbruster geschrieben: > > Kevin Wolf <kw...@redhat.com> writes: > > > Of course, you could argue that flat QDicts are the wrong data structure > > > in the first place and instead of flatting everything we should have > > > done the equivalent of qdict_crumple from the beginning, but they were > > > the natural extension of what was already there and happened to work > > > good enough, so this is what we're currently using. > > > > We didn't "flatten everything", because QemuOpts is and has always been > > flat to begin with. Rather we've started to crumple a few things, and > > in a separate layer. > > That's the QemuOpts point of view. > > I was talking from a block layer view. There we get data in two > different formats, QMP and the command line. The first is structured, > the second is flat. We need to make both uniform before we can pass them > to the actual block layer functions. > > The current code chose to flatten what we get from QMP blockdev-add and > use that throughout the block layer. We could instead have decided that > we leave the blockdev-add input as it is, crumple what we get from > QemuOpts and use nested QObjects throughout the block layer.
I would very much like to see BlockdevOptions structs passed around the block drivers, instead of QemuOpts - I think it'd lead to much clearer code than the QemuOpts stuff we have today IMHO Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|