Use Cinder API V2 if V1 is disabled
Cinder API v1 will be removed in Mitaka. We should be able to run tests against APIv2 only. Change-Id: I6916eb3e4b7c85f37be8b365b11ca8b48f88177c Closes-Bug: #1479157 Related-Bug: #1467589
This commit is contained in:
parent
0982f41597
commit
bcfc32e676
|
@ -73,7 +73,6 @@ class BaseComputeTest(tempest.test.BaseTestCase):
|
|||
cls.networks_client = cls.os.networks_client
|
||||
cls.limits_client = cls.os.limits_client
|
||||
cls.volumes_extensions_client = cls.os.volumes_extensions_client
|
||||
cls.volumes_client = cls.os.volumes_client
|
||||
cls.interfaces_client = cls.os.interfaces_client
|
||||
cls.fixed_ips_client = cls.os.fixed_ips_client
|
||||
cls.availability_zone_client = cls.os.availability_zone_client
|
||||
|
@ -88,6 +87,11 @@ class BaseComputeTest(tempest.test.BaseTestCase):
|
|||
cls.security_group_default_rules_client = (
|
||||
cls.os.security_group_default_rules_client)
|
||||
|
||||
if CONF.volume_feature_enabled.api_v1:
|
||||
cls.volumes_client = cls.os.volumes_client
|
||||
else:
|
||||
cls.volumes_client = cls.os.volumes_v2_client
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(BaseComputeTest, cls).resource_setup()
|
||||
|
|
|
@ -144,6 +144,12 @@ def get_extension_client(os, service):
|
|||
'neutron': os.network_client,
|
||||
'swift': os.account_client,
|
||||
}
|
||||
# NOTE (e0ne): Use Cinder API v2 by default because v1 is deprecated
|
||||
if CONF.volume_feature_enabled.api_v2:
|
||||
extensions_client['cinder'] = os.volumes_v2_extension_client
|
||||
else:
|
||||
extensions_client['cinder'] = os.volumes_extension_client
|
||||
|
||||
if service not in extensions_client:
|
||||
print('No tempest extensions client for %s' % service)
|
||||
exit(1)
|
||||
|
|
|
@ -57,14 +57,19 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
|||
cls.security_group_rules_client = (
|
||||
cls.manager.security_group_rules_client)
|
||||
cls.servers_client = cls.manager.servers_client
|
||||
cls.volumes_client = cls.manager.volumes_client
|
||||
cls.snapshots_client = cls.manager.snapshots_client
|
||||
cls.interface_client = cls.manager.interfaces_client
|
||||
# Neutron network client
|
||||
cls.network_client = cls.manager.network_client
|
||||
# Heat client
|
||||
cls.orchestration_client = cls.manager.orchestration_client
|
||||
|
||||
if CONF.volume_feature_enabled.api_v1:
|
||||
cls.volumes_client = cls.manager.volumes_client
|
||||
cls.snapshots_client = cls.manager.snapshots_client
|
||||
else:
|
||||
cls.volumes_client = cls.manager.volumes_v2_client
|
||||
cls.snapshots_client = cls.manager.snapshots_v2_client
|
||||
|
||||
# ## Methods to handle sync and async deletes
|
||||
|
||||
def setUp(self):
|
||||
|
@ -210,7 +215,11 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
|||
cleanup_callable=self.delete_wrapper,
|
||||
cleanup_args=[self.volumes_client.delete_volume, volume['id']])
|
||||
|
||||
self.assertEqual(name, volume['display_name'])
|
||||
# NOTE(e0ne): Cinder API v2 uses name instead of display_name
|
||||
if 'display_name' in volume:
|
||||
self.assertEqual(name, volume['display_name'])
|
||||
else:
|
||||
self.assertEqual(name, volume['name'])
|
||||
self.volumes_client.wait_for_volume_status(volume['id'], 'available')
|
||||
# The volume retrieved on creation has a non-up-to-date status.
|
||||
# Retrieval after it becomes active ensures correct details.
|
||||
|
@ -1262,7 +1271,10 @@ class EncryptionScenarioTest(ScenarioTest):
|
|||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(EncryptionScenarioTest, cls).setup_clients()
|
||||
cls.admin_volume_types_client = cls.os_adm.volume_types_client
|
||||
if CONF.volume_feature_enabled.api_v1:
|
||||
cls.admin_volume_types_client = cls.os_adm.volume_types_client
|
||||
else:
|
||||
cls.admin_volume_types_client = cls.os_adm.volume_types_v2_client
|
||||
|
||||
def _wait_for_volume_status(self, status):
|
||||
self.status_timeout(
|
||||
|
|
|
@ -74,7 +74,13 @@ class TestVolumeBootPattern(manager.ScenarioTest):
|
|||
self.snapshots_client.wait_for_resource_deletion, snap['id'])
|
||||
self.addCleanup(self.snapshots_client.delete_snapshot, snap['id'])
|
||||
self.snapshots_client.wait_for_snapshot_status(snap['id'], 'available')
|
||||
self.assertEqual(snap_name, snap['display_name'])
|
||||
|
||||
# NOTE(e0ne): Cinder API v2 uses name instead of display_name
|
||||
if 'display_name' in snap:
|
||||
self.assertEqual(snap_name, snap['display_name'])
|
||||
else:
|
||||
self.assertEqual(snap_name, snap['name'])
|
||||
|
||||
return snap
|
||||
|
||||
def _create_volume_from_snapshot(self, snap_id):
|
||||
|
|
|
@ -240,7 +240,10 @@ class TestDiscovery(base.TestCase):
|
|||
{'alias': 'fake2'},
|
||||
{'alias': 'not_fake'}]}
|
||||
fake_os = mock.MagicMock()
|
||||
# NOTE (e0ne): mock both v1 and v2 APIs
|
||||
fake_os.volumes_extension_client.list_extensions = fake_list_extensions
|
||||
fake_os.volumes_v2_extension_client.list_extensions = (
|
||||
fake_list_extensions)
|
||||
self.useFixture(mockpatch.PatchObject(
|
||||
verify_tempest_config, 'get_enabled_extensions',
|
||||
return_value=(['fake1', 'fake2', 'fake3'])))
|
||||
|
@ -262,7 +265,10 @@ class TestDiscovery(base.TestCase):
|
|||
{'alias': 'fake2'},
|
||||
{'alias': 'not_fake'}]}
|
||||
fake_os = mock.MagicMock()
|
||||
# NOTE (e0ne): mock both v1 and v2 APIs
|
||||
fake_os.volumes_extension_client.list_extensions = fake_list_extensions
|
||||
fake_os.volumes_v2_extension_client.list_extensions = (
|
||||
fake_list_extensions)
|
||||
self.useFixture(mockpatch.PatchObject(
|
||||
verify_tempest_config, 'get_enabled_extensions',
|
||||
return_value=(['all'])))
|
||||
|
|
Loading…
Reference in New Issue