diff mbox

[1/4] qerror: Add QERR_UNKNOWN_BLOCK_FORMAT_FEATURE

Message ID 1297247521-11464-2-git-send-email-kwolf@redhat.com
State New
Headers show

Commit Message

Kevin Wolf Feb. 9, 2011, 10:31 a.m. UTC
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 qerror.c |    5 +++++
 qerror.h |    3 +++
 2 files changed, 8 insertions(+), 0 deletions(-)

Comments

Anthony Liguori Feb. 9, 2011, 11:08 a.m. UTC | #1
On 02/09/2011 04:31 AM, Kevin Wolf wrote:
> Signed-off-by: Kevin Wolf<kwolf@redhat.com>
> ---
>   qerror.c |    5 +++++
>   qerror.h |    3 +++
>   2 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/qerror.c b/qerror.c
> index 9d0cdeb..62dcc1a 100644
> --- a/qerror.c
> +++ b/qerror.c
> @@ -201,6 +201,11 @@ static const QErrorStringTable qerror_table[] = {
>           .desc      = "An undefined error has ocurred",
>       },
>       {
> +        .error_fmt = QERR_UNKNOWN_BLOCK_FORMAT_FEATURE,
> +        .desc      = "'%(device)' uses an image format feature which is not "
> +                     "supported by this qemu version: %(feature)",
> +    },
> +    {
>           .error_fmt = QERR_VNC_SERVER_FAILED,
>           .desc      = "Could not start VNC server on %(target)",
>       },
> diff --git a/qerror.h b/qerror.h
> index b0f69da..31d6df3 100644
> --- a/qerror.h
> +++ b/qerror.h
> @@ -165,6 +165,9 @@ QError *qobject_to_qerror(const QObject *obj);
>   #define QERR_UNDEFINED_ERROR \
>       "{ 'class': 'UndefinedError', 'data': {} }"
>
> +#define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \
> +    "{ 'class': 'UnknownBlockFormatFeature', 'data': { 'device': %s, 'feature': %s } }"
>    

Would be good to include the name of the block format in the error 
message to put the feature in context.

Regards,

Anthony Liguori

>   #define QERR_VNC_SERVER_FAILED \
>       "{ 'class': 'VNCServerFailed', 'data': { 'target': %s } }"
>
>
Kevin Wolf Feb. 9, 2011, 11:26 a.m. UTC | #2
Am 09.02.2011 12:08, schrieb Anthony Liguori:
> On 02/09/2011 04:31 AM, Kevin Wolf wrote:
>> Signed-off-by: Kevin Wolf<kwolf@redhat.com>
>> ---
>>   qerror.c |    5 +++++
>>   qerror.h |    3 +++
>>   2 files changed, 8 insertions(+), 0 deletions(-)
>>
>> diff --git a/qerror.c b/qerror.c
>> index 9d0cdeb..62dcc1a 100644
>> --- a/qerror.c
>> +++ b/qerror.c
>> @@ -201,6 +201,11 @@ static const QErrorStringTable qerror_table[] = {
>>           .desc      = "An undefined error has ocurred",
>>       },
>>       {
>> +        .error_fmt = QERR_UNKNOWN_BLOCK_FORMAT_FEATURE,
>> +        .desc      = "'%(device)' uses an image format feature which is not "
>> +                     "supported by this qemu version: %(feature)",
>> +    },
>> +    {
>>           .error_fmt = QERR_VNC_SERVER_FAILED,
>>           .desc      = "Could not start VNC server on %(target)",
>>       },
>> diff --git a/qerror.h b/qerror.h
>> index b0f69da..31d6df3 100644
>> --- a/qerror.h
>> +++ b/qerror.h
>> @@ -165,6 +165,9 @@ QError *qobject_to_qerror(const QObject *obj);
>>   #define QERR_UNDEFINED_ERROR \
>>       "{ 'class': 'UndefinedError', 'data': {} }"
>>
>> +#define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \
>> +    "{ 'class': 'UnknownBlockFormatFeature', 'data': { 'device': %s, 'feature': %s } }"
>>    
> 
> Would be good to include the name of the block format in the error 
> message to put the feature in context.

