[openstack-dev] [Nova] FFE Request: Oslo: i18n Message improvements

Jay S Bryant jsbryant at us.ibm.com
Fri Mar 7 16:05:18 UTC 2014

From:   Sean Dague <sean at dague.net>
To:     "OpenStack Development Mailing List (not for usage questions)" 
<openstack-dev at lists.openstack.org>, 
Date:   03/07/2014 04:25 AM
Subject:        Re: [openstack-dev] [Nova] FFE Request: Oslo: i18n Message 

On 03/06/2014 04:46 PM, James Carey wrote:
>     Please consider a FFE for i18n Message improvements: 
> BP: https://blueprints.launchpad.net/nova/+spec/i18n-messages
>     The base enablement for lazy translation has already been sync'd
> from oslo.   This patch was to enable lazy translation support in Nova.
>  It is titled re-enable lazy translation because this was enabled during
> Havana but was pulled due to issues that have since been resolved.
>     In order to enable lazy translation it is necessary to do the
> following things:
>   (1) Fix a bug in oslo with respect to how keywords are extracted from
> the format strings when saving replacement text for use when the message
> translation is done.   This is
> https://bugs.launchpad.net/nova/+bug/1288049, which I'm actively working
> on a fix for in oslo.  Once that is complete it will need to be sync'd
> into nova.
>   (2) Remove concatenation (+) of translatable messages.  The current
> class that is used to hold the translatable message
> (gettextutils.Message) does not support concatenation.  There were a few
> cases in Nova where this was done and they are coverted to other means
> of combining the strings in:
> https://review.openstack.org/#/c/78095Remove use of concatenation on
> messages
>   (3) Remove the use of str() on exceptions.  The intent of this is to
> return the message contained in the exception, but these messages may
> contain unicode, so str cannot be used on them and gettextutils.Message
> enforces this.  Thus these need
> to either be removed and allow python formatting to do the right thing,
> or changed to unicode().  Since unicode() will change to str() in Py3,
> the forward compatible six.text_type() is used instead.  This is done 
> https://review.openstack.org/#/c/78096Remove use of str() on exceptions
>   (4) The addition of the call that enables the use of lazy messages.
>  This is in:
> https://review.openstack.org/#/c/73706Re-enable lazy translation.
>     Lazy translation has been enabled in the other projects so it would
> be beneficial to be consistent with the other projects with respect to
> message translation. 

Unless it has landed in *every other* integrated project besides Nova, I
don't find this compelling.

I have tested that the changes in (2) and (3) work
> when lazy translation is not enabled.  Thus if a problem is found, the
> two line change in (4) could be removed to get to the previous behavior.
>     I've been talking to Matt Riedemann and Dan Berrange about this.
>  Matt has agreed to be a sponsor.

If this is enabled in other projects, where is the Tempest scenario test
that actually demonstrates that this is working on real installs?

I get that everyone has features that didn't hit. BHowever now is not
that time for that, now is the time for people to get focussed on bugs
hunting. And especially if we are talking about *another* oslo sync.



Sean Dague
Samsung Research America
sean at dague.net / sean.dague at samsung.com

[attachment "signature.asc" deleted by Jay S Bryant/Rochester/IBM] 
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org


I really feel like this is being made into a bigger deal than it needs to 

The only other project that hasn't accepted this change is Heat and we are 
currently working to resolve that issue.

We were not aware of a requirement for Tempest tests for a change like 
this.  We would be willing to work on getting those added to resolve that 
If we were to get these added ASAP would you be willing to reconsider?

As far as the Oslo sync is concerned, it is a sync gettextutils which is 
an isolated module that doesn't have other dependencies and is pulling in 
a number of good bug fixes.
The removal of str() from LOGs and exceptions was a ticking time bomb that 
needed to be addressed anyway.

The change brings good value for users and fixes issues that have been 
lying around for quite some time.  We apologize that this is coming in so 
late in the game.
There were extraneous challenges that lead to the timing on this.

Thank you for your consideration on this issue.

Jay S. Bryant
       IBM Cinder Subject Matter Expert  &  Cinder Core Member
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140307/c7facb58/attachment.html>

More information about the OpenStack-dev mailing list