compute: Add support for microversion 2.89
This microversion drops the duplicate ``id`` field while adding ``attachment_id`` and ``bdm_uuid`` to the output of the os-volume_attachments API reflected within osc by the ``openstack server volume list $server``command. Depends-On: https://review.opendev.org/c/openstack/nova/+/804275 Change-Id: I8a7002d8d65d7795e106b768df868198ab8b8143
This commit is contained in:
parent
6ce7da8aeb
commit
51ee17a94d
@ -44,18 +44,24 @@ class ListServerVolume(command.Lister):
|
|||||||
|
|
||||||
volumes = compute_client.volumes.get_server_volumes(server.id)
|
volumes = compute_client.volumes.get_server_volumes(server.id)
|
||||||
|
|
||||||
columns = (
|
columns = ()
|
||||||
'id',
|
column_headers = ()
|
||||||
|
|
||||||
|
if compute_client.api_version < api_versions.APIVersion('2.89'):
|
||||||
|
columns += ('id',)
|
||||||
|
column_headers += ('ID',)
|
||||||
|
|
||||||
|
columns += (
|
||||||
'device',
|
'device',
|
||||||
'serverId',
|
'serverId',
|
||||||
'volumeId',
|
'volumeId',
|
||||||
)
|
)
|
||||||
column_headers = (
|
column_headers += (
|
||||||
'ID',
|
|
||||||
'Device',
|
'Device',
|
||||||
'Server ID',
|
'Server ID',
|
||||||
'Volume ID',
|
'Volume ID',
|
||||||
)
|
)
|
||||||
|
|
||||||
if compute_client.api_version >= api_versions.APIVersion('2.70'):
|
if compute_client.api_version >= api_versions.APIVersion('2.70'):
|
||||||
columns += ('tag',)
|
columns += ('tag',)
|
||||||
column_headers += ('Tag',)
|
column_headers += ('Tag',)
|
||||||
@ -64,6 +70,10 @@ class ListServerVolume(command.Lister):
|
|||||||
columns += ('delete_on_termination',)
|
columns += ('delete_on_termination',)
|
||||||
column_headers += ('Delete On Termination?',)
|
column_headers += ('Delete On Termination?',)
|
||||||
|
|
||||||
|
if compute_client.api_version >= api_versions.APIVersion('2.89'):
|
||||||
|
columns += ('attachment_id', 'bdm_uuid')
|
||||||
|
column_headers += ('Attachment ID', 'BlockDeviceMapping UUID')
|
||||||
|
|
||||||
return (
|
return (
|
||||||
column_headers,
|
column_headers,
|
||||||
(
|
(
|
||||||
|
@ -1715,6 +1715,9 @@ class FakeVolumeAttachment(object):
|
|||||||
"tag": "foo",
|
"tag": "foo",
|
||||||
# introduced in API microversion 2.79
|
# introduced in API microversion 2.79
|
||||||
"delete_on_termination": True,
|
"delete_on_termination": True,
|
||||||
|
# introduced in API microversion 2.89
|
||||||
|
"attachment_id": uuid.uuid4().hex,
|
||||||
|
"bdm_uuid": uuid.uuid4().hex
|
||||||
}
|
}
|
||||||
|
|
||||||
# Overwrite default attributes.
|
# Overwrite default attributes.
|
||||||
|
@ -167,6 +167,55 @@ class TestServerVolumeList(TestServerVolume):
|
|||||||
self.servers_volumes_mock.get_server_volumes.assert_called_once_with(
|
self.servers_volumes_mock.get_server_volumes.assert_called_once_with(
|
||||||
self.server.id)
|
self.server.id)
|
||||||
|
|
||||||
|
def test_server_volume_list_with_attachment_ids(self):
|
||||||
|
self.app.client_manager.compute.api_version = \
|
||||||
|
api_versions.APIVersion('2.89')
|
||||||
|
|
||||||
|
arglist = [
|
||||||
|
self.server.id,
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('server', self.server.id),
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
(
|
||||||
|
'Device', 'Server ID', 'Volume ID', 'Tag',
|
||||||
|
'Delete On Termination?', 'Attachment ID',
|
||||||
|
'BlockDeviceMapping UUID',
|
||||||
|
),
|
||||||
|
columns,
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
(
|
||||||
|
(
|
||||||
|
self.volume_attachments[0].device,
|
||||||
|
self.volume_attachments[0].serverId,
|
||||||
|
self.volume_attachments[0].volumeId,
|
||||||
|
self.volume_attachments[0].tag,
|
||||||
|
self.volume_attachments[0].delete_on_termination,
|
||||||
|
self.volume_attachments[0].attachment_id,
|
||||||
|
self.volume_attachments[0].bdm_uuid
|
||||||
|
|
||||||
|
),
|
||||||
|
(
|
||||||
|
self.volume_attachments[1].device,
|
||||||
|
self.volume_attachments[1].serverId,
|
||||||
|
self.volume_attachments[1].volumeId,
|
||||||
|
self.volume_attachments[1].tag,
|
||||||
|
self.volume_attachments[1].delete_on_termination,
|
||||||
|
self.volume_attachments[1].attachment_id,
|
||||||
|
self.volume_attachments[1].bdm_uuid
|
||||||
|
),
|
||||||
|
),
|
||||||
|
tuple(data),
|
||||||
|
)
|
||||||
|
self.servers_volumes_mock.get_server_volumes.assert_called_once_with(
|
||||||
|
self.server.id)
|
||||||
|
|
||||||
|
|
||||||
class TestServerVolumeUpdate(TestServerVolume):
|
class TestServerVolumeUpdate(TestServerVolume):
|
||||||
|
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Added support for `microversion 2.89`_. This microversion removes the
|
||||||
|
``id`` field while adding the ``attachment_id`` and ``bdm_uuid`` fields to
|
||||||
|
the responses of ``GET /servers/{server_id}/os-volume_attachments`` and
|
||||||
|
``GET /servers/{server_id}/os-volume_attachments/{volume_id}`` with these
|
||||||
|
changes reflected in novaclient under the ``openstack server volume list``
|
||||||
|
command.
|
||||||
|
|
||||||
|
.. _microversion 2.89: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#microversion-2-89
|
Loading…
x
Reference in New Issue
Block a user