diff options
author | Chandan Kumar <chkumar@redhat.com> | 2014-09-12 07:26:19 -0400 |
---|---|---|
committer | Chandan Kumar <chkumar@redhat.com> | 2014-10-15 11:47:11 -0400 |
commit | 449e4c07a687ded2629dd67e7f7d641d1bc3f8b2 (patch) | |
tree | 57f0c17cb07c84a127afc96056fda78ae4ca7ea4 | |
parent | 7aecb4665e7cbc0b6e2fc869ab68e610eec8d601 (diff) | |
download | tempest-449e4c07a687ded2629dd67e7f7d641d1bc3f8b2.tar.gz |
enable cinder v2 api for test_multi_backend
volume_type_client for v2 is added.
Partially implements: blueprint cinder-v2-api-tests
Change-Id: I0729eaf30946bd291f2fdaee8e99bf125e47be83
-rw-r--r-- | tempest/api/volume/admin/test_multi_backend.py | 17 | ||||
-rw-r--r-- | tempest/api/volume/base.py | 5 | ||||
-rw-r--r-- | tempest/clients.py | 4 | ||||
-rw-r--r-- | tempest/services/volume/json/admin/volume_types_client.py | 8 | ||||
-rw-r--r-- | tempest/services/volume/v2/json/admin/__init__.py | 0 | ||||
-rw-r--r-- | tempest/services/volume/v2/json/admin/volume_types_client.py | 28 |
6 files changed, 53 insertions, 9 deletions
diff --git a/tempest/api/volume/admin/test_multi_backend.py b/tempest/api/volume/admin/test_multi_backend.py index 6f2ee0660..042cde9f8 100644 --- a/tempest/api/volume/admin/test_multi_backend.py +++ b/tempest/api/volume/admin/test_multi_backend.py @@ -21,19 +21,19 @@ CONF = config.CONF LOG = logging.getLogger(__name__) -class VolumeMultiBackendTest(base.BaseVolumeV1AdminTest): +class VolumeMultiBackendV2Test(base.BaseVolumeAdminTest): _interface = "json" @classmethod def resource_setup(cls): - super(VolumeMultiBackendTest, cls).resource_setup() + super(VolumeMultiBackendV2Test, cls).resource_setup() if not CONF.volume_feature_enabled.multi_backend: raise cls.skipException("Cinder multi-backend feature disabled") cls.backend1_name = CONF.volume.backend1_name cls.backend2_name = CONF.volume.backend2_name - cls.volume_client = cls.os_adm.volumes_client + cls.name_field = cls.special_fields['name_field'] cls.volume_type_id_list = [] cls.volume_id_list_with_prefix = [] cls.volume_id_list_without_prefix = [] @@ -64,8 +64,9 @@ class VolumeMultiBackendTest(base.BaseVolumeV1AdminTest): type_name, extra_specs=extra_specs) self.volume_type_id_list.append(self.type['id']) - _, self.volume = self.volume_client.create_volume( - size=1, display_name=vol_name, volume_type=type_name) + params = {self.name_field: vol_name, 'volume_type': type_name} + + _, self.volume = self.volume_client.create_volume(size=1, **params) if with_prefix: self.volume_id_list_with_prefix.append(self.volume['id']) else: @@ -92,7 +93,7 @@ class VolumeMultiBackendTest(base.BaseVolumeV1AdminTest): for volume_type_id in volume_type_id_list: cls.volume_types_client.delete_volume_type(volume_type_id) - super(VolumeMultiBackendTest, cls).resource_cleanup() + super(VolumeMultiBackendV2Test, cls).resource_cleanup() @test.attr(type='smoke') def test_backend_name_reporting(self): @@ -149,3 +150,7 @@ class VolumeMultiBackendTest(base.BaseVolumeV1AdminTest): msg = ("volumes %s and %s were created in the same backend" % (volume1_id, volume2_id)) self.assertNotEqual(volume1_host, volume2_host, msg) + + +class VolumeMultiBackendV1Test(VolumeMultiBackendV2Test): + _api_version = 1 diff --git a/tempest/api/volume/base.py b/tempest/api/volume/base.py index 5815f6868..d78ddb60d 100644 --- a/tempest/api/volume/base.py +++ b/tempest/api/volume/base.py @@ -167,18 +167,21 @@ class BaseVolumeAdminTest(BaseVolumeTest): cls.hosts_client = cls.os_adm.volume_hosts_client cls.quotas_client = cls.os_adm.volume_quotas_client - cls.volume_types_client = cls.os_adm.volume_types_client if cls._api_version == 1: if not CONF.volume_feature_enabled.api_v1: msg = "Volume API v1 is disabled" raise cls.skipException(msg) cls.volume_qos_client = cls.os_adm.volume_qos_client + cls.volume_types_client = cls.os_adm.volume_types_client + cls.volume_client = cls.os_adm.volumes_client elif cls._api_version == 2: if not CONF.volume_feature_enabled.api_v2: msg = "Volume API v2 is disabled" raise cls.skipException(msg) cls.volume_qos_client = cls.os_adm.volume_qos_v2_client + cls.volume_types_client = cls.os_adm.volume_types_v2_client + cls.volume_client = cls.os_adm.volumes_v2_client @classmethod def resource_cleanup(cls): diff --git a/tempest/clients.py b/tempest/clients.py index 2d07852a2..cf049295d 100644 --- a/tempest/clients.py +++ b/tempest/clients.py @@ -181,6 +181,8 @@ from tempest.services.volume.json.extensions_client import \ from tempest.services.volume.json.qos_client import QosSpecsClientJSON from tempest.services.volume.json.snapshots_client import SnapshotsClientJSON from tempest.services.volume.json.volumes_client import VolumesClientJSON +from tempest.services.volume.v2.json.admin.volume_types_client import \ + VolumeTypesV2ClientJSON from tempest.services.volume.v2.json.availability_zone_client import \ VolumeV2AvailabilityZoneClientJSON from tempest.services.volume.v2.json.extensions_client import \ @@ -332,6 +334,8 @@ class Manager(manager.Manager): self.volumes_v2_client = VolumesV2ClientJSON(self.auth_provider) self.volume_types_client = VolumeTypesClientJSON( self.auth_provider) + self.volume_types_v2_client = VolumeTypesV2ClientJSON( + self.auth_provider) self.identity_client = IdentityClientJSON(self.auth_provider) self.identity_v3_client = IdentityV3ClientJSON( self.auth_provider) diff --git a/tempest/services/volume/json/admin/volume_types_client.py b/tempest/services/volume/json/admin/volume_types_client.py index 44ef9febc..6f79d2056 100644 --- a/tempest/services/volume/json/admin/volume_types_client.py +++ b/tempest/services/volume/json/admin/volume_types_client.py @@ -23,13 +23,13 @@ from tempest import exceptions CONF = config.CONF -class VolumeTypesClientJSON(rest_client.RestClient): +class BaseVolumeTypesClientJSON(rest_client.RestClient): """ Client class to send CRUD Volume Types API requests to a Cinder endpoint """ def __init__(self, auth_provider): - super(VolumeTypesClientJSON, self).__init__(auth_provider) + super(BaseVolumeTypesClientJSON, self).__init__(auth_provider) self.service = CONF.volume.catalog_type self.build_interval = CONF.volume.build_interval @@ -188,3 +188,7 @@ class VolumeTypesClientJSON(rest_client.RestClient): resp, body = self.delete( "/types/%s/encryption/provider" % str(vol_type_id)) self.expected_success(202, resp.status) + + +class VolumeTypesClientJSON(BaseVolumeTypesClientJSON): + """Volume V1 Volume Types client""" diff --git a/tempest/services/volume/v2/json/admin/__init__.py b/tempest/services/volume/v2/json/admin/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tempest/services/volume/v2/json/admin/__init__.py diff --git a/tempest/services/volume/v2/json/admin/volume_types_client.py b/tempest/services/volume/v2/json/admin/volume_types_client.py new file mode 100644 index 000000000..76fa45df7 --- /dev/null +++ b/tempest/services/volume/v2/json/admin/volume_types_client.py @@ -0,0 +1,28 @@ +# Copyright 2012 OpenStack Foundation +# All Rights Reserved. +# +# 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 tempest.services.volume.json.admin import volume_types_client + + +class VolumeTypesV2ClientJSON(volume_types_client.BaseVolumeTypesClientJSON): + """ + Client class to send CRUD Volume V2 API requests to a Cinder endpoint + """ + + def __init__(self, auth_provider): + super(VolumeTypesV2ClientJSON, self).__init__(auth_provider) + + self.api_version = "v2" |