Description of problem:
When a user with a non-ASCII charackter exist, a re-deploy/update/scale operation fail.
Version-Release number of selected component (if applicable):
[stack@undercloud ~]$ rpm -qa | grep tripleo
openstack-tripleo-common-0.0.1.dev6-6.git49b57eb.el7ost.noarch
openstack-tripleo-heat-templates-0.8.6-123.el7ost.noarch
openstack-tripleo-0.0.7-0.1.1664e566.el7ost.noarch
openstack-tripleo-puppet-elements-0.0.1-5.el7ost.noarch
openstack-tripleo-image-elements-0.9.6-10.el7ost.noarch
[heat-admin@overcloud-controller-0 ~]$ sudo rpm -qa | grep puppet
puppet-3.6.2-2.el7.noarch
openstack-puppet-modules-2015.1.8-51.el7ost.noarch
How reproducible:
100%, steps below.
Steps to Reproduce:
1.(openstack) user create --project admin --email hjensas --enable --password hjensas "haraldjensås"
+------------+----------------------------------+
| Field | Value |
+------------+----------------------------------+
| email | hjensas |
| enabled | True |
| id | 41c4f9ec59384239990aec8d3a6f0ccc |
| name | haraldjensås |
| project_id | 055966471f944a4ebb12f81753f4a891 |
| username | haraldjensås |
+------------+----------------------------------+
2.(openstack) user list
+----------------------------------+--------------+
| ID | Name |
+----------------------------------+--------------+
| 161b1f81c78342269601722fafefa670 | admin |
| 33d4fb018dc74145b142d5376bf64c6c | nova |
| 41c4f9ec59384239990aec8d3a6f0ccc | haraldjensås | <--- Non ascii char
| 45527723f2d848d1b9494dee484779cf | cinder |
| 6ff5f0a2289c4dfaa5b539cbabe98a96 | swift |
| 71cc3322b3584a6c820250ca73b40033 | cinderv2 |
| 8e66d88846994f9ebd2348feb4ebf3e8 | ceilometer |
| bd921c7b2fe14ed89ac5623f5f2b8b10 | heat |
| c84f2b33825445878f6352738a668a4f | neutron |
| fd00f433f3124c888edb38df20501d5f | glance |
+----------------------------------+--------------+
3. [stack@undercloud ~]$ cat overcloud-deploy.sh
#!/bin/bash
cd /home/stack
openstack overcloud deploy \
--templates /home/stack/templates/my-overcloud/ \
--ntp-server 192.168.102.11 \
--control-scale 1 \
--compute-scale 1 \
--neutron-network-type vxlan \
--neutron-tunnel-types vxlan \
-e /home/stack/templates/my-rabbit-fd-limits.yaml
# -e /home/stack/templates/my-parameters.yaml
4.[stack@undercloud ~]$ bash overcloud-deploy.sh
Deploying templates in the directory /home/stack/templates/my-overcloud
Stack failed with status: resources.ControllerNodesPostDeployment: resources.ControllerOvercloudServicesDeployment_Step6: Error: resources[0]: Deployment to server failed: deploy_status_code : Deployment exited with non-zero status code: 6
ERROR: openstack Heat Stack update failed.
Actual results:
Stack failed with status: resources.ControllerNodesPostDeployment: resources.ControllerOvercloudServicesDeployment_Step6: Error: resources[0]: Deployment to server failed: deploy_status_code : Deployment exited with non-zero status code: 6
ERROR: openstack Heat Stack update failed.
In the os-collect-config logs these entries:
-----------
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: Error: Could not prefetch keystone_user provider 'openstack': Execution of '/usr/bin/openstack user list --quiet --format csv --long' returned 1: ERROR: openstack 'ascii' codec can't encode character u'\xe5' in position 10: ordinal not in range(128)
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: "ID","Name","Project","Email","Enabled"
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: "161b1f81c78342269601722fafefa670","admin","admin","root@localhost",True
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: "33d4fb018dc74145b142d5376bf64c6c","nova","service","email=nobody",True
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: Error: Execution of '/usr/bin/openstack user create --format shell admin --enable --password AZADfbmt2JbbQVHh3nkfVwhQ6 --project admin --email root@localhost' returned 1: ERROR: openstack Conflict occurred attempting to store user - Duplicate Entry (HTTP 409) (Request-ID: req-efd6c099-a9fc-4913-b8ca-ba325ffec901)
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: Error: /Stage[main]/Keystone::Roles::Admin/Keystone_user[admin]/ensure: change from absent to present failed: Execution of '/usr/bin/openstack user create --format shell admin --enable --password AZADfbmt2JbbQVHh3nkfVwhQ6 --project admin --email root@localhost' returned 1: ERROR: openstack Conflict occurred attempting
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: Warning: /Stage[main]/Keystone::Roles::Admin/Keystone_user_role[admin@admin]: Skipping because of failed dependencies
Apr 08 08:13:22 overcloud-controller-0.localdomain os-collect-config[3290]: Warning: /Stage[main]/Heat::Keystone::Domain/Exec[heat_domain_create]: Skipping because of failed dependencies
Expected results:
The stack update should complete successfully
Additional info:
This also happen when an directory such as LDAP or Active Directory is used, if a user in the directory has a name or similar with a non-ASCII character the deployment will fail in the same way.
Adding Customer support case as another Customer has hit this issue because of unicode character in keystone user email address. Same error:
Nov 21 20:32:09 overcloud-s1-twinsburg-controller-0.localdomain os-collect-config[4375]: g to store user - Duplicate Entry (HTTP 409) (Request-ID: req-b6aa1b25-0d0d-47bd-b4da-1f4c2c13afb6)\u001b[0m\n\u001b[1;31mError: /Stage[main]/Keystone::Roles::Admin/Keystone_user[admin]/ensure: change from absent to present failed: Execution of '/usr/bin/openstack user create --format shell admin --enable --password hy7juVv7K4FfxFKdwq2E6Ck8p --project admin --email root@localhost' returned 1: ERROR:
This appears to be a general issue handling utf-8 in openstackclient. I'm not sure if there's a DFG that is responsible for OSC, so I'm leaving it in DF for now. It's not really deployment-specific though.