I actually had the format name there initally, but then I replaced it
with the device name because I thought that would be more helpful. If
you prefer, I can add it back so that we have both.

Kevin
Anthony Liguori Feb. 9, 2011, 11:28 a.m. UTC | #3
On 02/09/2011 05:26 AM, Kevin Wolf wrote:
> Am 09.02.2011 12:08, schrieb Anthony Liguori:
>    
>> On 02/09/2011 04:31 AM, Kevin Wolf wrote:
>>      
>>> Signed-off-by: Kevin Wolf<kwolf@redhat.com>
>>> ---
>>>    qerror.c |    5 +++++
>>>    qerror.h |    3 +++
>>>    2 files changed, 8 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/qerror.c b/qerror.c
>>> index 9d0cdeb..62dcc1a 100644
>>> --- a/qerror.c
>>> +++ b/qerror.c
>>> @@ -201,6 +201,11 @@ static const QErrorStringTable qerror_table[] = {
>>>            .desc      = "An undefined error has ocurred",
>>>        },
>>>        {
>>> +        .error_fmt = QERR_UNKNOWN_BLOCK_FORMAT_FEATURE,
>>> +        .desc      = "'%(device)' uses an image format feature which is not "
>>> +                     "supported by this qemu version: %(feature)",
>>> +    },
>>> +    {
>>>            .error_fmt = QERR_VNC_SERVER_FAILED,
>>>            .desc      = "Could not start VNC server on %(target)",
>>>        },
>>> diff --git a/qerror.h b/qerror.h
>>> index b0f69da..31d6df3 100644
>>> --- a/qerror.h
>>> +++ b/qerror.h
>>> @@ -165,6 +165,9 @@ QError *qobject_to_qerror(const QObject *obj);
>>>    #define QERR_UNDEFINED_ERROR \
>>>        "{ 'class': 'UndefinedError', 'data': {} }"
>>>
>>> +#define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \
>>> +    "{ 'class': 'UnknownBlockFormatFeature', 'data': { 'device': %s, 'feature': %s } }"
>>>
>>>        
>> Would be good to include the name of the block format in the error
>> message to put the feature in context.
>>      
> I actually had the format name there initally, but then I replaced it
> with the device name because I thought that would be more helpful. If
> you prefer, I can add it back so that we have both.
>    

Yes, I think both would be best.

If I'm going to display this error to a user, I want to say something 
like "Could not start machine because this image uses the 'free list' 
feature of 'qed' which is not supported by this version of QEMU, please 
upgrade."

With the device name, I can do a query-block to figure out the format 
but it's nice to avoid the extra round trip.

Regards,

Anthony Liguori

> Kevin
>
diff mbox

Patch

diff --git a/qerror.c b/qerror.c
index 9d0cdeb..62dcc1a 100644
--- a/qerror.c
+++ b/qerror.c
@@ -201,6 +201,11 @@  static const QErrorStringTable qerror_table[] = {
         .desc      = "An undefined error has ocurred",
     },
     {
+        .error_fmt = QERR_UNKNOWN_BLOCK_FORMAT_FEATURE,
+        .desc      = "'%(device)' uses an image format feature which is not "
+                     "supported by this qemu version: %(feature)",
+    },
+    {
         .error_fmt = QERR_VNC_SERVER_FAILED,
         .desc      = "Could not start VNC server on %(target)",
     },
diff --git a/qerror.h b/qerror.h
index b0f69da..31d6df3 100644
--- a/qerror.h
+++ b/qerror.h
@@ -165,6 +165,9 @@  QError *qobject_to_qerror(const QObject *obj);
 #define QERR_UNDEFINED_ERROR \
     "{ 'class': 'UndefinedError', 'data': {} }"
 
+#define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \
+    "{ 'class': 'UnknownBlockFormatFeature', 'data': { 'device': %s, 'feature': %s } }"
+
 #define QERR_VNC_SERVER_FAILED \
     "{ 'class': 'VNCServerFailed', 'data': { 'target': %s } }"