[nova] Train: how to use newer API microversion
Ghanshyam Mann
gmann at ghanshyammann.com
Thu Mar 18 14:44:23 UTC 2021
---- On Thu, 18 Mar 2021 09:10:49 -0500 Eugen Block <eblock at nde.ag> wrote ----
> Hi *,
>
> I'm a little confused and could use some guidance regarding endpoints
> and microversions.
> Just recently I did a lot of maintenance in our old cloud, I believe
> it was created with Kilo and is now Train.
>
> Anyway, I wanted to use the "server create" option "--nic none" but
> couldn't because of the v2 endpoint for the nova service, right?
> According to the cli help this option is available from microversion
> 2.37+.
>
> This was the first attempt before adding new endpoints:
>
> controller:~ # openstack server create --image <UUID> --nic none
> --flavor 3 test-nic-none
> nics must be a list or a tuple, not <class 'str'>
You can specify the microversion per API request via the below arg
CLI: --os-comoute-api-version 2.37
API: in the header :
OpenStack-API-Version: compute 2.37 OR
X-OpenStack-Nova-API-Version: 2.37
And here is the detail of each microversion what they have changed:
- https://docs.openstack.org/nova/latest/reference/api-microversion-history.html
-gmann
>
>
> These were the endpoints before I added new ones:
>
> controller:~ # openstack endpoint list | grep nova
> | <UUID> | RegionOne | nova | compute | True |
> public | http://controller:<PORT>/v2/%(tenant_id)s |
> | <UUID> | RegionOne | nova | compute | True |
> internal | http://controller:<PORT>/v2/%(tenant_id)s |
> | <UUID> | RegionOne | nova | compute | True | admin
> | http://controller:<PORT>/v2/%(tenant_id)s |
>
>
> I checked with the Train install guide and created new endpoints for nova:
>
> controller:~ # openstack endpoint create --region RegionOne compute
> public http://controller:<PORT>/v2.1
> controller:~ # openstack endpoint create --region RegionOne compute
> internal http://controller:<PORT>/v2.1
> controller:~ # openstack endpoint create --region RegionOne compute
> admin http://controller:<PORT>/v2.1
>
>
> I should mention that I haven't restarted any services yet, I wanted
> to check each step carefully since people are working in that cloud.
>
> In the debug output from creating a new instance I saw that it's still
> trying to use v2 api, so I disabled it, resulting in error messages
> that there's no compute service available. So I reenabled the old
> endpoints and now have both versions active. Then I tried this:
>
> controller:~ # openstack --os-compute-api-version 2.37 server create
> --image <UUID> --nic none --flavor 3 test-nic-none
> Invalid input for field/attribute networks. Value: none. 'none' is not
> of type 'array' (HTTP 400) (Request-ID:
> req-b3c53ab2-8040-42cf-bf07-d03e8f46cfd5)
>
> Now I'm running out of ideas how to upgrade our api endpoints so the
> services will actually be able to use them properly. I read Train
> release notes (we're planning to upgrade to Ussuri soon) and multiple
> docs about microversions but nothing seems to cover my issue.
>
> Could anyone shed some light? I must admit, during the upgrade cycles
> in the past years I just hoped everything would keep working and it
> did, I didn't put too much attention in the api versions yet. Any help
> is appreciated!
>
> Thanks and best regards,
> Eugen
>
>
>
More information about the openstack-discuss
mailing list