[Bug 1761629] Re: [SRU] unicode error when using old unicode non uuid style user id
Corey Bryant
corey.bryant at canonical.com
Wed May 30 19:19:44 UTC 2018
Seyeong, Thanks for the patches. I've uploaded everything for SRU Team
review except for xenial(mitaka) and ocata. Those are failing to build
due to unit test issues. Can you take a look?
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/1761629
Title:
[SRU] unicode error when using old unicode non uuid style user id
Status in Ubuntu Cloud Archive:
Fix Committed
Status in Ubuntu Cloud Archive mitaka series:
Triaged
Status in Ubuntu Cloud Archive ocata series:
Triaged
Status in Ubuntu Cloud Archive pike series:
Triaged
Status in Ubuntu Cloud Archive queens series:
Triaged
Status in Ubuntu Cloud Archive rocky series:
Fix Committed
Status in OpenStack Heat:
In Progress
Status in heat package in Ubuntu:
Fix Released
Status in heat source package in Xenial:
Triaged
Status in heat source package in Artful:
Triaged
Status in heat source package in Bionic:
Triaged
Bug description:
[Impact]
When use old non unicode user id, such as Gāo
heat stack-list shows unicode error
Affected to
Xenial, Artful
UCA Mitaka, Ocata, Pike, Queens
[Test Case]
1. deploy openstack env
2. source novarc ( as admin user ) ( or novarcv3_project as admin )
3. keystone user-create --name test
- openstack user create --domain admin_domain test
4. openstack user set --password-prompt test
4. log into keystone node and install mysql-client
5. connect to mysql with keystone user
6. do below query
- set foreign_key_checks = 0;
- update local_user set user_id='Gāo' where user_id='UUID';
- update user set id='Gāo' where id='UUID';
- set foreign_key_checks = 1;
7. keystone user-role-add --user test --tenant admin --role Admin
- openstack role add --user test --domain admin_domain Admin
- openstack role add --user test --project [admin project id] Admin
- openstack role add --user test --project [admin project id] Member
8. source novarc ( as test user ) ( or novarcv3_project as test user )
9. heat stack-list
result is like [Others]
[Regression]
This patch fixes simple unicode. but heat api needs to be restarted.
Could be short outage during restarting.
[Others]
Below is test result
heat --debug stack-list
DEBUG (session) REQ: curl -g -i -X GET http://10.0.11.184:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
INFO (connectionpool) Starting new HTTP connection (1): 10.0.11.184
DEBUG (connectionpool) "GET /v2.0 HTTP/1.1" 200 337
DEBUG (session) RESP: [200] Content-Length: 337 Vary: X-Auth-Token Keep-Alive: timeout=5, max=100 Server: Apache/2.4.18 (Ubuntu) Connection: Keep-Alive Date: Thu, 05 Apr 2018 21:20:39 GMT x-openstack-request-id: req-df64189d-c865-47fb-b89d-698d61dfafdc Content-Type: [68/1725]
on/json X-Distribution: Ubuntu
RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://10.0.11.184:5000/v2.0/", "rel": "self"}, {"href": "ht
tp://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}
DEBUG (v2) Making authentication request to http://10.0.11.184:5000/v2.0/tokens
DEBUG (connectionpool) "POST /v2.0/tokens HTTP/1.1" 200 3105
DEBUG (session) REQ: curl -g -i -X GET http://10.0.11.170:8004/v1/c9c6d2b72f74458bada7f94501369b18/stacks? -H "User-Agent: python-heatclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}ad359574acee284a60451f9e2340ec46d6e17728"
INFO (connectionpool) Starting new HTTP connection (1): 10.0.11.170
DEBUG (connectionpool) "GET /v1/c9c6d2b72f74458bada7f94501369b18/stacks HTTP/1.1" 400 5508
DEBUG (session) RESP: [400] Date: Thu, 05 Apr 2018 21:20:39 GMT Content-Length: 5508 Content-Type: application/json; charset=UTF-8 Connection: keep-alive
RESP BODY: {"explanation": "The server could not comply with the request since it is either malformed or otherwise incorrect.", "code": 400, "error": {"message": "'ascii' codec can't encode character u'\\u0101' in position 1: ordinal not in range(128)", "traceback": "Tracebac
k (most recent call last):\n File \"/usr/lib/python2.7/dist-packages/heat/api/middleware/fault.py\", line 163, in process_request\n return req.get_response(self.application)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1317, in send\n application
, catch_exc_info=False)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 130, in __call__\n resp = self.ca
ll_func(req, *args, **self.kwargs)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/usr/lib/python2.7/dist-packages/oslo_middleware/base.py\", line 114, in __call__\n response = req.get
_response(self.application)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self
.environ, start_response)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args,
**kwargs)\n File \"/usr/lib/python2.7/dist-packages/oslo_middleware/base.py\", line 114, in __call__\n response = req.get_response(self.application)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\
n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **se
lf.kwargs)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/usr/lib/python2.7/dist-packages/heat/common/wsgi.py\", line 584, in __call__\n response = req.get_response(self.application)\
n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n
File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/usr/li
b/python2.7/dist-packages/heat/common/wsgi.py\", line 584, in __call__\n response = req.get_response(self.application)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/usr/lib/python2.7/dis
t-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/usr/lib/py
thon2.7/dist-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/usr/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py\", line 467, in __call__\n response = req.get_response(self._app)\n File \"/usr/li
b/python2.7/dist-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/usr/lib/python2.7/dist-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/usr/lib/
python2.7/dist-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/usr/lib/python2.7/dist-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/usr/lib/python2.7/dist-
packages/heat/common/wsgi.py\", line 581, in __call__\n response = self.process_request(req)\n File \"/usr/lib/python2.7/dist-packages/heat/common/context.py\", line 311, in process_request\n project_domain_id=project_domain_id)\n File \"/usr/lib/python2.7/dist-packag
es/heat/common/context.py\", line 256, in make_context\n return self.ctxcls(*args, **kwargs)\n File \"/usr/lib/python2.7/dist-packages/heat/common/context.py\", line 109, in __init__\n self.is_admin = self.policy.check_is_admin(self)\n File \"/usr/lib/python2[40/1725]
ackages/heat/common/policy.py\", line 88, in check_is_admin\n return self._check(context, 'context_is_admin', target={}, exc=None)\n File \"/usr/lib/python2.7/dist-packages/heat/common/policy.py\", line 65, in _check\n credentials = context.to_dict()\n File \"/usr/lib
/python2.7/dist-packages/heat/common/context.py\", line 127, in to_dict\n tenant=self.tenant_id or '-')\nUnicodeEncodeError: 'ascii' codec can't encode character u'\\u0101' in position 1: ordinal not in range(128)\n", "type": "UnicodeEncodeError"}, "title": "Bad Request"}
Traceback (most recent call last):
File "/usr/bin/heat", line 10, in <module>
sys.exit(main())
File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 702, in main
HeatShell().main(args)
File "/usr/lib/python2.7/dist-packages/heatclient/shell.py", line 652, in main
args.func(client, args)
File "/usr/lib/python2.7/dist-packages/heatclient/v1/shell.py", line 675, in do_stack_list
utils.print_list(stacks, fields, sortby_index=sortby_index)
File "/usr/lib/python2.7/dist-packages/heatclient/openstack/common/cliutils.py", line 169, in print_list
for o in objs:
File "/usr/lib/python2.7/dist-packages/heatclient/v1/stacks.py", line 127, in paginate
stacks = self._list(url, 'stacks')
File "/usr/lib/python2.7/dist-packages/heatclient/openstack/common/apiclient/base.py", line 135, in _list
body = self.client.get(url).json()
File "/usr/lib/python2.7/dist-packages/keystoneclient/adapter.py", line 176, in get
return self.request(url, 'GET', **kwargs)
File "/usr/lib/python2.7/dist-packages/heatclient/common/http.py", line 311, in request
raise exc.from_response(resp)
heatclient.exc.HTTPBadRequest: ERROR: 'ascii' codec can't encode character u'\u0101' in position 1: ordinal not in range(128)
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1761629/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list