aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>2012-04-11 16:27:10 +0100
committerLuiz Capitulino <lcapitulino@redhat.com>2012-04-23 13:02:01 -0300
commitdb58f9c0605fa151b8c4d691aa9ff4c6cf0de62e (patch)
tree2fd3b1fe07300be2dfe446cb5aa0538f9dce9595
parent3c30dd5a68e9fee6af67cfd0d14ed7520820f36a (diff)
qmp: make block job command naming consistent
The block streaming and job commands used '_' instead of '-' for reasons of compatibility with libvirt, which already included support for the '_' naming. However, the semantics of block_job_cancel have changed and libvirt now needs to handle the new semantics. Since the old semantics were never in a QEMU release we can still rename the commands to use '-' instead of '_'. Libvirt is also happy because the new name can be used to distinguish QEMU binaries that support the latest block-job-cancel semantics from those that include a downstream block_job_cancel command. Therefore, let's apply the QAPI/QMP naming rules to the block streaming and job commands. QEMU 1.1 will be the first release with these commands so no upstream users can break. Note that HMP commands are left with '_' because that is the convention there. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
-rw-r--r--qapi-schema.json15
-rw-r--r--qmp-commands.hx6
-rwxr-xr-xtests/qemu-iotests/03012
3 files changed, 17 insertions, 16 deletions
diff --git a/qapi-schema.json b/qapi-schema.json
index ace55f397a..64998959db 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1548,7 +1548,8 @@
'data': { 'device': 'str', 'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int' } }
-# @block_stream:
+##
+# @block-stream:
#
# Copy data from a backing file into a block device.
#
@@ -1556,7 +1557,7 @@
# backing file has been copied. This command returns immediately once streaming
# has started. The status of ongoing block streaming operations can be checked
# with query-block-jobs. The operation can be stopped before it has completed
-# using the block_job_cancel command.
+# using the block-job-cancel command.
#
# If a base file is specified then sectors are not copied from that base file and
# its backing chain. When streaming completes the image file will have the base
@@ -1578,10 +1579,10 @@
#
# Since: 1.1
##
-{ 'command': 'block_stream', 'data': { 'device': 'str', '*base': 'str' } }
+{ 'command': 'block-stream', 'data': { 'device': 'str', '*base': 'str' } }
##
-# @block_job_set_speed:
+# @block-job-set-speed:
#
# Set maximum speed for a background block operation.
#
@@ -1599,11 +1600,11 @@
#
# Since: 1.1
##
-{ 'command': 'block_job_set_speed',
+{ 'command': 'block-job-set-speed',
'data': { 'device': 'str', 'value': 'int' } }
##
-# @block_job_cancel:
+# @block-job-cancel:
#
# Stop an active block streaming operation.
#
@@ -1629,7 +1630,7 @@
#
# Since: 1.1
##
-{ 'command': 'block_job_cancel', 'data': { 'device': 'str' } }
+{ 'command': 'block-job-cancel', 'data': { 'device': 'str' } }
##
# @ObjectTypeInfo:
diff --git a/qmp-commands.hx b/qmp-commands.hx
index c09ee859a1..f97233223d 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -687,19 +687,19 @@ Example:
EQMP
{
- .name = "block_stream",
+ .name = "block-stream",
.args_type = "device:B,base:s?",
.mhandler.cmd_new = qmp_marshal_input_block_stream,
},
{
- .name = "block_job_set_speed",
+ .name = "block-job-set-speed",
.args_type = "device:B,value:o",
.mhandler.cmd_new = qmp_marshal_input_block_job_set_speed,
},
{
- .name = "block_job_cancel",
+ .name = "block-job-cancel",
.args_type = "device:B",
.mhandler.cmd_new = qmp_marshal_input_block_job_cancel,
},
diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
index 1faf984200..978fd82224 100755
--- a/tests/qemu-iotests/030
+++ b/tests/qemu-iotests/030
@@ -49,7 +49,7 @@ class TestSingleDrive(ImageStreamingTestCase):
def test_stream(self):
self.assert_no_active_streams()
- result = self.vm.qmp('block_stream', device='drive0')
+ result = self.vm.qmp('block-stream', device='drive0')
self.assert_qmp(result, 'return', {})
completed = False
@@ -68,7 +68,7 @@ class TestSingleDrive(ImageStreamingTestCase):
'image file not fully populated after streaming')
def test_device_not_found(self):
- result = self.vm.qmp('block_stream', device='nonexistent')
+ result = self.vm.qmp('block-stream', device='nonexistent')
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
class TestStreamStop(ImageStreamingTestCase):
@@ -90,14 +90,14 @@ class TestStreamStop(ImageStreamingTestCase):
self.assert_no_active_streams()
- result = self.vm.qmp('block_stream', device='drive0')
+ result = self.vm.qmp('block-stream', device='drive0')
self.assert_qmp(result, 'return', {})
time.sleep(1)
events = self.vm.get_qmp_events(wait=False)
self.assertEqual(events, [], 'unexpected QMP event: %s' % events)
- self.vm.qmp('block_job_cancel', device='drive0')
+ self.vm.qmp('block-job-cancel', device='drive0')
self.assert_qmp(result, 'return', {})
cancelled = False
@@ -129,10 +129,10 @@ class TestSetSpeed(ImageStreamingTestCase):
def perf_test_set_speed(self):
self.assert_no_active_streams()
- result = self.vm.qmp('block_stream', device='drive0')
+ result = self.vm.qmp('block-stream', device='drive0')
self.assert_qmp(result, 'return', {})
- result = self.vm.qmp('block_job_set_speed', device='drive0', value=8 * 1024 * 1024)
+ result = self.vm.qmp('block-job-set-speed', device='drive0', value=8 * 1024 * 1024)
self.assert_qmp(result, 'return', {})
completed = False