Comment 5 for bug 1046905

Revision history for this message
anndy (anndymaktub) wrote :

When I use keystone client user-role-add command, it always cause error:
MemcachedStringEncodingError: Keys must be str()'s, not unicode. Convert your unicode strings using mystring.encode(charset)!

Command:
keystone --token=ADMIN --endpoint=http://127.0.0.1:35357/v2.0 user-role-add --user_id {user ID} --role_id {role ID} --tenant_id {tenant ID}

I think it a bug.

Here is a patch.
in https://github.com/openstack/keystone/blob/master/keystone/token/backends/memcache.py
def list_tokens(self, user_id):
   tokens = []
   user_record = self.client.get('usertokens-%s' % user_id) or ""
                                                                                                               ^^^^^^^
change to
user_record = self.client.get('usertokens-%s' % user_id.encode('utf-8')) or ""