1.3. Listing public endpoints

Each request needs to be sent to the public endpoint of the appropriate service. You can obtain the list of public endpoints by sending a request to https://<node_IP_addr>:5000/v3/auth/catalog. For more readability, you can filter the response with the jq tool that is installed on each node by default.

Sample request:

# curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
https://<node_IP_addr>:5000/v3/auth/catalog | jq '.catalog[] | . as {
   endpoints: $e,
   name: $n
} | $e[] | {
   serviceName: $n,
   publicEndpoint: select(.interface=="public").url
}'

Sample response:

{
  "serviceName": "keystone",
  "publicEndpoint": "https://<node_IP_addr>:5000/v3"
}
{
  "serviceName": "glance",
  "publicEndpoint": "https://<node_IP_addr>:9292"
}
{
  "serviceName": "cinderv2",
  "publicEndpoint": "https://<node_IP_addr>:8776/v2/f5d834d636c642c7bfe8af86139c6f26"
}
{
  "serviceName": "cinderv3",
  "publicEndpoint": "https://<node_IP_addr>:8776/v3/f5d834d636c642c7bfe8af86139c6f26"
}
{
  "serviceName": "placement",
  "publicEndpoint": "https://<node_IP_addr>:8780"
}
{
  "serviceName": "nova",
  "publicEndpoint": "https://<node_IP_addr>:8774/v2.1/f5d834d636c642c7bfe8af86139c6f26"
}
{
  "serviceName": "neutron",
  "publicEndpoint": "https://<node_IP_addr>:9696"
}
{
  "serviceName": "heat",
  "publicEndpoint": "https://<node_IP_addr>:8004/v1/f5d834d636c642c7bfe8af86139c6f26"
}
{
  "serviceName": "barbican",
  "publicEndpoint": "https://<node_IP_addr>:9313"
}
{
  "serviceName": "octavia",
  "publicEndpoint": "https://<node_IP_addr>:9888"
}
{
  "serviceName": "magnum",
  "publicEndpoint": "https://<node_IP_addr>:9513/v1"
}
{
  "serviceName": "gnocchi",
  "publicEndpoint": "https://<node_IP_addr>:8041"
}