On 2015-03-19 at 17:42, Alberto Garcia wrote:
(I forgot to Cc Eric in this series, doing it now)
On Thu, Mar 19, 2015 at 03:42:35PM -0400, Max Reitz wrote:
# Emitted when a corruption has been detected in a disk image
#
-# @device: device name
+# @device: device name, or node name if not present
Normally, if a field in QMP is designed @device, it contains a
device name. We do have combined device/node name fields, though (as
of John's incremental backup series, at least), but those are named
@node (which I proposed for patch 2, too).
But renaming the field here will lead to breaking backwards
compatibility. I think just adding a @node-name field and keeping
@device as it is should be good enough here.
I was doing the same that we discussed for BlockJobInfo here, where
option b) seemed to have a bit more support:
https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg03651.html
But yeah I personally don't mind extending the event with a new field.
Would we make 'device' optional in this case?
No, I think we'd need to keep it. It isn't optional right now so any
software using the monitor will expect it to be present (even if it's
empty).
Regarding the BlockJobInfo discussion: One argument I can see there is
"Particularly if we don't have two parameters for starting the job, then
we don't need two parameters for reporting it"/"If you're going to reuse
'device' on the creation, then reuse it on the reporting", which does
not apply here (there is no command corresponding to this event, it just
pops up on its own), so there will not be any asymmetry here.
Other than that, the only argument I can see is "it will work with
libvirt, so it is fine", but that's not really a reason to prefer b)
over a)...
So in this case here I don't really see a benefit of reusing @device
instead of just adding @node-name, whereas adding @node-name will have
the benefit of not affecting anybody and (in my opinion) being more
explicit. However, if others tend to think otherwise (the @node-name vs.
@node vs. @device is a constant point of dissent over naming...), I'm
happy to be convinced otherwise. In the end it doesn't really matter
after all, it's a machine-readable protocol. If software can work with
it, it's fine.
Max