On Tue, Sep 01, 2015 at 03:17:29PM +0200, Andreas Färber wrote: > Am 01.09.2015 um 11:50 schrieb Daniel P. Berrange: > > Currently both object_del and device_del require that the > > client provide the object/device short ID. While user > > creatable objects require an ID to be provided at time of > > creation, qdev devices may be created without giving an > > ID. The only unique identifier they would then have is the > > QOM object path. > > > > Allowing device_del to accept an object path ensures all > > devices are deletable regardless of whether they have an > > ID. > > > > (qemu) device_add usb-mouse > > (qemu) qom-list /machine/peripheral-anon > > device[0] (child<usb-mouse>) > > type (string) > > (qemu) device_del /machine/peripheral-anon/device[0] > > > > Although objects require an ID to be provided upfront, > > there may be cases where the client would prefer to > > use QOM paths when deleting. > > > > Devices are required to be marked as hotpluggable > > otherwise an error is raised > > > > (qemu) device_del /machine/unattached/device[4] > > Device 'PIIX3' does not support hotplugging > > > > Similarly objects are required to implement the > > user-creatable interface > > > > (qemu) object_del /machine/unattached/device[4] > > /machine/unattached/device[4] is not a user-creatable object > > > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > > --- > > > > Changed in v3: > > > > - Add type checks to avoid assertion failures if user > > supplied path is not of type device or user-creatable > > > > hmp-commands.hx | 6 ++++-- > > qapi-schema.json | 4 ++-- > > qdev-monitor.c | 19 ++++++++++++++----- > > qmp-commands.hx | 13 +++++++++++-- > > qmp.c | 15 ++++++++++++--- > > 5 files changed, 43 insertions(+), 14 deletions(-) > > > > diff --git a/hmp-commands.hx b/hmp-commands.hx > > index d3b7932..c0c113d 100644 > > --- a/hmp-commands.hx > > +++ b/hmp-commands.hx > > @@ -675,7 +675,8 @@ ETEXI > > STEXI > > @item device_del @var{id} > > @findex device_del > > -Remove device @var{id}. > > +Remove device @var{id}. @var{id} may be a short ID > > +or a QOM object path. > > Have you considered using two alternative parameters, id and qom-path? > (qom_path was used elsewhere)
I'm not fussed either way, but I thought it simpler to not try to change the accepted parameters of the existing commands. Looking, the only place I notice that uses a 'qom_path' is the return data in the CpuInfo struct. Does anyone have strong feelings either way about use of id for both vs qom-path or id ? Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|