Dear Qiu,
Thank you so much. The patch in the first URL is not applicable as i see that
the httpclient.py does not resemble the code given there.
But surely, second patch "https://review.openstack.org/#/c/69628/" did wonders
and it worked well.
In the mean time, i did a heck like passing a variable from
keystoneclient/v3/projects.py all the way to the keystoneclient/httpclient.py
and in the httpclient,py i had checked that if this variable is there, then do
not change the management_url to v2 like
from code
def _cs_request(self, url, method, **kwargs):
if is_management:
url_to_use = self.management_url
to
def _cs_request(self, url, method, **kwargs):
management_is = None
if 'management_is' in kwargs:
management_is = kwargs['management_is']
del kwargs['management_is']
if is_management and (management_is == None):
url_to_use = self.management_url
This one also worked, but your solution is definitely better than my hack.
Thanks once again,
Regards,
Vinod Kumar Boppanna
________________________________
From: Qiu Yu [[email protected]]
Sent: 07 February 2014 04:41
To: Vinod Kumar Boppanna
Cc: [email protected]
Subject: Re: [Openstack] Problem in Nova trying to take data from keystone
using v3
Keystoneclient isn't doing very well regarding version negotiation. So my guess
on the problem you met is that there're multiple identity service defined in
your deployment, and keystoneclient falls back to use default v2.0 for
management url.
To fix it, configure only one identity service for v3. Or, apply ugly hacks in
keystoneclient, such as
https://review.openstack.org/#/c/62801/
https://review.openstack.org/#/c/69628/
Thanks!
--
Qiu Yu
On Fri, Feb 7, 2014 at 1:04 AM, Vinod Kumar Boppanna
<[email protected]<mailto:[email protected]>> wrote:
Dear All,
I was trying to get the list of project for a domain in nova by connecting to
the keystone using V3 auth tokens, but i am facing problem.
project_list = []
auth_url = "http://<ip of keystone endpoint>:35357/v3/"
keystone = client.Client(token=context.auth_token,
auth_url=auth_url,
project_id = context.project_id)
project_list = keystone.projects.list(domain=context.domain_id)
The first step of authentication is getting successfully completed (as seen in
logs)
urllib3.connectionpool [-] "POST /v3/auth/tokens HTTP/1.1" 201 7351
_make_request /usr/lib/python2.6/site-packages/urllib3/connectionpool.py:295
But when it is trying to retrieve the project list, it is using v2 instead of
v3 like
GET /v2.0/projects?domain_id=default HTTP/1.1"
The problem is why the keystone client is using v2 for data and v3 for
authentication. Should i say some where to use V3 for data as well.
How can i say to use /v3/projects?domain_id=default instead of v2.0?
Thanks & Regards,
Vinod Kumar Boppanna
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to :
[email protected]<mailto:[email protected]>
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : [email protected]
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack