Say you have an AUTH_URL like this:
$ echo $OS_AUTH_URL
http://openstack.hostname.com:5000/v3
And now you want to do something with it. You might think you can get the info you want from the /v3 url, but it does not tell you much:
$ curl $OS_AUTH_URL
{"version": {"status": "stable",
"updated": "2016-10-06T00:00:00Z",
"media-types": [{"base": "application/json",
"type": "application/vnd.openstack.identity-v3+json"}],
"id": "v3.7",
"links": [{"href": "http://openstack.hostname.com:5000/v3/",
"rel": "self"}]}
}
[ayoung@ayoung541 salab]$
Not too helpful. Turns out, though, that there is data, it is just requires the json-home accepts header.
You access the document like this:
$ curl $OS_AUTH_URL -H "Accept: application/json-home"
I’m not going to past the output: it is huge.
Here is how I process it:
$ curl $OS_AUTH_URL -H "Accept: application/json-home" | jq '. | .resources '
Will format somewhat legibly. To get a specific section, say the endpoint list you can find it in the doc like this:
$
"http://docs.openstack.org/api/openstack-identity/3/rel/endpoints": {
"href": "/endpoints"
},
And to pull it out programatically:
$ curl -s $OS_AUTH_URL -H "Accept: application/json-home" | jq '. \
| .resources |\
.["http://docs.openstack.org/api/openstack-identity/3/rel/endpoints"]\
| .href' "/endpoints"
This post first appeared on Adam Young’s blog.
For more on Keystone, an OpenStack service that provides API client authentication, service discovery and distributed multi-tenant authorization, check out the project Wiki.
Superuser is always interested in community content – get in touch: editorATopenstack.org
- TripleO networks: From simplest to not-so-simple - January 14, 2019
- How to create a self trust In Keystone - October 29, 2018
- Using JSON home on a Keystone server - February 5, 2018