← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1474162] [NEW] ldap unicode issue when doing a show user

 

Public bug reported:

In stable/kilo release, when the username contains non ascii charaters, showing the user from ldap with the following command -
openstack user show --domain=ad "Test Accent Communiquè"
will throw an exception. And this has been addressed in the Master branch, so what needs to be done is just to backport the changes to stable/kilo. 

I tested the changes in the Master branch and works fine.

This is similar to https://bugs.launchpad.net/keystone/+bug/1419187



(keystone.common.wsgi): 2015-07-10 21:25:26,351 INFO wsgi __call__ GET /domains?name=ad
(keystone.common.wsgi): 2015-07-10 21:25:26,385 ERROR wsgi __call__ 'ascii' codec can't encode character u'\xe8' in position 21: ordinal not in range(128)
Traceback (most recent call last):
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/keystone/common/wsgi.py", line 452, in __call__
    response = request.get_response(self.application)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/request.py", line 1317, in send
    application, catch_exc_info=False)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/request.py", line 1281, in call_application
    app_iter = application(self.environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
 File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
    response = self.app(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/keystone/common/wsgi.py", line 234, in __call__
    'params': urllib.urlencode(req.params)})
  File "/usr/lib/python2.7/urllib.py", line 1338, in urlencode
    v = quote_plus(str(v))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 21: ordinal not in range(128)
(keystone.common.wsgi): 2015-07-10 21:25:27,167 INFO wsgi __call__ GET /?

** Affects: keystone
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1474162

Title:
  ldap unicode issue when doing a show user

Status in Keystone:
  New

Bug description:
  In stable/kilo release, when the username contains non ascii charaters, showing the user from ldap with the following command -
  openstack user show --domain=ad "Test Accent Communiquè"
  will throw an exception. And this has been addressed in the Master branch, so what needs to be done is just to backport the changes to stable/kilo. 

  I tested the changes in the Master branch and works fine.

  This is similar to https://bugs.launchpad.net/keystone/+bug/1419187





  (keystone.common.wsgi): 2015-07-10 21:25:26,351 INFO wsgi __call__ GET /domains?name=ad
  (keystone.common.wsgi): 2015-07-10 21:25:26,385 ERROR wsgi __call__ 'ascii' codec can't encode character u'\xe8' in position 21: ordinal not in range(128)
  Traceback (most recent call last):
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/keystone/common/wsgi.py", line 452, in __call__
      response = request.get_response(self.application)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/request.py", line 1317, in send
      application, catch_exc_info=False)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/request.py", line 1281, in call_application
      app_iter = application(self.environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
   File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
      response = self.app(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
      return resp(environ, start_response)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
      resp = self.call_func(req, *args, **self.kwargs)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
      return self.func(req, *args, **kwargs)
    File "/opt/stack/service/keystone/venv/lib/python2.7/site-packages/keystone/common/wsgi.py", line 234, in __call__
      'params': urllib.urlencode(req.params)})
    File "/usr/lib/python2.7/urllib.py", line 1338, in urlencode
      v = quote_plus(str(v))
  UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 21: ordinal not in range(128)
  (keystone.common.wsgi): 2015-07-10 21:25:27,167 INFO wsgi __call__ GET /?

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1474162/+subscriptions


Follow ups