diff --git a/novaclient/__init__.py b/novaclient/__init__.py index 0e996a22c..7980a7b3f 100644 --- a/novaclient/__init__.py +++ b/novaclient/__init__.py @@ -25,4 +25,4 @@ API_MIN_VERSION = api_versions.APIVersion("2.1") # when client supported the max version, and bumped sequentially, otherwise # the client may break due to server side new version may include some # backward incompatible change. -API_MAX_VERSION = api_versions.APIVersion("2.27") +API_MAX_VERSION = api_versions.APIVersion("2.28") diff --git a/novaclient/tests/functional/v2/legacy/test_hypervisors.py b/novaclient/tests/functional/v2/legacy/test_hypervisors.py new file mode 100644 index 000000000..36edd60e1 --- /dev/null +++ b/novaclient/tests/functional/v2/legacy/test_hypervisors.py @@ -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) diff --git a/novaclient/tests/functional/v2/test_hypervisors.py b/novaclient/tests/functional/v2/test_hypervisors.py new file mode 100644 index 000000000..51327a6d9 --- /dev/null +++ b/novaclient/tests/functional/v2/test_hypervisors.py @@ -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) diff --git a/novaclient/tests/unit/v2/test_shell.py b/novaclient/tests/unit/v2/test_shell.py index 3ddd72449..4d936ede8 100644 --- a/novaclient/tests/unit/v2/test_shell.py +++ b/novaclient/tests/unit/v2/test_shell.py @@ -2792,6 +2792,7 @@ class ShellTest(utils.TestCase): 27, # NOTE(cdent): 27 adds support for updated microversion # headers, and is tested in test_api_versions, but is # not explicitly tested via wraps and _SUBSTITUTIONS. + 28, # doesn't require any changes in novaclient ]) versions_supported = set(range(0, novaclient.API_MAX_VERSION.ver_minor + 1)) diff --git a/releasenotes/notes/microversion-v2_28-abf653ae5cf5c4a9.yaml b/releasenotes/notes/microversion-v2_28-abf653ae5cf5c4a9.yaml new file mode 100644 index 000000000..064f23cc9 --- /dev/null +++ b/releasenotes/notes/microversion-v2_28-abf653ae5cf5c4a9.yaml @@ -0,0 +1,5 @@ +--- +upgrade: +- Support v2.28 microversion +- cpu_info property of hypervisor resource is a json now (previously it was + text).