<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 13 October 2016 at 23:19, Johannes Grassler <span dir="ltr"><<a href="mailto:jgrassler@suse.de" target="_blank">jgrassler@suse.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I've got an existing keystoneclient.client.v3.Clien<wbr>t object with an<br>
authenticated session. Now I'd like to get the identity URL this<br>
object uses for requesting things from Keystone. I want to use that<br>
URL in a trust's endpoint list in order to allow the user the client<br>
is authenticated as to talk to Keystone on the trustor's behalf.<br>
<br>
The client is authenticated as a service user and issues a GET to<br>
<br>
   GET <a href="http://192.168.123.20/identity_admin/v3/OS-TRUST/trusts" rel="noreferrer" target="_blank">http://192.168.123.20/identity<wbr>_admin/v3/OS-TRUST/trusts</a><br>
<br>
when the following code snippet is executed:<br>
<br>
  client.trusts.list()<br>
<br>
(`client` is my keystoneclient.client.v3.Clien<wbr>t instance).<br>
<br>
Initially I thought I could use the auth_url from the client's<br>
session object, i.e.<br>
<br>
  client.session.auth.auth_url<br>
<br>
but that turned out to be a dead end because it's the internal<br>
endpoint:<br>
<br>
  <a href="http://192.168.123.20/identity/v3" rel="noreferrer" target="_blank">http://192.168.123.20/identity<wbr>/v3</a><br>
<br>
This will be useless for a trust's endpoint URL list if the<br>
trustee (my service user) ends up using<br>
<br>
  <a href="http://192.168.123.20/identity_admin/v3" rel="noreferrer" target="_blank">http://192.168.123.20/identity<wbr>_admin/v3</a><br>
<br>
to talk to Keystone. I could look up the admin URL from the catalog<br>
like this...<br>
<br>
  keystone_service=client.servic<wbr>es.list(type='identity')[0]<br>
  client.endpoints.list(service=<wbr>keystone_service,<br>
                        interface='admin',<br>
                        region=client.region_name)<br>
<br>
...but that feels rather dirty since it independently looks up the<br>
admin endpoint rather than plucking the identity endpoint from the<br>
keystone client instance. Is there a cleaner way to get that<br>
information directly from the keystoneclient.client.v3.Clien<wbr>t<br>
instance?<br>
<br>
Cheers,<br>
<br>
Johannes<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>So this is one of those times where keystoneclient is really jno different from the other clients and is just using the session you gave it to do the right thing. <br><br></div><div>From the session you can do: <br><br></div><div>session.get_endpoint(service_type='identity', interface='admin', region='region')<br><br></div><div>to get the URL from the catalog.<br><br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
<br>
-- <br>
Johannes Grassler, Cloud Developer<br>
SUSE Linux GmbH, HRB 21284 (AG Nürnberg)<br>
GF: Felix Imendörffer, Jane Smithard, Graham Norton<br>
Maxfeldstr. 5, 90409 Nürnberg, Germany<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</font></span></blockquote></div><br></div></div>