Re: [Qemu-devel] hotremoving a disk qmp/hmp

2014-11-19 Thread William Dauchy
On Nov18 18:15, Markus Armbruster wrote:
 Looks like you're using an old version of QEMU.  drive_del has been
 fixed to refuse touching a backend created with blockdev-add:

I am using the last v2.1.x version but there was indeed some commits
since

 You can't destroy a backend created with blockdev-add, yet.  I hope to
 have blockdev-del in 2.3.

thanks for the information

 My advice is to stick to drive_add and drive_del for now.  Not in QMP,
 so you need to use HMP.  You can do that in QMP with
 human-monitor-command.

ok understood that's what I was suspecting after not finding a way to
delete an object added by blockdev-add

Thanks,
-- 
William


signature.asc
Description: Digital signature


[Qemu-devel] hotremoving a disk qmp/hmp

2014-11-18 Thread William Dauchy
Hello,

When hotremoving a disk I'm using the QMP API with device_del command;

Previous query-block command result:

{   u'device': u'disk1',
u'inserted': {   u'backing_file_depth': 0,
 u'bps': 0,
 u'bps_rd': 0,
 u'bps_wr': 0,
 u'detect_zeroes': u'off',
 u'drv': u'raw',
 u'encrypted': False,
 u'encryption_key_missing': False,
 u'file': u'/dev/sda',
 u'image': {   u'actual-size': 0,
   u'dirty-flag': False,
   u'filename': u'/dev/sda',
   u'format': u'raw',
   u'virtual-size': 3221225472},
 u'iops': 0,
 u'iops_rd': 0,
 u'iops_wr': 0,
 u'ro': False},
u'io-status': u'ok',
u'locked': True,
u'removable': True,
u'tray_open': False,
u'type': u'unknown'}

After a device_del command I have the same thing but 'locked': False
Then I can also do `eject device=disk1` which bring me to:

{   u'device': u'disk1',
   u'io-status': u'ok',
   u'locked': False,
   u'removable': True,
   u'tray_open': False,
   u'type': u'unknown'}

But I did not found a way to completely remove the disk1 entry in order
to be able to add it again.
To complete the operation I need to use the old HMP API and use
`drive_del` command.

Did I miss something? or is it still something missing in QMP API?

Best regards,
-- 
William


signature.asc
Description: Digital signature


Re: [Qemu-devel] hotremoving a disk qmp/hmp

2014-11-18 Thread Markus Armbruster
William Dauchy will...@gandi.net writes:

 Hello,

 When hotremoving a disk I'm using the QMP API with device_del command;

 Previous query-block command result:

 {   u'device': u'disk1',
 u'inserted': {   u'backing_file_depth': 0,
  u'bps': 0,
  u'bps_rd': 0,
  u'bps_wr': 0,
  u'detect_zeroes': u'off',
  u'drv': u'raw',
  u'encrypted': False,
  u'encryption_key_missing': False,
  u'file': u'/dev/sda',
  u'image': {   u'actual-size': 0,
u'dirty-flag': False,
u'filename': u'/dev/sda',
u'format': u'raw',
u'virtual-size': 3221225472},
  u'iops': 0,
  u'iops_rd': 0,
  u'iops_wr': 0,
  u'ro': False},
 u'io-status': u'ok',
 u'locked': True,
 u'removable': True,
 u'tray_open': False,
 u'type': u'unknown'}

This is block backend disk1.

 After a device_del command I have the same thing but 'locked': False

I presume you're deleting the device using backend disk1.

What kind of device is this?  PCI, perhaps?

 Then I can also do `eject device=disk1` which bring me to:

 {   u'device': u'disk1',
u'io-status': u'ok',
u'locked': False,
u'removable': True,
u'tray_open': False,
u'type': u'unknown'}

 But I did not found a way to completely remove the disk1 entry in order
 to be able to add it again.
 To complete the operation I need to use the old HMP API and use
 `drive_del` command.

 Did I miss something? or is it still something missing in QMP API?

Please show us a complete QMP conversation.



Re: [Qemu-devel] hotremoving a disk qmp/hmp

2014-11-18 Thread William Dauchy
On Nov18 15:22, Markus Armbruster wrote:
 This is block backend disk1.

yes indeed.

 I presume you're deleting the device using backend disk1.

yes

 What kind of device is this?  PCI, perhaps?
 Please show us a complete QMP conversation.

Here it is:

live vm with one disk:

(QEMU) query-block
{   u'return': [   {   u'device': u'disk0',
   u'inserted': {   u'backing_file_depth': 0,
u'bps': 0,
u'bps_rd': 0,
u'bps_wr': 0,
u'detect_zeroes': u'off',
u'drv': u'raw',
u'encrypted': False,
u'encryption_key_missing': False,
u'file': u'/dev/sda',
u'image': {   u'actual-size': 0,
  u'dirty-flag': False,
  u'filename': u'/dev/sda',
  u'format': u'raw',
  u'virtual-size': 
3221225472},
u'iops': 0,
u'iops_rd': 0,
u'iops_wr': 0,
u'ro': False},
   u'io-status': u'ok',
   u'locked': True,
   u'removable': True,
   u'tray_open': False,
   u'type': u'unknown'}]}

hotplugging one disk:

(QEMU) blockdev-add
with
{'options' : {
'driver': 'raw',
'id': 'disk1',
'file': {
'driver': 'file',
'filename': /dev/sdb,
}
}}

