2017-02-08 15:15:13 |
Brant Knudson |
description |
We have a service catalog that looks like this:
+-----------------------+-----------+--------------------------------------------------------+
| Name | Type | Endpoints |
+-----------------------+-----------+--------------------------------------------------------+
| Bare Metal Service | baremetal | RegionOne |
| | | publicURL: http://localhost:5000/v2/baremetal |
| | | internalURL: http://localhost:5000/v2/baremetal |
| | | adminURL: http://localhost:5000/v2/baremetal |
| | | |
| Compute Service | compute | RegionOne |
| | | publicURL: http://localhost:5000/compute/v2/720429 |
| | | internalURL: http://localhost:5000/compute/v2/720429 |
| | | adminURL: http://localhost:5000/compute/v2/720429 |
| | | |
| Network Service | network | RegionOne |
| | | publicURL: http://localhost:5000/network |
| | | internalURL: http://localhost:5000/network |
| | | adminURL: http://localhost:5000/network |
| | | |
| Image Service | image | RegionOne |
| | | publicURL: http://localhost:5000/image |
| | | internalURL: http://localhost:5000/image |
| | | adminURL: http://localhost:5000/image |
| | | |
| Block Storage Service | volume | RegionOne |
| | | publicURL: http://localhost:5000/volume/v1/720429 |
| | | internalURL: http://localhost:5000/volume/v1/720429 |
| | | adminURL: http://localhost:5000/volume/v1/720429 |
| | | |
| Identity Service | identity | RegionOne |
| | | publicURL: http://localhost:5000/v2.0 |
| | | internalURL: http://localhost:5000/v2.0 |
| | | adminURL: http://localhost:5000/v2.0 |
| | | |
+-----------------------+-----------+--------------------------------------------------------+
When using openstackclient + openstacksdk>9.1.0, openstack network list fails because the SDK is not properly parsing the network endpoint.
That's because of this change:
https://review.openstack.org/#/c/351398/3/openstack/session.py@118
The code assumes you have an endpoint of the form: scheme://<host>:<port>
But we have: scheme://<host>:<port>/<type>
So when doing a network list operation from openstackclient, the sdk isn't able to figure out the version of the network API to use (v2.0), and makes the request against http://localhost:5000/ which is actually the identity service root. |
We have a service catalog that looks like this:
+-----------------------+-----------+--------------------------------------------------------+
| Name | Type | Endpoints |
+-----------------------+-----------+--------------------------------------------------------+
| Compute Service | compute | RegionOne |
| | | publicURL: http://localhost:5000/compute/v2/720429 |
| | | internalURL: http://localhost:5000/compute/v2/720429 |
| | | adminURL: http://localhost:5000/compute/v2/720429 |
| | | |
| Network Service | network | RegionOne |
| | | publicURL: http://localhost:5000/network |
| | | internalURL: http://localhost:5000/network |
| | | adminURL: http://localhost:5000/network |
| | | |
| Image Service | image | RegionOne |
| | | publicURL: http://localhost:5000/image |
| | | internalURL: http://localhost:5000/image |
| | | adminURL: http://localhost:5000/image |
| | | |
| Block Storage Service | volume | RegionOne |
| | | publicURL: http://localhost:5000/volume/v1/720429 |
| | | internalURL: http://localhost:5000/volume/v1/720429 |
| | | adminURL: http://localhost:5000/volume/v1/720429 |
| | | |
| Identity Service | identity | RegionOne |
| | | publicURL: http://localhost:5000/v2.0 |
| | | internalURL: http://localhost:5000/v2.0 |
| | | adminURL: http://localhost:5000/v2.0 |
| | | |
+-----------------------+-----------+--------------------------------------------------------+
When using openstackclient + openstacksdk>9.1.0, openstack network list fails because the SDK is not properly parsing the network endpoint.
That's because of this change:
https://review.openstack.org/#/c/351398/3/openstack/session.py@118
The code assumes you have an endpoint of the form: scheme://<host>:<port>
But we have: scheme://<host>:<port>/<type>
So when doing a network list operation from openstackclient, the sdk isn't able to figure out the version of the network API to use (v2.0), and makes the request against http://localhost:5000/ which is actually the identity service root. |
|