[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/13] block: Improve some block-commit, block-stream error messag
From: |
Markus Armbruster |
Subject: |
[PULL 04/13] block: Improve some block-commit, block-stream error messages |
Date: |
Thu, 10 Dec 2020 17:31:23 +0100 |
block-commit defaults @base-node to the deepest backing image. When
there is none, it fails with "Base 'NULL' not found". Improve to
"There is no backing image".
block-commit and block-stream reject a @base argument that doesn't
resolve with "Base 'BASE' not found". Commit 6b33f3ae8b "qemu-img:
Improve commit invalid base message" improved this message in
qemu-img. Improve it here, too: "Can't find '%s' in the backing
chain".
QERR_BASE_NOT_FOUND is now unused. Drop.
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: qemu-block@nongnu.org
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20201113082626.2725812-4-armbru@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
---
include/qapi/qmp/qerror.h | 2 --
blockdev.c | 15 +++++++++------
tests/qemu-iotests/040 | 12 ++++++------
3 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h
index c272e3fc29..5d7e69cc1f 100644
--- a/include/qapi/qmp/qerror.h
+++ b/include/qapi/qmp/qerror.h
@@ -16,8 +16,6 @@
* These macros will go away, please don't use in new code, and do not
* add new ones!
*/
-#define QERR_BASE_NOT_FOUND \
- "Base '%s' not found"
#define QERR_BUS_NO_HOTPLUG \
"Bus '%s' does not support hotplugging"
diff --git a/blockdev.c b/blockdev.c
index fe6fb5dc1d..d05a8740f4 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -2531,7 +2531,7 @@ void qmp_block_stream(bool has_job_id, const char
*job_id, const char *device,
if (has_base) {
base_bs = bdrv_find_backing_image(bs, base);
if (base_bs == NULL) {
- error_setg(errp, QERR_BASE_NOT_FOUND, base);
+ error_setg(errp, "Can't find '%s' in the backing chain", base);
goto out;
}
assert(bdrv_get_aio_context(base_bs) == aio_context);
@@ -2703,13 +2703,16 @@ void qmp_block_commit(bool has_job_id, const char
*job_id, const char *device,
}
} else if (has_base && base) {
base_bs = bdrv_find_backing_image(top_bs, base);
+ if (base_bs == NULL) {
+ error_setg(errp, "Can't find '%s' in the backing chain", base);
+ goto out;
+ }
} else {
base_bs = bdrv_find_base(top_bs);
- }
-
- if (base_bs == NULL) {
- error_setg(errp, QERR_BASE_NOT_FOUND, base ? base : "NULL");
- goto out;
+ if (base_bs == NULL) {
+ error_setg(errp, "There is no backimg image");
+ goto out;
+ }
}
assert(bdrv_get_aio_context(base_bs) == aio_context);
diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040
index caf286571a..dc6069edc0 100755
--- a/tests/qemu-iotests/040
+++ b/tests/qemu-iotests/040
@@ -156,7 +156,7 @@ class TestSingleDrive(ImageCommitTestCase):
self.assert_no_active_block_jobs()
result = self.vm.qmp('block-commit', device='drive0', top='%s' %
backing_img, base='%s' % backing_img)
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assert_qmp(result, 'error/desc', 'Base \'%s\' not found' %
backing_img)
+ self.assert_qmp(result, 'error/desc', "Can't find '%s' in the backing
chain" % backing_img)
def test_top_invalid(self):
self.assert_no_active_block_jobs()
@@ -168,7 +168,7 @@ class TestSingleDrive(ImageCommitTestCase):
self.assert_no_active_block_jobs()
result = self.vm.qmp('block-commit', device='drive0', top='%s' %
mid_img, base='badfile')
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assert_qmp(result, 'error/desc', 'Base \'badfile\' not found')
+ self.assert_qmp(result, 'error/desc', "Can't find 'badfile' in the
backing chain")
def test_top_node_invalid(self):
self.assert_no_active_block_jobs()
@@ -208,7 +208,7 @@ class TestSingleDrive(ImageCommitTestCase):
self.assert_no_active_block_jobs()
result = self.vm.qmp('block-commit', device='drive0', top='%s' %
backing_img, base='%s' % mid_img)
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assert_qmp(result, 'error/desc', 'Base \'%s\' not found' %
mid_img)
+ self.assert_qmp(result, 'error/desc', "Can't find '%s' in the backing
chain" % mid_img)
def test_top_and_base_node_reversed(self):
self.assert_no_active_block_jobs()
@@ -349,7 +349,7 @@ class TestRelativePaths(ImageCommitTestCase):
self.assert_no_active_block_jobs()
result = self.vm.qmp('block-commit', device='drive0', top='%s' %
self.mid_img, base='%s' % self.mid_img)
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assert_qmp(result, 'error/desc', 'Base \'%s\' not found' %
self.mid_img)
+ self.assert_qmp(result, 'error/desc', "Can't find '%s' in the backing
chain" % self.mid_img)
def test_top_invalid(self):
self.assert_no_active_block_jobs()
@@ -361,7 +361,7 @@ class TestRelativePaths(ImageCommitTestCase):
self.assert_no_active_block_jobs()
result = self.vm.qmp('block-commit', device='drive0', top='%s' %
self.mid_img, base='badfile')
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assert_qmp(result, 'error/desc', 'Base \'badfile\' not found')
+ self.assert_qmp(result, 'error/desc', "Can't find 'badfile' in the
backing chain")
def test_top_is_active(self):
self.run_commit_test(self.test_img, self.backing_img)
@@ -372,7 +372,7 @@ class TestRelativePaths(ImageCommitTestCase):
self.assert_no_active_block_jobs()
result = self.vm.qmp('block-commit', device='drive0', top='%s' %
self.backing_img, base='%s' % self.mid_img)
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assert_qmp(result, 'error/desc', 'Base \'%s\' not found' %
self.mid_img)
+ self.assert_qmp(result, 'error/desc', "Can't find '%s' in the backing
chain" % self.mid_img)
class TestSetSpeed(ImageCommitTestCase):
--
2.26.2
- [PULL 00/13] Miscellaneous patches for 2020-12-10, Markus Armbruster, 2020/12/10
- [PULL 12/13] qapi: Normalize version references x.y.0 to just x.y, Markus Armbruster, 2020/12/10
- [PULL 04/13] block: Improve some block-commit, block-stream error messages,
Markus Armbruster <=
- [PULL 02/13] qerror: Drop unused QERR_ macros, Markus Armbruster, 2020/12/10
- [PULL 10/13] qom: Improve {qom, device}-list-properties error messages, Markus Armbruster, 2020/12/10
- [PULL 01/13] Clean up includes, Markus Armbruster, 2020/12/10
- [PULL 06/13] ui: Improve a client_migrate_info error message, Markus Armbruster, 2020/12/10
- [PULL 11/13] Tweak a few "Parameter 'NAME' expects THING" error message, Markus Armbruster, 2020/12/10
- [PULL 03/13] qerror: Eliminate QERR_ macros used in just one place, Markus Armbruster, 2020/12/10
- [PULL 08/13] qga: Replace an unreachable error by abort(), Markus Armbruster, 2020/12/10
- [PULL 13/13] docs/devel/writing-qmp-commands.txt: Fix docs, Markus Armbruster, 2020/12/10
- [PULL 07/13] ui: Tweak a client_migrate_info error message, Markus Armbruster, 2020/12/10