Add Cinder v3 client support for volumes
Initial Cinder v3 support Change-Id: Idd5074832e80697ed0671f06d3291dfd92dbfb08
This commit is contained in:
parent
1e3dc48c64
commit
4d5f2c3925
23
openstackclient/tests/functional/volume/v3/common.py
Normal file
23
openstackclient/tests/functional/volume/v3/common.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# 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 os
|
||||||
|
|
||||||
|
from openstackclient.tests.functional import base
|
||||||
|
|
||||||
|
|
||||||
|
class BaseVolumeTests(base.TestCase):
|
||||||
|
"""Base class for Volume functional tests. """
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
os.environ['OS_VOLUME_API_VERSION'] = '3'
|
23
openstackclient/tests/functional/volume/v3/test_qos.py
Normal file
23
openstackclient/tests/functional/volume/v3/test_qos.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# 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 openstackclient.tests.functional.volume.v2 import test_qos as v2
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class QosTests(v2.QosTests):
|
||||||
|
"""Functional tests for volume qos. """
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(QosTests, cls).setUpClass()
|
||||||
|
os.environ['OS_VOLUME_API_VERSION'] = '3'
|
23
openstackclient/tests/functional/volume/v3/test_snapshot.py
Normal file
23
openstackclient/tests/functional/volume/v3/test_snapshot.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# 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 openstackclient.tests.functional.volume.v2 import test_snapshot as v2
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class VolumeSnapshotTests(v2.VolumeSnapshotTests):
|
||||||
|
"""Functional tests for volume snapshot. """
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(VolumeSnapshotTests, cls).setUpClass()
|
||||||
|
os.environ['OS_VOLUME_API_VERSION'] = '3'
|
@ -0,0 +1,24 @@
|
|||||||
|
# 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 openstackclient.tests.functional.volume.v2 import test_transfer_request \
|
||||||
|
as v2
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class TransferRequestTests(v2.TransferRequestTests):
|
||||||
|
"""Functional tests for transfer request. """
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(TransferRequestTests, cls).setUpClass()
|
||||||
|
os.environ['OS_VOLUME_API_VERSION'] = '3'
|
23
openstackclient/tests/functional/volume/v3/test_volume.py
Normal file
23
openstackclient/tests/functional/volume/v3/test_volume.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# 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 openstackclient.tests.functional.volume.v2 import test_volume as v2
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class VolumeTests(v2.VolumeTests):
|
||||||
|
"""Functional tests for volume. """
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(VolumeTests, cls).setUpClass()
|
||||||
|
os.environ['OS_VOLUME_API_VERSION'] = '3'
|
@ -0,0 +1,23 @@
|
|||||||
|
# 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 openstackclient.tests.functional.volume.v2 import test_volume_type as v2
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class VolumeTypeTests(v2.VolumeTypeTests):
|
||||||
|
"""Functional tests for volume type. """
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(VolumeTypeTests, cls).setUpClass()
|
||||||
|
os.environ['OS_VOLUME_API_VERSION'] = '3'
|
0
openstackclient/tests/unit/volume/v3/__init__.py
Normal file
0
openstackclient/tests/unit/volume/v3/__init__.py
Normal file
@ -27,7 +27,8 @@ API_VERSION_OPTION = 'os_volume_api_version'
|
|||||||
API_NAME = "volume"
|
API_NAME = "volume"
|
||||||
API_VERSIONS = {
|
API_VERSIONS = {
|
||||||
"1": "cinderclient.v1.client.Client",
|
"1": "cinderclient.v1.client.Client",
|
||||||
"2": "cinderclient.v2.client.Client"
|
"2": "cinderclient.v2.client.Client",
|
||||||
|
"3": "cinderclient.v3.client.Client",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
0
openstackclient/volume/v3/__init__.py
Normal file
0
openstackclient/volume/v3/__init__.py
Normal file
10
releasenotes/notes/change-098377fd53cce7a0.yaml
Normal file
10
releasenotes/notes/change-098377fd53cce7a0.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Added support for Volume API v3 for the following block storage command
|
||||||
|
resources: ``consistency group``, ``consistency group snapshot``,
|
||||||
|
``volume``, ``volume backup``, ``volume host``, ``volume snapshot``,
|
||||||
|
``volume type``, ``volume qos``, ``volume service``,
|
||||||
|
``volume transfer request``. Note that microversion support for Volume API
|
||||||
|
v3 is not yet implemented, each command will assume the API version is
|
||||||
|
``3.0``.
|
63
setup.cfg
63
setup.cfg
@ -602,6 +602,69 @@ openstack.volume.v2 =
|
|||||||
volume_transfer_request_list = openstackclient.volume.v2.volume_transfer_request:ListTransferRequest
|
volume_transfer_request_list = openstackclient.volume.v2.volume_transfer_request:ListTransferRequest
|
||||||
volume_transfer_request_show = openstackclient.volume.v2.volume_transfer_request:ShowTransferRequest
|
volume_transfer_request_show = openstackclient.volume.v2.volume_transfer_request:ShowTransferRequest
|
||||||
|
|
||||||
|
openstack.volume.v3 =
|
||||||
|
consistency_group_add_volume = openstackclient.volume.v2.consistency_group:AddVolumeToConsistencyGroup
|
||||||
|
consistency_group_create = openstackclient.volume.v2.consistency_group:CreateConsistencyGroup
|
||||||
|
consistency_group_delete = openstackclient.volume.v2.consistency_group:DeleteConsistencyGroup
|
||||||
|
consistency_group_list = openstackclient.volume.v2.consistency_group:ListConsistencyGroup
|
||||||
|
consistency_group_remove_volume = openstackclient.volume.v2.consistency_group:RemoveVolumeFromConsistencyGroup
|
||||||
|
consistency_group_set = openstackclient.volume.v2.consistency_group:SetConsistencyGroup
|
||||||
|
consistency_group_show = openstackclient.volume.v2.consistency_group:ShowConsistencyGroup
|
||||||
|
|
||||||
|
consistency_group_snapshot_create = openstackclient.volume.v2.consistency_group_snapshot:CreateConsistencyGroupSnapshot
|
||||||
|
consistency_group_snapshot_delete = openstackclient.volume.v2.consistency_group_snapshot:DeleteConsistencyGroupSnapshot
|
||||||
|
consistency_group_snapshot_list = openstackclient.volume.v2.consistency_group_snapshot:ListConsistencyGroupSnapshot
|
||||||
|
consistency_group_snapshot_show = openstackclient.volume.v2.consistency_group_snapshot:ShowConsistencyGroupSnapshot
|
||||||
|
|
||||||
|
volume_create = openstackclient.volume.v2.volume:CreateVolume
|
||||||
|
volume_delete = openstackclient.volume.v2.volume:DeleteVolume
|
||||||
|
volume_list = openstackclient.volume.v2.volume:ListVolume
|
||||||
|
volume_migrate = openstackclient.volume.v2.volume:MigrateVolume
|
||||||
|
volume_set = openstackclient.volume.v2.volume:SetVolume
|
||||||
|
volume_show = openstackclient.volume.v2.volume:ShowVolume
|
||||||
|
volume_unset = openstackclient.volume.v2.volume:UnsetVolume
|
||||||
|
|
||||||
|
volume_backup_create = openstackclient.volume.v2.backup:CreateVolumeBackup
|
||||||
|
volume_backup_delete = openstackclient.volume.v2.backup:DeleteVolumeBackup
|
||||||
|
volume_backup_list = openstackclient.volume.v2.backup:ListVolumeBackup
|
||||||
|
volume_backup_restore = openstackclient.volume.v2.backup:RestoreVolumeBackup
|
||||||
|
volume_backup_set = openstackclient.volume.v2.backup:SetVolumeBackup
|
||||||
|
volume_backup_show = openstackclient.volume.v2.backup:ShowVolumeBackup
|
||||||
|
|
||||||
|
volume_host_set = openstackclient.volume.v2.volume_host:SetVolumeHost
|
||||||
|
|
||||||
|
volume_snapshot_create = openstackclient.volume.v2.volume_snapshot:CreateVolumeSnapshot
|
||||||
|
volume_snapshot_delete = openstackclient.volume.v2.volume_snapshot:DeleteVolumeSnapshot
|
||||||
|
volume_snapshot_list = openstackclient.volume.v2.volume_snapshot:ListVolumeSnapshot
|
||||||
|
volume_snapshot_set = openstackclient.volume.v2.volume_snapshot:SetVolumeSnapshot
|
||||||
|
volume_snapshot_show = openstackclient.volume.v2.volume_snapshot:ShowVolumeSnapshot
|
||||||
|
volume_snapshot_unset = openstackclient.volume.v2.volume_snapshot:UnsetVolumeSnapshot
|
||||||
|
|
||||||
|
volume_type_create = openstackclient.volume.v2.volume_type:CreateVolumeType
|
||||||
|
volume_type_delete = openstackclient.volume.v2.volume_type:DeleteVolumeType
|
||||||
|
volume_type_list = openstackclient.volume.v2.volume_type:ListVolumeType
|
||||||
|
volume_type_set = openstackclient.volume.v2.volume_type:SetVolumeType
|
||||||
|
volume_type_show = openstackclient.volume.v2.volume_type:ShowVolumeType
|
||||||
|
volume_type_unset = openstackclient.volume.v2.volume_type:UnsetVolumeType
|
||||||
|
|
||||||
|
volume_qos_associate = openstackclient.volume.v2.qos_specs:AssociateQos
|
||||||
|
volume_qos_create = openstackclient.volume.v2.qos_specs:CreateQos
|
||||||
|
volume_qos_delete = openstackclient.volume.v2.qos_specs:DeleteQos
|
||||||
|
volume_qos_disassociate = openstackclient.volume.v2.qos_specs:DisassociateQos
|
||||||
|
volume_qos_list = openstackclient.volume.v2.qos_specs:ListQos
|
||||||
|
volume_qos_set = openstackclient.volume.v2.qos_specs:SetQos
|
||||||
|
volume_qos_show = openstackclient.volume.v2.qos_specs:ShowQos
|
||||||
|
volume_qos_unset = openstackclient.volume.v2.qos_specs:UnsetQos
|
||||||
|
|
||||||
|
volume_service_list = openstackclient.volume.v2.service:ListService
|
||||||
|
volume_service_set = openstackclient.volume.v2.service:SetService
|
||||||
|
|
||||||
|
volume_transfer_request_accept = openstackclient.volume.v2.volume_transfer_request:AcceptTransferRequest
|
||||||
|
volume_transfer_request_create = openstackclient.volume.v2.volume_transfer_request:CreateTransferRequest
|
||||||
|
volume_transfer_request_delete = openstackclient.volume.v2.volume_transfer_request:DeleteTransferRequest
|
||||||
|
volume_transfer_request_list = openstackclient.volume.v2.volume_transfer_request:ListTransferRequest
|
||||||
|
volume_transfer_request_show = openstackclient.volume.v2.volume_transfer_request:ShowTransferRequest
|
||||||
|
|
||||||
[build_sphinx]
|
[build_sphinx]
|
||||||
source-dir = doc/source
|
source-dir = doc/source
|
||||||
build-dir = doc/build
|
build-dir = doc/build
|
||||||
|
Loading…
Reference in New Issue
Block a user