"ValueError: Expecting a string None" with keystoneauth 3.0.1
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
keystoneauth |
Invalid
|
Undecided
|
Unassigned | ||
python-troveclient |
Fix Released
|
Undecided
|
Lance Bragstad |
Bug Description
When running the tests with "tox -epy27" together with the newly released keystoneauth1 3.0.1, the following errors occur:
[ 143s] ${PYTHON:-python} -m subunit.run discover -t ./ ./ --load-list /tmp/tmpsLZZjS
[ 143s] =======
[ 143s] FAIL: troveclient.
[ 143s] tags: worker-1
[ 143s] -------
[ 143s] Traceback (most recent call last):
[ 143s] File "/usr/lib/
[ 143s] return func(*args, **keywargs)
[ 143s] File "/usr/lib/
[ 143s] return func(*args, **kwargs)
[ 143s] File "troveclient/
[ 143s] stdout, stderr = self.shell(
[ 143s] File "troveclient/
[ 143s] _shell.
[ 143s] File "troveclient/
[ 143s] auth=keystone_auth)
[ 143s] File "troveclient/
[ 143s] return client_class(*args, **kwargs)
[ 143s] File "troveclient/
[ 143s] **kwargs)
[ 143s] File "troveclient/
[ 143s] **kwargs)
[ 143s] File "troveclient/
[ 143s] endpoint = self.get_endpoint()
[ 143s] File "/usr/lib/
[ 143s] return self.session.
[ 143s] File "/usr/lib/
[ 143s] return auth.get_
[ 143s] File "/usr/lib/
[ 143s] allow_version_
[ 143s] File "/usr/lib/
[ 143s] project_id = self.get_
[ 143s] File "/usr/lib/
[ 143s] return self.get_
[ 143s] File "/usr/lib/
[ 143s] if self._needs_
[ 143s] File "/usr/lib/
[ 146s] if self.auth_
[ 146s] File "/usr/lib/
[ 146s] norm_expires = utils.normalize
[ 146s] File "/usr/lib/
[ 146s] return f(self)
[ 146s] File "/usr/lib/
[ 146s] return utils.parse_
[ 146s] File "/usr/lib/
[ 146s] raise ValueError(
[ 146s] ValueError: Expecting a string None
[ 146s] =======
[ 146s] FAIL: troveclient.
[ 146s] tags: worker-7
[ 146s] -------
[ 146s] Traceback (most recent call last):
[ 146s] File "/usr/lib/
[ 146s] return func(*args, **keywargs)
[ 146s] File "/usr/lib/
[ 146s] return func(*args, **kwargs)
[ 146s] File "troveclient/
[ 146s] stdout, stderr = self.shell(
[ 146s] File "troveclient/
[ 146s] _shell.
[ 146s] File "troveclient/
[ 146s] auth=keystone_auth)
[ 146s] File "troveclient/
[ 146s] return client_class(*args, **kwargs)
[ 146s] File "troveclient/
[ 146s] **kwargs)
[ 146s] File "troveclient/
[ 146s] **kwargs)
[ 146s] File "troveclient/
[ 146s] endpoint = self.get_endpoint()
[ 146s] File "/usr/lib/
[ 146s] return self.session.
[ 146s] File "/usr/lib/
[ 146s] return auth.get_
[ 146s] File "/usr/lib/
[ 146s] allow_version_
[ 146s] File "/usr/lib/
[ 146s] project_id = self.get_
[ 146s] File "/usr/lib/
[ 146s] return self.get_
[ 146s] File "/usr/lib/
[ 146s] if self._needs_
[ 146s] File "/usr/lib/
[ 146s] if self.auth_
[ 146s] File "/usr/lib/
[ 146s] norm_expires = utils.normalize
[ 146s] File "/usr/lib/
[ 146s] return f(self)
[ 146s] File "/usr/lib/
[ 146s] return utils.parse_
[ 146s] File "/usr/lib/
[ 146s] raise ValueError(
[ 146s] ValueError: Expecting a string None
[ 146s] Ran 415 tests in 3.347s
[ 146s] FAILED (id=0, failures=2)
[ 146s] error: testr failed (1)
This can also be seen at: https:/
Changed in python-troveclient: | |
assignee: | nobody → Lance Bragstad (lbragstad) |
status: | New → In Progress |
I've proposed a patch to python-troveclient to adjust a token mock that was using the wrong expiration attribute for v2.0 tokens. It just happen to be keystoneauth that stumbled across the error because it expects `expires` to be in the token reference. There was a lot of shuffling in the last release of keystoneauth, so a shift in logic, or how keystoneauth is invoked probably triggered this.
https:/ /github. com/openstack/ python- troveclient/ blob/555ba5ed69 0027088358288c9 b0252d5a58bdc0d /troveclient/ tests/test_ shell.py# L77