yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #66108
[Bug 1703666] Re: Templated catalog does not handle multi-regions properly
Marking this as invalid for now since we are going to move forward with
a better file-based implementation [0]. Once that change lands, we'll be
deprecate the templated catalog for removal all together.
[0] https://review.openstack.org/#/c/483514/
** Changed in: keystone
Milestone: pike-3 => pike-rc1
** Changed in: keystone
Status: In Progress => Invalid
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1703666
Title:
Templated catalog does not handle multi-regions properly
Status in OpenStack Identity (keystone):
Invalid
Bug description:
The current implementation of the keystone templated catalog does not
group endpoints properly when there are multiple regions available.
This is an working example when using the sql backend and the
openstack catalog list command.
| nova | compute | RegionTwo
| | | admin: http://10.0.3.15:8774/v2.1
| | | RegionOne
| | | admin: http://10.0.2.15:8774/v2.1
This is the same example using the templated backend and the openstack
catalog list command.
| nova | compute | RegionTwo
| | | admin: http://10.0.3.15:8774/v2.1
| nova | compute | RegionOne
| | | admin: http://10.0.2.15:8774/v2.1
This causes issues in services that expects each service_type to
include the endpoint for all regions.
This is because the code in for example Horizon is initially only
looking for the service_type, which will return the first one, in this
case is RegionTwo. If Horizon was requesting RegionOne, this would
fail, as the list of endpoints would only contain RegionTwo.
As a work-around for Horizon a change like this is required
http://paste.openstack.org/show/614967/
-def get_service_from_catalog(catalog, service_type):
+def get_service_from_catalog(catalog, service_type, region):
if catalog:
for service in catalog:
if 'type' not in service:
continue
if service['type'] == service_type:
- return service
+ for endpoint in service['endpoints']:
+ if endpoint['region'] == region:
+ return service
return None
To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1703666/+subscriptions
References