[nova] Train: how to use newer API microversion
Eugen Block
eblock at nde.ag
Thu Mar 18 14:10:49 UTC 2021
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'>
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