[openstack-dev] [ironic] Translations removal

Jim Rollenhagen jim at jimrollenhagen.com
Thu Mar 30 19:08:13 UTC 2017


On Thu, Mar 30, 2017 at 2:36 PM, Doug Hellmann <doug at doughellmann.com>
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.
>

That's a good point. Without looking for examples, I suspect there's a few
reasons here:

1) in ironic, the operator and API user are often the same person
2) ironic deals with hardware. Often, errors that are returned to the user
are
   something only the operator can fix.
3) Nova is a heavy user of the ironic API - errors returned to nova may not
be
   seen by the user, but the operator needs to see it somewhere (though it
   is easy to argue those shouldn't be translated).

// jim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170330/392a3d63/attachment.html>


More information about the OpenStack-dev mailing list