Troubles with unicode account names
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
In Progress
|
High
|
Tim Burke |
Bug Description
With our most-recent release, there was a note [1] that
> tempauth user names now support unicode characters.
...which made me think that we'd expect a proxy-server.conf like
[filter:tempauth]
use = egg:swift#tempauth
user_admin_admin = admin .admin .reseller_admin
user_tést_tester = testing .admin
user_tést2_tester2 = testing2 .admin
user_tést_tester3 = testing3
and test.conf like
account = tést
username = tester
password = testing
account2 = tést2
username2 = tester2
password2 = testing2
username3 = tester3
password3 = testing3
to Just Work™. Nope. After hitting Ctrl-C on test.functional
Ran 305 tests in 170.202s
FAILED (SKIP=176, errors=31, failures=18)
This seems to be a combination of problems: there are test problems like
Traceback (most recent call last):
File "/vagrant/
resp = retry(delete, container, obj)
File "/vagrant/
*args, **kwargs)
File "/vagrant/
'DELETE', '/'.join(
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 10: ordinal not in range(128)
There are ACL problems like
Traceback (most recent call last):
File "/vagrant/
rv = f(*args, **kwargs)
File "/vagrant/
self.
AssertionError: 403 not found in (200, 204)
There are wonky request problems like
Traceback (most recent call last):
File "/vagrant/
self.
AssertionError: 'Response Status: 201 Created' not found in ['Response Body: Bad Request', 'The server could not comply with the request since it is either malformed or otherwise incorrect.', 'Response Status: 400 Bad Request', 'Errors:', '/d94a68c9f5bd4
It'd be nice if "supporting Unicode account names" included being able to run functional tests against Unicode account names.
[1] https:/
Changed in swift: | |
assignee: | nobody → Tim Burke (1-tim-z) |
Running functests with tim's configs resulted in logs like this for me:
May 31 18:49:41 ubuntu-bionic proxy-server: Error: An error occurred: #012Traceback (most recent call last):#012 File "/vagrant/ swift/swift/ common/ middleware/ catch_errors. py", line 41, in handle_request#012 resp = self._app_ call(env) #012 File "/vagrant/ swift/swift/ common/ wsgi.py" , line 1177, in _app_call#012 resp = self.app(env, self._start_ response) #012 File "/vagrant/ swift/swift/ common/ middleware/ gatekeeper. py", line 123, in __call__#012 return self.app(env, gatekeeper_ response) #012 File "/vagrant/ swift/swift/ common/ middleware/ healthcheck. py", line 47, in __call__#012 if req.path == '/healthcheck':#012 File "/vagrant/ swift/swift/ common/ swob.py" , line 934, in path#012 self.environ[ 'PATH_INFO' ])#012 File "/usr/lib/ python2. 7/urllib. py", line 1298, in quote#012 return ''.join(map(quoter, s))#012KeyError: u'\xc3' (txn: txda76f573d4db4 2cbb8d6f- 005b1043c5)
I agree with Tim we don't really "support unicode account names" unless we can AT LEAST get tempauth passing functests...