From 4b9d46834de8c75c3cbd5bc1c5f00e35c74e01ed Mon Sep 17 00:00:00 2001 From: Luiz Capitulino Date: Thu, 26 Nov 2009 22:58:57 -0200 Subject: [PATCH] QError: Add errors needed by QMP Only QERR_QMP_BAD_INPUT_OBJECT is QMP specific, the others can be used in different contexts by other subsystems. Please, note that QERR_JSON_PARSING signals any parsing error from the json parser. We will need it until the parser gets updated to use QError. Signed-off-by: Luiz Capitulino Signed-off-by: Anthony Liguori --- qerror.c | 24 ++++++++++++++++++++++++ qerror.h | 18 ++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/qerror.c b/qerror.c index d8b125e51..6560996c2 100644 --- a/qerror.c +++ b/qerror.c @@ -40,6 +40,10 @@ static const QType qerror_type = { * "running out of foo: %(foo)%%" */ const QErrorStringTable qerror_table[] = { + { + .error_fmt = QERR_COMMAND_NOT_FOUND, + .desc = "The command %(name) has not been found", + }, { .error_fmt = QERR_DEVICE_NOT_FOUND, .desc = "The %(device) device has not been found", @@ -48,10 +52,30 @@ const QErrorStringTable qerror_table[] = { .error_fmt = QERR_DEVICE_NOT_ACTIVE, .desc = "The %(device) device has not been activated by the guest", }, + { + .error_fmt = QERR_INVALID_PARAMETER_TYPE, + .desc = "Invalid parameter type, expected: %(expected)", + }, { .error_fmt = QERR_KVM_MISSING_CAP, .desc = "Using KVM without %(capability), %(feature) unavailable", }, + { + .error_fmt = QERR_MISSING_PARAMETER, + .desc = "Parameter %(name) is missing", + }, + { + .error_fmt = QERR_QMP_BAD_INPUT_OBJECT, + .desc = "Bad QMP input object", + }, + { + .error_fmt = QERR_JSON_PARSING, + .desc = "Invalid JSON synaxt", + }, + { + .error_fmt = QERR_UNDEFINED_ERROR, + .desc = "An undefined error has ocurred", + }, {} }; diff --git a/qerror.h b/qerror.h index 6c100afc2..5fd993146 100644 --- a/qerror.h +++ b/qerror.h @@ -38,13 +38,31 @@ QError *qobject_to_qerror(const QObject *obj); /* * QError class list */ +#define QERR_COMMAND_NOT_FOUND \ + "{ 'class': 'CommandNotFound', 'data': { 'name': %s } }" + #define QERR_DEVICE_NOT_FOUND \ "{ 'class': 'DeviceNotFound', 'data': { 'device': %s } }" #define QERR_DEVICE_NOT_ACTIVE \ "{ 'class': 'DeviceNotActive', 'data': { 'device': %s } }" +#define QERR_INVALID_PARAMETER_TYPE \ + "{ 'class': 'InvalidParameterType', 'data': { 'name': %s,'expected': %s } }" + #define QERR_KVM_MISSING_CAP \ "{ 'class': 'KVMMissingCap', 'data': { 'capability': %s, 'feature': %s } }" +#define QERR_MISSING_PARAMETER \ + "{ 'class': 'MissingParameter', 'data': { 'name': %s } }" + +#define QERR_QMP_BAD_INPUT_OBJECT \ + "{ 'class': 'QMPBadInputObject', 'data': { 'expected': %s } }" + +#define QERR_JSON_PARSING \ + "{ 'class': 'JSONParsing', 'data': {} }" + +#define QERR_UNDEFINED_ERROR \ + "{ 'class': 'UndefinedError', 'data': {} }" + #endif /* QERROR_H */ -- 2.39.2