On 06/16/2014 09:45 AM, Daniel P. Berrange wrote:
On Sat, Jun 14, 2014 at 07:49:40AM -0600, Eric Blake wrote:
>
> If you think backward compatibility of old clients that expected
> and operated on an absolute name is too important to break, I'm
> open to suggestions on alternatives how to preserve that. We don't
> have a flag argument during event registration, or I would have
> used it. Otherwise, I hope this change is okay as-is.
Hmm, I fear this is one of those cases where it seems fine
to change the semantics, but is liable to bite us later.
The most obvious alternative is to just introduce a new event
BLOCK_JOB_EVENT_2 or something less sucky. That still leaves
the question of how to generate the old event in the fact of
a disk with no local name - we could use empty string '' as
the "path" if the disk lacks one. Or we could simply not emit
the old style event. I'd probably go for empty string though.
Adam was the one that brought this issue up in the first place. Adam,
would you be okay registering for a new event id that guarantees you get
a stable name?
Libvirt would have to be able to generate both old and new style events
(yuck for me to code up, but such is life of back-compat), but Dan has a
valid point that the change is subtle enough that it might bite us if we
don't have some way to get both the old and the new style event by
explicit user request.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org