On 09/02/23 9:56 pm, Markus Armbruster wrote:
Daniel P. Berrangé <berra...@redhat.com> writes:

On Wed, Feb 08, 2023 at 02:17:12PM -0600, Eric Blake wrote:
[...]

I'm guessing the reason you didn't go with 'socket': 'SocketAddress'
is that SocketAddress is itself a discriminated union, and Markus does
not yet have the QAPI generator wired up to support one union as a
branch of another larger union?  It leads to extra nesting on the wire
[2]
I don't know the backstory on this limitation. Is it something that
is very difficult to resolve ? I think it is highly desirable to have
'socket': 'SocketAddress' here. It would be a shame to introduce this
better migration API design and then have it complicated by a possibly
short term limitation of QAPI.
We evolve the QAPI language to satisfy concrete use cases.  If you could
use a language improvement, make a case for it, and we'll see what we
can do within a time frame that works for you.  Better than ugly
work-arounds on the silent assumption the language cannot be adapted.

Hi Markus, Daniel has already left some comments on version 2, patch 2. In short, we want to make a union, where some of the branches of that union can call directly to another known union like 'SocketAddress'. Right now, QAPI does not allow to directly call a union inside a branch of union, and need to make a spearate struct, and then call a union again, and increases complexity of QAPI design which is contrary to what we aim for.

We can further discuss on the response Markus has given in the latest v2 patch 2, and aim to, how we can evolve QAPI languge and reduce complexity :)


Regards,
Het Gala

Reply via email to