diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2015-09-11 13:33:56 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2015-09-22 11:31:56 +0200 |
commit | 6287d827d494b5850049584c3f7fb1a589dbb1de (patch) | |
tree | 30f2e39cf5ca440c911434aa9c2c587e1f625f6c /qmp-commands.hx | |
parent | 9e72681d16792d0ffc42bab634b1753ff299bdfd (diff) | |
download | qemu-6287d827d494b5850049584c3f7fb1a589dbb1de.zip qemu-6287d827d494b5850049584c3f7fb1a589dbb1de.tar.gz qemu-6287d827d494b5850049584c3f7fb1a589dbb1de.tar.bz2 |
monitor: allow device_del to accept QOM paths
Currently device_del requires that the client provide the
device short ID. device_add allows devices to be created
without giving an ID, at which point there is no way to
delete them with device_del. The QOM object path, however,
provides an alternative way to identify the devices.
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]
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
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-Id: <1441974836-17476-1-git-send-email-berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[Commit message touched up, accidental white-space change dropped]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'qmp-commands.hx')
-rw-r--r-- | qmp-commands.hx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/qmp-commands.hx b/qmp-commands.hx index 66f0300..d2ba800 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -321,13 +321,18 @@ Remove a device. Arguments: -- "id": the device's ID (json-string) +- "id": the device's ID or QOM path (json-string) Example: -> { "execute": "device_del", "arguments": { "id": "net1" } } <- { "return": {} } +Example: + +-> { "execute": "device_del", "arguments": { "id": "/machine/peripheral-anon/device[0]" } } +<- { "return": {} } + EQMP { |