@@ -1566,13 +1566,13 @@ static void blockdev_backup_prepare(BlkTransactionState *common, Error **errp)
bs = bdrv_find(backup->device);
if (!bs) {
- error_set(errp, QERR_DEVICE_NOT_FOUND, backup->device);
+ error_setg(errp, "Device '%s' not found", backup->device);
return;
}
target = bdrv_find(backup->target);
if (!target) {
- error_set(errp, QERR_DEVICE_NOT_FOUND, backup->target);
+ error_setg(errp, "Device '%s' not found", backup->target);
return;
}
@@ -2402,7 +2402,7 @@ void qmp_blockdev_backup(const char *device, const char *target,
bs = bdrv_find(device);
if (!bs) {
- error_set(errp, QERR_DEVICE_NOT_FOUND, device);
+ error_setg(errp, "Device '%s' not found", device);
return;
}
@@ -2411,7 +2411,7 @@ void qmp_blockdev_backup(const char *device, const char *target,
target_bs = bdrv_find(target);
if (!target_bs) {
- error_set(errp, QERR_DEVICE_NOT_FOUND, target);
+ error_setg(errp, "Device '%s' not found", target);
goto out;
}
@@ -881,9 +881,6 @@
#
# For the arguments, see the documentation of BlockdevBackup.
#
-# Returns: Nothing on success.
-# If @device or @target is not a valid block device, DeviceNotFound.
-#
# Since 2.3
##
{ 'command': 'blockdev-backup', 'data': 'BlockdevBackup' }
@@ -126,7 +126,10 @@ class TestSingleDrive(iotests.QMPTestCase):
def do_test_device_not_found(self, cmd, **args):
result = self.vm.qmp(cmd, **args)
- self.assert_qmp(result, 'error/class', 'DeviceNotFound')
+ if cmd == 'drive-backup':
+ self.assert_qmp(result, 'error/class', 'DeviceNotFound')
+ else:
+ self.assert_qmp(result, 'error/class', 'GenericError')
def test_device_not_found(self):
self.do_test_device_not_found('drive-backup', device='nonexistent',
@@ -364,7 +367,7 @@ class TestSingleTransaction(iotests.QMPTestCase):
'sync': 'full' },
}
])
- self.assert_qmp(result, 'error/class', 'DeviceNotFound')
+ self.assert_qmp(result, 'error/class', 'GenericError')
result = self.vm.qmp('transaction', actions=[{
'type': 'blockdev-backup',
@@ -373,7 +376,7 @@ class TestSingleTransaction(iotests.QMPTestCase):
'sync': 'full' },
}
])
- self.assert_qmp(result, 'error/class', 'DeviceNotFound')
+ self.assert_qmp(result, 'error/class', 'GenericError')
result = self.vm.qmp('transaction', actions=[{
'type': 'blockdev-backup',
@@ -382,7 +385,7 @@ class TestSingleTransaction(iotests.QMPTestCase):
'sync': 'full' },
}
])
- self.assert_qmp(result, 'error/class', 'DeviceNotFound')
+ self.assert_qmp(result, 'error/class', 'GenericError')
def test_target_is_source(self):
result = self.vm.qmp('transaction', actions=[{
Error classes are a leftover from the days of "rich" error objects. New code should always use ERROR_CLASS_GENERIC_ERROR. Commit b7b9d39..7c6a4ab added uses of ERROR_CLASS_DEVICE_NOT_FOUND. Replace them. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- blockdev.c | 8 ++++---- qapi/block-core.json | 3 --- tests/qemu-iotests/055 | 11 +++++++---- 3 files changed, 11 insertions(+), 11 deletions(-)