aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Privoznik <mprivozn@redhat.com>2019-08-30 15:29:45 +0200
committerMarkus Armbruster <armbru@redhat.com>2019-09-28 16:51:30 +0200
commit2546be1c85913da46fe4fb15fefdcbfad026a7df (patch)
treeb5fe67d21f17b1f79a3e6ab62d378691b4a02291
parentc6f5012ba5fa834cbd5274b1b8369e2c5d2f5933 (diff)
downloadqemu-2546be1c85913da46fe4fb15fefdcbfad026a7df.zip
qemu-2546be1c85913da46fe4fb15fefdcbfad026a7df.tar.gz
qemu-2546be1c85913da46fe4fb15fefdcbfad026a7df.tar.bz2
qmp-dispatch: Use CommandNotFound error for disabled commands
If a command is disabled an error is reported. But due to usage of error_setg() the class of the error is GenericError which does not help callers in distinguishing this case from a case where a qmp command fails regularly due to other reasons. We used to use class CommandDisabled until the great error simplification (commit de253f1491 for QMP and commit 93b91c59db for qemu-ga, both v1.2.0). Use CommandNotFound error class, which is close enough. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Message-Id: <faeb030e6a1044f0fd88208edfdb1c5fafe5def9.1567171655.git.mprivozn@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> [Test update squashed in, commit message tweaked] Signed-off-by: Markus Armbruster <armbru@redhat.com>
-rw-r--r--qapi/qmp-dispatch.c5
-rw-r--r--tests/test-qga.c4
2 files changed, 5 insertions, 4 deletions
diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c
index 3037d35..bc264b3 100644
--- a/qapi/qmp-dispatch.c
+++ b/qapi/qmp-dispatch.c
@@ -104,8 +104,9 @@ static QObject *do_qmp_dispatch(QmpCommandList *cmds, QObject *request,
return NULL;
}
if (!cmd->enabled) {
- error_setg(errp, "The command %s has been disabled for this instance",
- command);
+ error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
+ "The command %s has been disabled for this instance",
+ command);
return NULL;
}
if (oob && !(cmd->options & QCO_ALLOW_OOB)) {
diff --git a/tests/test-qga.c b/tests/test-qga.c
index 891aa3d..1ca49bb 100644
--- a/tests/test-qga.c
+++ b/tests/test-qga.c
@@ -668,7 +668,7 @@ static void test_qga_blacklist(gconstpointer data)
error = qdict_get_qdict(ret, "error");
class = qdict_get_try_str(error, "class");
desc = qdict_get_try_str(error, "desc");
- g_assert_cmpstr(class, ==, "GenericError");
+ g_assert_cmpstr(class, ==, "CommandNotFound");
g_assert_nonnull(g_strstr_len(desc, -1, "has been disabled"));
qobject_unref(ret);
@@ -677,7 +677,7 @@ static void test_qga_blacklist(gconstpointer data)
error = qdict_get_qdict(ret, "error");
class = qdict_get_try_str(error, "class");
desc = qdict_get_try_str(error, "desc");
- g_assert_cmpstr(class, ==, "GenericError");
+ g_assert_cmpstr(class, ==, "CommandNotFound");
g_assert_nonnull(g_strstr_len(desc, -1, "has been disabled"));
qobject_unref(ret);