[openstack-dev] [ironic] Translations removal

Dmitry Tantsur dtantsur at redhat.com
Wed Apr 5 11:29:50 UTC 2017


On 03/30/2017 08:36 PM, Doug Hellmann wrote:
> Excerpts from Sean McGinnis's message of 2017-03-22 10:44:05 -0500:
>> On Wed, Mar 22, 2017 at 08:42:42AM -0500, Kevin L. Mitchell wrote:
>>> On Tue, 2017-03-21 at 22:10 +0000, Taryma, Joanna wrote:
>>>> However, pep8 does not accept passing variable to translation
>>>> functions,  so this results in ‘H701 Empty localization string’ error.
>>>>
>>>> Possible options to handle that:
>>>>
>>>> 1)      Duplicate messages:
>>>>
>>>> LOG.error(“<error message>”, {<key>: <val>})
>>>>
>>>> raise Exception(_(“<error message>”) % {<key>: <val>})
>>>>
>>>> 2)      Ignore this error
>>>>
>>>> 3)      Talk to hacking people about possible upgrade of this check
>>>>
>>>> 4)      Pass translated text to LOG in such cases
>>>>
>>>>
>>>>
>>>> I’d personally vote for 2. What are your thoughts?
>>>
>>> When the translators go to translate, they generally only get to see
>>> what's inside _(), so #2 is a no-go for translations, and #3 also is a
>>> no-go.
>>> --
>>
>> I think the appropriate thing here is to do something like:
>>
>> msg = _('<error message>') % {<key>: <val>}
>> LOG.error(msg)
>> raise Exception(msg)
>>
>> This results in a translated string going to the log, but I think that's
>> OK.
>>
>
> Why is the error being logged and then thrown? If it's a true exception,
> won't the outer-most part of the application loop log the error? And if
> it's something that the application is catching and handling, that makes
> it seem like it's not an operator-facing error.

This sounds nice, and we did it for some time. But it ends up being a 
debugability nightmare, so now I usually -1 people for not having this 
LOG.error. This is because every re-raise loses some valuable information; 
crossing the RPC border probably loses even more. It is particularly bad, when 
the error messages from innermost exceptions are not helpful (hello, KeyError).

My personal favorite case was something like:

  "Failed to power off the node <UUID>. Unable to parse XML."

Getting something like that in ironic-api logs would probably not be too helpful.

>
> Doug
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>




More information about the OpenStack-dev mailing list