Ceilemeter command will occur a UnicodeEncodeError when using LANGUAGE=ja_JP.UTF-8

Bug #1200518 reported by xiaoc
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ceilometer
Fix Released
Medium
Mehdi Abaakouk

Bug Description

In ceilometer/api/controllers/v2.py ,can see

    if len(alarms) < 1:
            raise wsme.exc.ClientSideError(_("Unknown alarm"))

using ceilometer/api/controllers/v2.py, generat a pot file to ceilometer/locale, then copy its content to ceilometer/locale/ja/LC_MESSAGES/ceilometer.po, then modify the po file.

In po file "Unknown alarm" value is a Japanese word.

Then,

msgfmt -o ceilometer/locale/ja/LC_MESSAGES/ceilometer.mo ceilometer/locale/ja/LC_MESSAGES/ceilometer.po

use LANGUAGE=ja_JP.UTF-8, CEILOMETER_LOCALEDIR=ceilometer/locale.

now execute the command:

ceilometer -d alarm-delete -a -

will get the error:

  File "/usr/local/lib/python2.7/dist-packages/pecan/middleware/debug.py", line 289, in __call__
    return self.app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/pecan/middleware/recursive.py", line 56, in __call__
    return self.application(environ, start_response)
  File "/opt/stack/ceilometer/ceilometer/api/middleware.py", line 68, in __call__
    app_iter = self.app(environ, replacement_start_response)
  File "/usr/local/lib/python2.7/dist-packages/pecan/core.py", line 559, in __call__
    self.handle_request(state.request, state.response)
  File "/usr/local/lib/python2.7/dist-packages/pecan/core.py", line 495, in handle_request
    result = controller(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/wsmeext/pecan.py", line 74, in callfunction
    pecan.conf.get('wsme', {}).get('debug', False)
  File "/usr/local/lib/python2.7/dist-packages/wsme/api.py", line 199, in format_exception
    faultstring=error.faultstring)
  File "/usr/local/lib/python2.7/dist-packages/wsme/exc.py", line 12, in faultstring
    return str(self)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8: ordinal not in range(128)

xiaoc (juvjuv660)
description: updated
Julien Danjou (jdanjou)
Changed in ceilometer:
status: New → Triaged
importance: Undecided → Medium
Mehdi Abaakouk (sileht)
Changed in ceilometer:
assignee: nobody → Mehdi Abaakouk (sileht)
Mehdi Abaakouk (sileht)
Changed in ceilometer:
assignee: Mehdi Abaakouk (sileht) → nobody
Revision history for this message
Mehdi Abaakouk (sileht) wrote :

This is a wsme issue, fix is here:

https://bitbucket.org/cdevienne/wsme/pull-request/16/support-unicode-message-in-clientsideerror/diff

We need to wait the next wsme release.

Changed in ceilometer:
assignee: nobody → Mehdi Abaakouk (sileht)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ceilometer (master)

Fix proposed to branch: master
Review: https://review.openstack.org/54499

Changed in ceilometer:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ceilometer (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/54500

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ceilometer (master)

Reviewed: https://review.openstack.org/54499
Committed: http://github.com/openstack/ceilometer/commit/4b693d270358d85edbb7389d5af4d4de38aec4b4
Submitter: Jenkins
Branch: master

commit 4b693d270358d85edbb7389d5af4d4de38aec4b4
Author: Mehdi Abaakouk <email address hidden>
Date: Wed Oct 30 09:31:54 2013 +0100

    Use wsme ClientSideError to handle unicode string

    We inherit from wsme.esc.ClientSideError to handle unicode string in
    error message.

    Fixes bug #1200518

    Change-Id: I54a185a436b0a65bef13f303d7e31911cada76d8

Changed in ceilometer:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to ceilometer (master)

Reviewed: https://review.openstack.org/54500
Committed: http://github.com/openstack/ceilometer/commit/4a638fab63c2a5a8a623c95337562f91b70f30a6
Submitter: Jenkins
Branch: master

commit 4a638fab63c2a5a8a623c95337562f91b70f30a6
Author: Mehdi Abaakouk <email address hidden>
Date: Wed Oct 30 09:54:05 2013 +0100

    Refactor API error handling

    Refactor the API error handling to ensure error messages are translated.
    Since wsme 0.5b6, the error message doesn't need to be converted to
    unicode, wsme handles it for us.

    Related bug #1200518

    Change-Id: Iec396f045cd3afe817301f0d00917c42c7587b55

Thierry Carrez (ttx)
Changed in ceilometer:
milestone: none → icehouse-1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ceilometer:
milestone: icehouse-1 → 2014.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.