-
Bug
-
Resolution: Done
-
High
-
Casablanca Maintenance Release
-
None
-
MultiCloud Dublin M2
When an openstack has a v3 keystone the results are mapped to a v2 style internally.
This is in the class newton_base/proxy/identityV3.py
...
class TokensV2(Tokens):
...
def post(self, request, vimid=""):
self._logger.info("vimid > %s" % vimid)
...
#convert endpoints
v2_catalog1_endpoints = None
for v3_endpoint in v3_catalog['endpoints']:
v2_catalog1_endpoints =
if v3_endpoint['interface'] == 'public':
v2_catalog1_endpoints['publicURL'] = v3_endpoint['url']
elif v3_endpoint['interface'] == 'admin':
v2_catalog1_endpoints['adminURL'] = v3_endpoint['url']
elif v3_endpoint['interface'] == 'internal':
v2_catalog1_endpoints['internalURL'] = v3_endpoint['url']
if v2_catalog1_endpoints:
v2_catalog1['endpoints'].append(v2_catalog1_endpoints)
v2_catalog.append(v2_catalog1)
....
The problem is that only the last endpoint is mapped.
I think the code
if v2_catalog1_endpoints:
v2_catalog1['endpoints'].append(v2_catalog1_endpoints)
should be in the loop
for v3_endpoint in v3_catalog['endpoints']:
so that all the endpoints are mapped.