On Tue, 12 May 2020 10:43:37 +0100 Daniel P. Berrangé wrote: > On Tue, May 12, 2020 at 11:32:06AM +0200, Lukas Straub wrote: > > ... > > > > Good Idea. We could name the connections (/yank callbacks) in the > > form "nbd:", "chardev:" and "migration" > > (and add "netdev:...", etc. in the future). Then make yank take a > > list of connection names as you suggest and silently ignore connections > > that don't exist. And maybe even add a 'query-yank' oob command returning > > a list of registered connections so the management application can do > > pattern matching if it wants. > > Yes, that would make the yank command much more flexible in how it can > be used. > > As an alternative to using formatted strings like this, it could be > modelled more explicitly in QAPI > > { 'struct': 'YankChannels', > 'data': { 'chardev': [ 'string' ], > 'nbd': ['string'], > 'migration': bool } } > > In this example, 'chardev' would accept a list of chardev IDs which > have it enabled, 'nbd' would accept a list of block node IDs which > have it enabled, and migration is a singleton on/off. With the new command, the yank feature can then be enabled unconditionally on the instances. > The benefit of this modelling is that you can introspect QEMU > to discover what classes of channels support being yanked by > this QEMU build, as well as what instances are configured to > be yanked. ie you can distinguish between a QEMU that doesn't > support yanking network devices, from a QEMU that does support > yanking network devices, but doesn't have it enabled for any > network device instances. > > Regards, > Daniel