Stale endpoint selection logic in keystone client
Bug #1377080 reported by
Alexander Makarov
This bug report is a duplicate of:
Bug #1425766: Catalog can't handle multiple service definitions.
Edit
Remove
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Identity (keystone) |
Triaged
|
Medium
|
Unassigned | ||
python-keystoneclient |
Invalid
|
Wishlist
|
Alexander Makarov |
Bug Description
In V3 endpoint groups from different regions are not grouped. It results in a problem in "url_for":
it only stores for result endpoints of the last region of all with similar service type.
summary: |
- Stale endpoint group selection logic in keystone client + Stale endpoint selection logic in keystone client |
Changed in keystone: | |
assignee: | nobody → Alexander Makarov (amakarov) |
affects: | keystone → python-keystoneclient |
Changed in python-keystoneclient: | |
status: | New → In Progress |
To post a comment you must log in.
Here is the case reproduced on a cloud deployed by devstack:
CLI commands:
$ export OS_USERNAME=admin NAME=admin localhost: 5000/v2. 0
$ export OS_PASSWORD=qwe123
$ export OS_TENANT_
$ export OS_AUTH_URL=http://
$ keystone service-create --name=nova --type=compute --description= "Second Openstack Compute Service"; id=73be0c7f663e 4823bb93600dc71 a3b23 --publicurl='http:// 172.16. 0.30:9292' --internalurl='http:// 192.168. 0.194:9292' --adminurl='http:// 192.168. 0.194:9292'
$ keystone endpoint-create --region RegionTwo --service-
Python code:
import keystoneclient. v3.client as ksclient
client = ksclient.Client(
endpoint= "http:// 172.18. 10.122: 5000/v3")
client. authenticate( 172.18. 10.122: 5000/v3", "admin" , "qwe123" , name="admin" )
auth_url="http://
username=
password=
tenant_
heat_url = client. service_ catalog. url_for( type='compute' , name="RegionOne ", type='publicURL ')
service_
region_
endpoint_
print heat_url
And the output:
Traceback (most recent call last): alexander/ PycharmProjects /python- keystoneclient/ triage. py", line 17, in <module> type='publicURL ') alexander/ PycharmProjects /python- keystoneclient/ keystoneclient/ utils.py" , line 318, in inner alexander/ PycharmProjects /python- keystoneclient/ keystoneclient/ service_ catalog. py", line 232, in url_for EndpointNotFoun d(msg) openstack. common. apiclient. exceptions. EndpointNotFoun d: publicURL endpoint for compute service in RegionOne region not found
File "/home/
endpoint_
File "/home/
return func(*args, **kwargs)
File "/home/
raise exceptions.
keystoneclient.