On 17.11.25 13:49, Kevin Wolf wrote:
Hi Vladimir,
I remembered this series and wanted to check what the current status is,
because I seemed to remember that the next step was that you would send
a new version. But reading it again, you're probably waiting for more
input? Let's try to get this finished.
I think yes, I was waiting, but then switched to other tasks.
Am 02.04.2025 um 15:05 hat Vladimir Sementsov-Ogievskiy geschrieben:
On 18.10.24 16:59, Kevin Wolf wrote:
If we want to get rid of the union, I think the best course of action
would unifying the namespaces (so that nodes, exports and devices can't
share the same ID) and then we could just accept a universal 'id' along
with 'child'.
Maybe we can go this way even without explicit restriction (which
should some how go through deprecation period, etc), but simply look
for the id among nodes, devices and exports and if found more than one
parent - fail.
And we document, that id should not be ambiguous, should not match more
than one parent object. So, those who want to use new command will care
to make unique ids.
I don't think such a state is very pretty, but it would be okay for me
as an intermediate state while we go through a deprecation period to
restrict IDs accordingly.
So we could start with blockdev-replace returning an error on ambiguous
IDs and at the same time deprecate them, and only later we would make
creating nodes/devices/exports with the same ID an error.
Hmm, the only question remains, is what/how to deprecate exactly?
We want to deprecate user's possibility to set intersecting
IDs for exports / devices / block-nodes? I think, we don't
have a QAPI-native way to deprecate such thing..
May be, add new "uuid" parameter, and deprecate its absence (I doubt that we
can do such deprecation too). And deprecate old IDs? But we can't deprecate
QOM path for this..
Hmm, or move to QOM paths for block-nodes and exports? And deprecate export
names
and node names?
Or we can just deprecate intersecting IDs in documentation and start to print
warning,
when user make intersecting IDs? But nobody reads warnings..
Is there a proper way to deprecate such things?
--
Best regards,
Vladimir