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.networks_client = cls.os.networks_client
|
||||||
cls.limits_client = cls.os.limits_client
|
cls.limits_client = cls.os.limits_client
|
||||||
cls.volumes_extensions_client = cls.os.volumes_extensions_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.interfaces_client = cls.os.interfaces_client
|
||||||
cls.fixed_ips_client = cls.os.fixed_ips_client
|
cls.fixed_ips_client = cls.os.fixed_ips_client
|
||||||
cls.availability_zone_client = cls.os.availability_zone_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.security_group_default_rules_client = (
|
||||||
cls.os.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
|
@classmethod
|
||||||
def resource_setup(cls):
|
def resource_setup(cls):
|
||||||
super(BaseComputeTest, cls).resource_setup()
|
super(BaseComputeTest, cls).resource_setup()
|
||||||
|
|
|
@ -144,6 +144,12 @@ def get_extension_client(os, service):
|
||||||
'neutron': os.network_client,
|
'neutron': os.network_client,
|
||||||
'swift': os.account_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:
|
if service not in extensions_client:
|
||||||
print('No tempest extensions client for %s' % service)
|
print('No tempest extensions client for %s' % service)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
|
@ -57,14 +57,19 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||||
cls.security_group_rules_client = (
|
cls.security_group_rules_client = (
|
||||||
cls.manager.security_group_rules_client)
|
cls.manager.security_group_rules_client)
|
||||||
cls.servers_client = cls.manager.servers_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
|
cls.interface_client = cls.manager.interfaces_client
|
||||||
# Neutron network client
|
# Neutron network client
|
||||||
cls.network_client = cls.manager.network_client
|
cls.network_client = cls.manager.network_client
|
||||||
# Heat client
|
# Heat client
|
||||||
cls.orchestration_client = cls.manager.orchestration_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
|
# ## Methods to handle sync and async deletes
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -210,7 +215,11 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||||
cleanup_callable=self.delete_wrapper,
|
cleanup_callable=self.delete_wrapper,
|
||||||
cleanup_args=[self.volumes_client.delete_volume, volume['id']])
|
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')
|
self.volumes_client.wait_for_volume_status(volume['id'], 'available')
|
||||||
# The volume retrieved on creation has a non-up-to-date status.
|
# The volume retrieved on creation has a non-up-to-date status.
|
||||||
# Retrieval after it becomes active ensures correct details.
|
# Retrieval after it becomes active ensures correct details.
|
||||||
|
@ -1262,7 +1271,10 @@ class EncryptionScenarioTest(ScenarioTest):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setup_clients(cls):
|
def setup_clients(cls):
|
||||||
super(EncryptionScenarioTest, cls).setup_clients()
|
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):
|
def _wait_for_volume_status(self, status):
|
||||||
self.status_timeout(
|
self.status_timeout(
|
||||||
|
|
|
@ -74,7 +74,13 @@ class TestVolumeBootPattern(manager.ScenarioTest):
|
||||||
self.snapshots_client.wait_for_resource_deletion, snap['id'])
|
self.snapshots_client.wait_for_resource_deletion, snap['id'])
|
||||||
self.addCleanup(self.snapshots_client.delete_snapshot, snap['id'])
|
self.addCleanup(self.snapshots_client.delete_snapshot, snap['id'])
|
||||||
self.snapshots_client.wait_for_snapshot_status(snap['id'], 'available')
|
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
|
return snap
|
||||||
|
|
||||||
def _create_volume_from_snapshot(self, snap_id):
|
def _create_volume_from_snapshot(self, snap_id):
|
||||||
|
|
|
@ -240,7 +240,10 @@ class TestDiscovery(base.TestCase):
|
||||||
{'alias': 'fake2'},
|
{'alias': 'fake2'},
|
||||||
{'alias': 'not_fake'}]}
|
{'alias': 'not_fake'}]}
|
||||||
fake_os = mock.MagicMock()
|
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_extension_client.list_extensions = fake_list_extensions
|
||||||
|
fake_os.volumes_v2_extension_client.list_extensions = (
|
||||||
|
fake_list_extensions)
|
||||||
self.useFixture(mockpatch.PatchObject(
|
self.useFixture(mockpatch.PatchObject(
|
||||||
verify_tempest_config, 'get_enabled_extensions',
|
verify_tempest_config, 'get_enabled_extensions',
|
||||||
return_value=(['fake1', 'fake2', 'fake3'])))
|
return_value=(['fake1', 'fake2', 'fake3'])))
|
||||||
|
@ -262,7 +265,10 @@ class TestDiscovery(base.TestCase):
|
||||||
{'alias': 'fake2'},
|
{'alias': 'fake2'},
|
||||||
{'alias': 'not_fake'}]}
|
{'alias': 'not_fake'}]}
|
||||||
fake_os = mock.MagicMock()
|
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_extension_client.list_extensions = fake_list_extensions
|
||||||
|
fake_os.volumes_v2_extension_client.list_extensions = (
|
||||||
|
fake_list_extensions)
|
||||||
self.useFixture(mockpatch.PatchObject(
|
self.useFixture(mockpatch.PatchObject(
|
||||||
verify_tempest_config, 'get_enabled_extensions',
|
verify_tempest_config, 'get_enabled_extensions',
|
||||||
return_value=(['all'])))
|
return_value=(['all'])))
|
||||||
|
|
Loading…
Reference in New Issue