nova attach volume failed when using keystone v3 API token
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-cinderclient |
Fix Released
|
Undecided
|
LiShaokai |
Bug Description
reproduce:
1 . Get tokens of V3; POST http://
2. Use that token to attach a volume for a instance with the following request:
POST http://
{
"volumeAttach
}
}
An Error occurred : 500 internal ERROR.
IF we use keystone v2 token, attach volume is ok.
V3 service catalog:
[{u'endpoints': [{u'id': u'6c205a937fc94
V2 service catalog:
[{u'endpoints': [{u'adminURL': u'http://
So below code is the break in keystone V3: in cinderclient/
in LINE 83, the length of matching_endpoints is 3, so that An AmbiguousEndpoints Exception are thrown.
[code]
80 if not matching_endpoints:
81 raise cinderclient.
82 elif len(matching_
83 raise cinderclient.
84 endpoints=
85 else:
86 return matching_
[/code]
description: | updated |
description: | updated |
description: | updated |
tags: | added: keystone |
Changed in python-cinderclient: | |
milestone: | none → 1.3.1 |
status: | Fix Committed → Fix Released |
A note for whoever winds up fixing this - keystoneclient provides a keystoneclient. service_ client. ServiceCatalog class[1] that provides support for both the v2 and v3 service catalogs.
It looks like cinderclient has its own version of this... maybe cinderclient should use the one from python- keystoneclient or copy keystoneclient's again.
[1] http:// git.openstack. org/cgit/ openstack/ python- keystoneclient/ tree/keystonecl ient/service_ catalog. py?id=ce6c54de9 1f7c129cea11a76 48f8668b2f24bca 9