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
|
||||
# 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")
|
||||
|
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
|
||||
# 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))
|
||||
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
upgrade:
|
||||
- Support v2.28 microversion
|
||||
- cpu_info property of hypervisor resource is a json now (previously it was
|
||||
text).
|
Loading…
Reference in New Issue
Block a user