Commit 5b347c54 authored by Markus Armbruster's avatar Markus Armbruster Committed by Kevin Wolf
Browse files

block: Fix blockdev-backup not to use funky error class



Error classes are a leftover from the days of "rich" error objects.
New code should always use ERROR_CLASS_GENERIC_ERROR.  Commit
b7b9d39a..7c6a4ab8 added uses of ERROR_CLASS_DEVICE_NOT_FOUND.  Replace
them.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 96518254
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1574,14 +1574,14 @@ static void blockdev_backup_prepare(BlkTransactionState *common, Error **errp)

    blk = blk_by_name(backup->device);
    if (!blk) {
        error_set(errp, QERR_DEVICE_NOT_FOUND, backup->device);
        error_setg(errp, "Device '%s' not found", backup->device);
        return;
    }
    bs = blk_bs(blk);

    blk = blk_by_name(backup->target);
    if (!blk) {
        error_set(errp, QERR_DEVICE_NOT_FOUND, backup->target);
        error_setg(errp, "Device '%s' not found", backup->target);
        return;
    }
    target = blk_bs(blk);
@@ -2421,7 +2421,7 @@ void qmp_blockdev_backup(const char *device, const char *target,

    blk = blk_by_name(device);
    if (!blk) {
        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
        error_setg(errp, "Device '%s' not found", device);
        return;
    }
    bs = blk_bs(blk);
@@ -2431,7 +2431,7 @@ void qmp_blockdev_backup(const char *device, const char *target,

    blk = blk_by_name(target);
    if (!blk) {
        error_set(errp, QERR_DEVICE_NOT_FOUND, target);
        error_setg(errp, "Device '%s' not found", target);
        goto out;
    }
    target_bs = blk_bs(blk);
+0 −3
Original line number Diff line number Diff line
@@ -882,9 +882,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' }
+7 −4
Original line number Diff line number Diff line
@@ -126,7 +126,10 @@ class TestSingleDrive(iotests.QMPTestCase):

    def do_test_device_not_found(self, cmd, **args):
        result = self.vm.qmp(cmd, **args)
        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=[{