Add support for microversion 2.28
microversion 2.28 now returns a dict instead of a string for cpu_info item returned by GET /os-hypervisors/<id> Fortunately, the utils.flatten_dict() method checks whether it's a JSON field so the behaviour keeps to be the same for the CLI output of nova hypervisor-show. That said, the novaclient API call to HypervisorManager.get() will of course be returning either a dict or a string for the keyed cpu_info given the microversion. Co-Authored-By: Andrey Kurilin <andr.kurilin@gmail.com> Change-Id: I3a8bfcb7672005430ca99bab0d20e25f48a7e0f6 Implements: blueprint nova-api-hypervsor-cpu-info
This commit is contained in:
parent
0e9456aede
commit
a70de7e590
@ -25,4 +25,4 @@ API_MIN_VERSION = api_versions.APIVersion("2.1")
|
|||||||
# when client supported the max version, and bumped sequentially, otherwise
|
# when client supported the max version, and bumped sequentially, otherwise
|
||||||
# the client may break due to server side new version may include some
|
# the client may break due to server side new version may include some
|
||||||
# backward incompatible change.
|
# backward incompatible change.
|
||||||
API_MAX_VERSION = api_versions.APIVersion("2.27")
|
API_MAX_VERSION = api_versions.APIVersion("2.28")
|
||||||
|
30
novaclient/tests/functional/v2/legacy/test_hypervisors.py
Normal file
30
novaclient/tests/functional/v2/legacy/test_hypervisors.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
import six
|
||||||
|
|
||||||
|
from novaclient.tests.functional import base
|
||||||
|
|
||||||
|
|
||||||
|
class TestHypervisors(base.ClientTestBase):
|
||||||
|
|
||||||
|
COMPUTE_API_VERSION = "2.1"
|
||||||
|
|
||||||
|
def _test_list(self, cpu_info_type):
|
||||||
|
hypervisors = self.client.hypervisors.list()
|
||||||
|
if not len(hypervisors):
|
||||||
|
self.fail("No hypervisors detected.")
|
||||||
|
for hypervisor in hypervisors:
|
||||||
|
self.assertIsInstance(hypervisor.cpu_info, cpu_info_type)
|
||||||
|
|
||||||
|
def test_list(self):
|
||||||
|
self._test_list(six.text_type)
|
21
novaclient/tests/functional/v2/test_hypervisors.py
Normal file
21
novaclient/tests/functional/v2/test_hypervisors.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from novaclient.tests.functional.v2.legacy import test_hypervisors
|
||||||
|
|
||||||
|
|
||||||
|
class TestHypervisorsV28(test_hypervisors.TestHypervisors):
|
||||||
|
|
||||||
|
COMPUTE_API_VERSION = "2.28"
|
||||||
|
|
||||||
|
def test_list(self):
|
||||||
|
self._test_list(dict)
|
@ -2792,6 +2792,7 @@ class ShellTest(utils.TestCase):
|
|||||||
27, # NOTE(cdent): 27 adds support for updated microversion
|
27, # NOTE(cdent): 27 adds support for updated microversion
|
||||||
# headers, and is tested in test_api_versions, but is
|
# headers, and is tested in test_api_versions, but is
|
||||||
# not explicitly tested via wraps and _SUBSTITUTIONS.
|
# not explicitly tested via wraps and _SUBSTITUTIONS.
|
||||||
|
28, # doesn't require any changes in novaclient
|
||||||
])
|
])
|
||||||
versions_supported = set(range(0,
|
versions_supported = set(range(0,
|
||||||
novaclient.API_MAX_VERSION.ver_minor + 1))
|
novaclient.API_MAX_VERSION.ver_minor + 1))
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- Support v2.28 microversion
|
||||||
|
- cpu_info property of hypervisor resource is a json now (previously it was
|
||||||
|
text).
|
Loading…
x
Reference in New Issue
Block a user