keystone-manage domain_config_upload command yield "'CacheRegion' object has no attribute 'expiration_time'"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Identity (keystone) |
Fix Released
|
High
|
Guang Yee | ||
Kilo |
Fix Released
|
High
|
Unassigned |
Bug Description
Steps to reproduce the error:
1. Install devstack
2. enable domain-specific driver feature
domain_
domain_
3. create an domain-specific conf file in /etc/keystone/
4. run 'keystone-manage domain_
keystone-manage domain_
4959 DEBUG keystone.
4959 DEBUG oslo_db.
4959 CRITICAL keystone [-] AttributeError: 'CacheRegion' object has no attribute 'expiration_time'
4959 TRACE keystone Traceback (most recent call last):
4959 TRACE keystone File "/usr/local/
4959 TRACE keystone exec(compile(
4959 TRACE keystone File "/opt/stack/
4959 TRACE keystone cli.main(
4959 TRACE keystone File "/opt/stack/
4959 TRACE keystone CONF.command.
4959 TRACE keystone File "/opt/stack/
4959 TRACE keystone status = dcu.run()
4959 TRACE keystone File "/opt/stack/
4959 TRACE keystone self.read_
4959 TRACE keystone File "/opt/stack/
4959 TRACE keystone os.path.
4959 TRACE keystone File "/opt/stack/
4959 TRACE keystone self.resource_
4959 TRACE keystone File "/usr/local/
4959 TRACE keystone should_cache_fn)
4959 TRACE keystone File "/usr/local/
4959 TRACE keystone expiration_time = self.expiration
4959 TRACE keystone AttributeError: 'CacheRegion' object has no attribute 'expiration_time'
4959 TRACE keystone
tags: | added: kilo-rc-potential |
Changed in keystone: | |
importance: | Undecided → High |
milestone: | none → liberty-1 |
tags: | removed: kilo-rc-potential |
Changed in keystone: | |
status: | Fix Committed → Fix Released |
Changed in keystone: | |
milestone: | liberty-1 → 8.0.0 |
So looks like keystone-manage CLI have a slimmed down version of load_backends
https:/ /github. com/openstack/ keystone/ blob/master/ keystone/ cli.py# L339
which doesn't have the cache configured
https:/ /github. com/openstack/ keystone/ blob/master/ keystone/ backends. py#L33
So we have two choices
1. add the cache configuration back to the slimmed down version. Drawback is that we have to perpetually maintaining two different versions of load_backends(). backends. py. Drawback is that it will contain extra fat.
2. get rid of the slimmed down version and directly use the fat version in keystone/
But since keystone-manager CLI is something that will be used sparingly, I think we should go for option #2.