(QEMU) device_add
with:
{
'driver': 'scsi-hd',
'id': 'disk1',
'drive': 'disk1',
'scsi-id': 1,
'removable': 'on',
'dpofua': 'off'
}

(QEMU) query-block
{   u'return': [   {   u'device': u'disk0',
   u'inserted': {   u'backing_file_depth': 0,
u'bps': 0,
u'bps_rd': 0,
u'bps_wr': 0,
u'detect_zeroes': u'off',
u'drv': u'raw',
u'encrypted': False,
u'encryption_key_missing': False,
u'file': u'/dev/sda',
u'image': {   u'actual-size': 0,
  u'dirty-flag': False,
  u'filename': u'/dev/sda',
  u'format': u'raw',
  u'virtual-size': 
3221225472},
u'iops': 0,
u'iops_rd': 0,
u'iops_wr': 0,
u'ro': False},
   u'io-status': u'ok',
   u'locked': True,
   u'removable': True,
   u'tray_open': False,
   u'type': u'unknown'},,
   {   u'device': u'disk1',
   u'inserted': {   u'backing_file_depth': 0,
u'bps': 0,
u'bps_rd': 0,
u'bps_wr': 0,
u'detect_zeroes': u'off',
u'drv': u'raw',
u'encrypted': False,
u'encryption_key_missing': False,
u'file': u'/dev/sdb',
u'image': {   u'actual-size': 0,
  u'dirty-flag': False,
  u'filename': u'/dev/sdb',
  u'format': u'raw',
  u'virtual-size': 
3221225472},
u'iops': 0,
u'iops_rd': 0,
u'iops_wr': 0,
u'ro': False},
   u'io-status': u'ok',
   u'locked': True,
   u'removable': True,
   u'tray_open': False,
   u'type': u'unknown'}]}

hotremoving disk1:

(QEMU) device_del
with:
{'id': 'disk1'}

(QEMU) query-block
{   u'return': [   {   

Re: [Qemu-devel] hotremoving a disk qmp/hmp

2014-11-18 Thread Markus Armbruster
William Dauchy will...@gandi.net writes:

 On Nov18 15:22, Markus Armbruster wrote:
 This is block backend disk1.

 yes indeed.

 I presume you're deleting the device using backend disk1.

 yes

 What kind of device is this?  PCI, perhaps?
 Please show us a complete QMP conversation.

 Here it is:

 live vm with one disk:

 (QEMU) query-block
 {   u'return': [   {   u'device': u'disk0',
u'inserted': {   u'backing_file_depth': 0,
 u'bps': 0,
 u'bps_rd': 0,
 u'bps_wr': 0,
 u'detect_zeroes': u'off',
 u'drv': u'raw',
 u'encrypted': False,
 u'encryption_key_missing': False,
 u'file': u'/dev/sda',
 u'image': {   u'actual-size': 0,
   u'dirty-flag': False,
   u'filename': 
 u'/dev/sda',
   u'format': u'raw',
   u'virtual-size': 
 3221225472},
 u'iops': 0,
 u'iops_rd': 0,
 u'iops_wr': 0,
 u'ro': False},
u'io-status': u'ok',
u'locked': True,
u'removable': True,
u'tray_open': False,
u'type': u'unknown'}]}

 hotplugging one disk:

 (QEMU) blockdev-add
 with
 {'options' : {
 'driver': 'raw',
 'id': 'disk1',
 'file': {
 'driver': 'file',
 'filename': /dev/sdb,
 }
 }}

 (QEMU) device_add
 with:
 {
 'driver': 'scsi-hd',
 'id': 'disk1',

Using the same ID for different things currently works, but it's awfully
confusing.  Please don't :)

 'drive': 'disk1',
 'scsi-id': 1,
 'removable': 'on',
 'dpofua': 'off'
 }

 (QEMU) query-block
 {   u'return': [   {   u'device': u'disk0',
u'inserted': {   u'backing_file_depth': 0,
 u'bps': 0,
 u'bps_rd': 0,
 u'bps_wr': 0,
 u'detect_zeroes': u'off',
 u'drv': u'raw',
 u'encrypted': False,
 u'encryption_key_missing': False,
 u'file': u'/dev/sda',
 u'image': {   u'actual-size': 0,
   u'dirty-flag': False,
   u'filename': 
 u'/dev/sda',
   u'format': u'raw',
   u'virtual-size': 
 3221225472},
 u'iops': 0,
 u'iops_rd': 0,
 u'iops_wr': 0,
 u'ro': False},
u'io-status': u'ok',
u'locked': True,
u'removable': True,
u'tray_open': False,
u'type': u'unknown'},,
{   u'device': u'disk1',
u'inserted': {   u'backing_file_depth': 0,
 u'bps': 0,
 u'bps_rd': 0,
 u'bps_wr': 0,
 u'detect_zeroes': u'off',
 u'drv': u'raw',
 u'encrypted': False,
 u'encryption_key_missing': False,
 u'file': u'/dev/sdb',
 u'image': {   u'actual-size': 0,
   u'dirty-flag': False,
   u'filename': 
 u'/dev/sdb',
   u'format': u'raw',
   u'virtual-size': 
 3221225472},
 u'iops': 0,
 u'iops_rd': 0,
 u'iops_wr': 0,
 u'ro': False},
u'io-status': u'ok',
u'locked':