[Freeipa-devel] [PATCH] 990 attribute name in exceptions

Rob Crittenden rcritten at redhat.com
Mon Mar 19 18:43:22 UTC 2012


Petr Viktorin wrote:
> On 03/19/2012 03:02 PM, Rob Crittenden wrote:
>> Petr Viktorin wrote:
>>> On 03/16/2012 10:23 PM, Rob Crittenden wrote:
>>>> When using *attr we should return the param.name of in the exception
>>>> and
>>>> when using a cli option we should return param.cli_name. This didn't
>>>> work consistently in the framework.
>>>>
>>>> This is a bit of a kludge, catching exceptions and re-raising them, but
>>>> it is a less invasive way of doing it.
>>>>
>>>> I added some examples of things to test in the ticket.
>>>>
>>>> rob
>>>>
>>>
>>> > (name, error) = err.strerror.split(':')
>>> > raise errors.ConversionError(name=attr, error=error)
>>>
>>> AFAIU this will break when the error message is translated. Why not just
>>> use err.kw['error']?
>>>
>>
>> Because the attribute name needs to get pulled out of it.
>>
>> rob
>
> No, you're ignoring the attribute name.
> Anyway, even the English error messages are 'invalid %(name)r:
> %(error)s', so "name" part starts with 'invalid ', and the "error" part
> starts with an extra space.

The error gets re-raised so there is no dup "invalid". I'll grant you 
the extra space though.

What this does is catch something like 'invalid maxfail: something bad', 
split out the attribute/error and re-raise use the attribute name we want.

> You've also based this on an old version of my patch 0016, which is not
> ACKed yet. Maybe it's better to wait until that gets in.
>

It isn't dependent upon your patch, I may just have had it still applied 
when I did this.




More information about the Freeipa-devel mailing list