From ed3a35b3cc5e715178225d405e0e3c4aeae7b1bb Mon Sep 17 00:00:00 2001 From: Yaroslav Lobankov Date: Thu, 24 Mar 2016 22:41:30 -0500 Subject: [PATCH] Removing wrapper method for "wait_for_volume_status" function The wait_for_volume_status method in the base_volumes_client.py file is a wrapper method that just uses the waiters.wait_for_volume_status function. The wait_for_volume_status method is not a service method and that is why it should be removed and the waiters.wait_for_volume_status function should be used instead. Partially implements blueprint consistent-service-method-names Change-Id: I4516a2cc2dd6ada8d0a49392a98b949edc09a9fd --- .../api/compute/admin/test_live_migration.py | 10 ++++++---- .../api/compute/volumes/test_attach_volume.py | 10 ++++++---- tempest/api/volume/admin/test_multi_backend.py | 5 +++-- .../api/volume/admin/test_snapshots_actions.py | 8 ++++---- tempest/api/volume/admin/test_volume_types.py | 7 +++++-- .../api/volume/admin/test_volumes_actions.py | 7 +++++-- tempest/api/volume/admin/test_volumes_backup.py | 13 +++++++------ tempest/api/volume/base.py | 4 +++- tempest/api/volume/test_volume_transfers.py | 14 ++++++++------ tempest/api/volume/test_volumes_actions.py | 17 +++++++++++------ tempest/api/volume/test_volumes_extend.py | 4 +++- tempest/api/volume/test_volumes_get.py | 6 ++++-- tempest/api/volume/test_volumes_snapshots.py | 13 ++++++++----- tempest/cmd/javelin.py | 2 +- tempest/common/compute.py | 4 ++-- tempest/scenario/manager.py | 9 ++++++--- tempest/scenario/test_stamp_pattern.py | 4 +++- .../services/volume/base/base_volumes_client.py | 5 ----- tempest/stress/cleanup.py | 4 ++-- tempest/tests/cmd/test_javelin.py | 15 +++++++-------- 20 files changed, 94 insertions(+), 67 deletions(-) diff --git a/tempest/api/compute/admin/test_live_migration.py b/tempest/api/compute/admin/test_live_migration.py index ead6db3cd2..94635ff571 100644 --- a/tempest/api/compute/admin/test_live_migration.py +++ b/tempest/api/compute/admin/test_live_migration.py @@ -81,7 +81,8 @@ class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest): body = self.volumes_client.show_volume(volume_id)['volume'] if body['status'] == 'in-use': self.servers_client.detach_volume(server_id, volume_id) - self.volumes_client.wait_for_volume_status(volume_id, 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume_id, 'available') self.volumes_client.delete_volume(volume_id) def _test_live_migration(self, state='ACTIVE', volume_backed=False): @@ -152,14 +153,15 @@ class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest): volume = self.volumes_client.create_volume( display_name='test')['volume'] - self.volumes_client.wait_for_volume_status(volume['id'], - 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'available') self.addCleanup(self._volume_clean_up, server_id, volume['id']) # Attach the volume to the server self.servers_client.attach_volume(server_id, volumeId=volume['id'], device='/dev/xvdb') - self.volumes_client.wait_for_volume_status(volume['id'], 'in-use') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'in-use') self._migrate_server_to(server_id, target_host) waiters.wait_for_server_status(self.servers_client, diff --git a/tempest/api/compute/volumes/test_attach_volume.py b/tempest/api/compute/volumes/test_attach_volume.py index 01a8e5826f..e9c8e300e3 100644 --- a/tempest/api/compute/volumes/test_attach_volume.py +++ b/tempest/api/compute/volumes/test_attach_volume.py @@ -52,7 +52,8 @@ class AttachVolumeTestJSON(base.BaseV2ComputeTest): def _detach(self, server_id, volume_id): if self.attachment: self.servers_client.detach_volume(server_id, volume_id) - self.volumes_client.wait_for_volume_status(volume_id, 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume_id, 'available') def _delete_volume(self): # Delete the created Volumes @@ -77,15 +78,16 @@ class AttachVolumeTestJSON(base.BaseV2ComputeTest): self.volume = self.volumes_client.create_volume( size=CONF.volume.volume_size, display_name='test')['volume'] self.addCleanup(self._delete_volume) - self.volumes_client.wait_for_volume_status(self.volume['id'], - 'available') + waiters.wait_for_volume_status(self.volumes_client, + self.volume['id'], 'available') # Attach the volume to the server self.attachment = self.servers_client.attach_volume( self.server['id'], volumeId=self.volume['id'], device='/dev/%s' % self.device)['volumeAttachment'] - self.volumes_client.wait_for_volume_status(self.volume['id'], 'in-use') + waiters.wait_for_volume_status(self.volumes_client, + self.volume['id'], 'in-use') self.addCleanup(self._detach, self.server['id'], self.volume['id']) diff --git a/tempest/api/volume/admin/test_multi_backend.py b/tempest/api/volume/admin/test_multi_backend.py index 60e6e6cabc..f19717ee51 100644 --- a/tempest/api/volume/admin/test_multi_backend.py +++ b/tempest/api/volume/admin/test_multi_backend.py @@ -13,6 +13,7 @@ import six from tempest.api.volume import base from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest import test @@ -80,8 +81,8 @@ class VolumeMultiBackendV2Test(base.BaseVolumeAdminTest): else: self.volume_id_list_without_prefix.append( self.volume['id']) - self.admin_volume_client.wait_for_volume_status( - self.volume['id'], 'available') + waiters.wait_for_volume_status(self.admin_volume_client, + self.volume['id'], 'available') @classmethod def resource_cleanup(cls): diff --git a/tempest/api/volume/admin/test_snapshots_actions.py b/tempest/api/volume/admin/test_snapshots_actions.py index f2bf613a1a..7a33f8728b 100644 --- a/tempest/api/volume/admin/test_snapshots_actions.py +++ b/tempest/api/volume/admin/test_snapshots_actions.py @@ -15,6 +15,7 @@ from tempest.api.volume import base from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest import test @@ -41,10 +42,9 @@ class SnapshotsActionsV2Test(base.BaseVolumeAdminTest): vol_name = data_utils.rand_name(cls.__name__ + '-Volume') cls.name_field = cls.special_fields['name_field'] params = {cls.name_field: vol_name} - cls.volume = \ - cls.volumes_client.create_volume(**params)['volume'] - cls.volumes_client.wait_for_volume_status(cls.volume['id'], - 'available') + cls.volume = cls.volumes_client.create_volume(**params)['volume'] + waiters.wait_for_volume_status(cls.volumes_client, + cls.volume['id'], 'available') # Create a test shared snapshot for tests snap_name = data_utils.rand_name(cls.__name__ + '-Snapshot') diff --git a/tempest/api/volume/admin/test_volume_types.py b/tempest/api/volume/admin/test_volume_types.py index c032d9c4e3..7202881c1f 100644 --- a/tempest/api/volume/admin/test_volume_types.py +++ b/tempest/api/volume/admin/test_volume_types.py @@ -15,6 +15,7 @@ from tempest.api.volume import base from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest import test @@ -66,12 +67,14 @@ class VolumeTypesV2Test(base.BaseVolumeAdminTest): "to the requested name") self.assertIsNotNone(volume['id'], "Field volume id is empty or not found.") - self.volumes_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'available') # Update volume with new volume_type self.volumes_client.retype_volume(volume['id'], new_type=volume_types[1]['id']) - self.volumes_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'available') # Get volume details and Verify fetched_volume = self.volumes_client.show_volume( diff --git a/tempest/api/volume/admin/test_volumes_actions.py b/tempest/api/volume/admin/test_volumes_actions.py index 253a3e1679..bdb313ffba 100644 --- a/tempest/api/volume/admin/test_volumes_actions.py +++ b/tempest/api/volume/admin/test_volumes_actions.py @@ -15,6 +15,7 @@ from tempest.api.volume import base from tempest.common.utils import data_utils as utils +from tempest.common import waiters from tempest import test @@ -35,7 +36,8 @@ class VolumesActionsV2Test(base.BaseVolumeAdminTest): params = {cls.name_field: vol_name} cls.volume = cls.client.create_volume(**params)['volume'] - cls.client.wait_for_volume_status(cls.volume['id'], 'available') + waiters.wait_for_volume_status(cls.client, + cls.volume['id'], 'available') @classmethod def resource_cleanup(cls): @@ -61,7 +63,8 @@ class VolumesActionsV2Test(base.BaseVolumeAdminTest): vol_name = utils.rand_name('Volume') params = {self.name_field: vol_name} temp_volume = self.client.create_volume(**params)['volume'] - self.client.wait_for_volume_status(temp_volume['id'], 'available') + waiters.wait_for_volume_status(self.client, + temp_volume['id'], 'available') return temp_volume diff --git a/tempest/api/volume/admin/test_volumes_backup.py b/tempest/api/volume/admin/test_volumes_backup.py index 30c6a15123..b09cd2c80d 100644 --- a/tempest/api/volume/admin/test_volumes_backup.py +++ b/tempest/api/volume/admin/test_volumes_backup.py @@ -15,6 +15,7 @@ from tempest.api.volume import base from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest.lib import decorators from tempest import test @@ -50,8 +51,8 @@ class VolumesBackupsV2Test(base.BaseVolumeAdminTest): self.addCleanup(self.backups_adm_client.delete_backup, backup['id']) self.assertEqual(backup_name, backup['name']) - self.admin_volume_client.wait_for_volume_status( - self.volume['id'], 'available') + waiters.wait_for_volume_status(self.admin_volume_client, + self.volume['id'], 'available') self.backups_adm_client.wait_for_backup_status(backup['id'], 'available') @@ -74,8 +75,8 @@ class VolumesBackupsV2Test(base.BaseVolumeAdminTest): self.assertEqual(backup['id'], restore['backup_id']) self.backups_adm_client.wait_for_backup_status(backup['id'], 'available') - self.admin_volume_client.wait_for_volume_status( - restore['volume_id'], 'available') + waiters.wait_for_volume_status(self.admin_volume_client, + restore['volume_id'], 'available') @decorators.skip_because(bug='1455043') @test.idempotent_id('a99c54a1-dd80-4724-8a13-13bf58d4068d') @@ -117,8 +118,8 @@ class VolumesBackupsV2Test(base.BaseVolumeAdminTest): self.addCleanup(self.admin_volume_client.delete_volume, restore['volume_id']) self.assertEqual(import_backup['id'], restore['backup_id']) - self.admin_volume_client.wait_for_volume_status(restore['volume_id'], - 'available') + waiters.wait_for_volume_status(self.admin_volume_client, + restore['volume_id'], 'available') # Verify if restored volume is there in volume list volumes = self.admin_volume_client.list_volumes()['volumes'] diff --git a/tempest/api/volume/base.py b/tempest/api/volume/base.py index 82dc2c9687..a918eff548 100644 --- a/tempest/api/volume/base.py +++ b/tempest/api/volume/base.py @@ -15,6 +15,7 @@ from tempest.common import compute from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest import exceptions from tempest.lib import exceptions as lib_exc @@ -112,7 +113,8 @@ class BaseVolumeTest(tempest.test.BaseTestCase): volume = cls.volumes_client.create_volume(**kwargs)['volume'] cls.volumes.append(volume) - cls.volumes_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(cls.volumes_client, + volume['id'], 'available') return volume @classmethod diff --git a/tempest/api/volume/test_volume_transfers.py b/tempest/api/volume/test_volume_transfers.py index 7046dcf509..866db3d473 100644 --- a/tempest/api/volume/test_volume_transfers.py +++ b/tempest/api/volume/test_volume_transfers.py @@ -16,6 +16,7 @@ from testtools import matchers from tempest.api.volume import base +from tempest.common import waiters from tempest import config from tempest import test @@ -51,8 +52,8 @@ class VolumesV2TransfersTest(base.BaseVolumeTest): volume_id=volume['id'])['transfer'] transfer_id = transfer['id'] auth_key = transfer['auth_key'] - self.client.wait_for_volume_status(volume['id'], - 'awaiting-transfer') + waiters.wait_for_volume_status(self.client, + volume['id'], 'awaiting-transfer') # Get a volume transfer body = self.client.show_volume_transfer(transfer_id)['transfer'] @@ -66,7 +67,8 @@ class VolumesV2TransfersTest(base.BaseVolumeTest): # Accept a volume transfer by alt_tenant body = self.alt_client.accept_volume_transfer( transfer_id, auth_key=auth_key)['transfer'] - self.alt_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.alt_client, + volume['id'], 'available') @test.idempotent_id('ab526943-b725-4c07-b875-8e8ef87a2c30') def test_create_list_delete_volume_transfer(self): @@ -78,8 +80,8 @@ class VolumesV2TransfersTest(base.BaseVolumeTest): body = self.client.create_volume_transfer( volume_id=volume['id'])['transfer'] transfer_id = body['id'] - self.client.wait_for_volume_status(volume['id'], - 'awaiting-transfer') + waiters.wait_for_volume_status(self.client, + volume['id'], 'awaiting-transfer') # List all volume transfers (looking for the one we created) body = self.client.list_volume_transfers()['transfers'] @@ -91,7 +93,7 @@ class VolumesV2TransfersTest(base.BaseVolumeTest): # Delete a volume transfer self.client.delete_volume_transfer(transfer_id) - self.client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.client, volume['id'], 'available') class VolumesV1TransfersTest(VolumesV2TransfersTest): diff --git a/tempest/api/volume/test_volumes_actions.py b/tempest/api/volume/test_volumes_actions.py index 5f9ea7f878..9c67579272 100644 --- a/tempest/api/volume/test_volumes_actions.py +++ b/tempest/api/volume/test_volumes_actions.py @@ -43,7 +43,8 @@ class VolumesV2ActionsTest(base.BaseVolumeTest): # Create a test shared volume for attach/detach tests cls.volume = cls.create_volume() - cls.client.wait_for_volume_status(cls.volume['id'], 'available') + waiters.wait_for_volume_status(cls.client, + cls.volume['id'], 'available') @classmethod def resource_cleanup(cls): @@ -64,9 +65,11 @@ class VolumesV2ActionsTest(base.BaseVolumeTest): self.client.attach_volume(self.volume['id'], instance_uuid=self.server['id'], mountpoint=mountpoint) - self.client.wait_for_volume_status(self.volume['id'], 'in-use') + waiters.wait_for_volume_status(self.client, + self.volume['id'], 'in-use') self.client.detach_volume(self.volume['id']) - self.client.wait_for_volume_status(self.volume['id'], 'available') + waiters.wait_for_volume_status(self.client, + self.volume['id'], 'available') @test.idempotent_id('63e21b4c-0a0c-41f6-bfc3-7c2816815599') @testtools.skipUnless(CONF.volume_feature_enabled.bootable, @@ -91,10 +94,11 @@ class VolumesV2ActionsTest(base.BaseVolumeTest): self.client.attach_volume(self.volume['id'], instance_uuid=self.server['id'], mountpoint=mountpoint) - self.client.wait_for_volume_status(self.volume['id'], 'in-use') + waiters.wait_for_volume_status(self.client, + self.volume['id'], 'in-use') # NOTE(gfidente): added in reverse order because functions will be # called in reverse order to the order they are added (LIFO) - self.addCleanup(self.client.wait_for_volume_status, + self.addCleanup(waiters.wait_for_volume_status, self.client, self.volume['id'], 'available') self.addCleanup(self.client.detach_volume, self.volume['id']) @@ -120,7 +124,8 @@ class VolumesV2ActionsTest(base.BaseVolumeTest): image_id = body["image_id"] self.addCleanup(self.image_client.delete_image, image_id) self.image_client.wait_for_image_status(image_id, 'active') - self.client.wait_for_volume_status(self.volume['id'], 'available') + waiters.wait_for_volume_status(self.client, + self.volume['id'], 'available') @test.idempotent_id('92c4ef64-51b2-40c0-9f7e-4749fbaaba33') def test_reserve_unreserve_volume(self): diff --git a/tempest/api/volume/test_volumes_extend.py b/tempest/api/volume/test_volumes_extend.py index ed1e5c5033..1947779fef 100644 --- a/tempest/api/volume/test_volumes_extend.py +++ b/tempest/api/volume/test_volumes_extend.py @@ -14,6 +14,7 @@ # under the License. from tempest.api.volume import base +from tempest.common import waiters from tempest import config from tempest import test @@ -33,7 +34,8 @@ class VolumesV2ExtendTest(base.BaseVolumeTest): self.volume = self.create_volume() extend_size = int(self.volume['size']) + 1 self.client.extend_volume(self.volume['id'], new_size=extend_size) - self.client.wait_for_volume_status(self.volume['id'], 'available') + waiters.wait_for_volume_status(self.client, + self.volume['id'], 'available') volume = self.client.show_volume(self.volume['id'])['volume'] self.assertEqual(int(volume['size']), extend_size) diff --git a/tempest/api/volume/test_volumes_get.py b/tempest/api/volume/test_volumes_get.py index aa3ef2ff4f..5d83bb01a8 100644 --- a/tempest/api/volume/test_volumes_get.py +++ b/tempest/api/volume/test_volumes_get.py @@ -18,6 +18,7 @@ from testtools import matchers from tempest.api.volume import base from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest import test @@ -53,7 +54,7 @@ class VolumesV2GetTest(base.BaseVolumeTest): volume = self.client.create_volume(**kwargs)['volume'] self.assertIn('id', volume) self.addCleanup(self._delete_volume, volume['id']) - self.client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.client, volume['id'], 'available') self.assertIn(self.name_field, volume) self.assertEqual(volume[self.name_field], v_name, "The created volume name is not equal " @@ -113,7 +114,8 @@ class VolumesV2GetTest(base.BaseVolumeTest): new_volume = self.client.create_volume(**params)['volume'] self.assertIn('id', new_volume) self.addCleanup(self._delete_volume, new_volume['id']) - self.client.wait_for_volume_status(new_volume['id'], 'available') + waiters.wait_for_volume_status(self.client, + new_volume['id'], 'available') params = {self.name_field: volume[self.name_field], self.descrip_field: volume[self.descrip_field]} diff --git a/tempest/api/volume/test_volumes_snapshots.py b/tempest/api/volume/test_volumes_snapshots.py index c79235ad3f..347877c795 100644 --- a/tempest/api/volume/test_volumes_snapshots.py +++ b/tempest/api/volume/test_volumes_snapshots.py @@ -12,6 +12,7 @@ from tempest.api.volume import base from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest import test @@ -37,7 +38,8 @@ class VolumesV2SnapshotTestJSON(base.BaseVolumeTest): def _detach(self, volume_id): """Detach volume.""" self.volumes_client.detach_volume(volume_id) - self.volumes_client.wait_for_volume_status(volume_id, 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume_id, 'available') def _list_by_param_values_and_assert(self, with_detail=False, **params): """list or list_details with given params and validates result.""" @@ -70,9 +72,9 @@ class VolumesV2SnapshotTestJSON(base.BaseVolumeTest): self.servers_client.attach_volume( server['id'], volumeId=self.volume_origin['id'], device=mountpoint) - self.volumes_client.wait_for_volume_status(self.volume_origin['id'], - 'in-use') - self.addCleanup(self.volumes_client.wait_for_volume_status, + waiters.wait_for_volume_status(self.volumes_client, + self.volume_origin['id'], 'in-use') + self.addCleanup(waiters.wait_for_volume_status, self.volumes_client, self.volume_origin['id'], 'available') self.addCleanup(self.servers_client.detach_volume, server['id'], self.volume_origin['id']) @@ -171,7 +173,8 @@ class VolumesV2SnapshotTestJSON(base.BaseVolumeTest): # NOTE(gfidente): size is required also when passing snapshot_id volume = self.volumes_client.create_volume( snapshot_id=snapshot['id'])['volume'] - self.volumes_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'available') self.volumes_client.delete_volume(volume['id']) self.volumes_client.wait_for_resource_deletion(volume['id']) self.cleanup_snapshot(snapshot) diff --git a/tempest/cmd/javelin.py b/tempest/cmd/javelin.py index 82a121c4c2..e3c1c64129 100755 --- a/tempest/cmd/javelin.py +++ b/tempest/cmd/javelin.py @@ -1031,7 +1031,7 @@ def create_volumes(volumes): v_name = volume['name'] body = client.volumes.create_volume(size=size, display_name=v_name)['volume'] - client.volumes.wait_for_volume_status(body['id'], 'available') + waiters.wait_for_volume_status(client.volumes, body['id'], 'available') def destroy_volumes(volumes): diff --git a/tempest/common/compute.py b/tempest/common/compute.py index 2d2909a5c0..b5c4547615 100644 --- a/tempest/common/compute.py +++ b/tempest/common/compute.py @@ -98,8 +98,8 @@ def create_test_server(clients, validatable=False, validation_resources=None, volume = volumes_client.create_volume( display_name=volume_name, imageRef=image_id) - volumes_client.wait_for_volume_status(volume['volume']['id'], - 'available') + waiters.wait_for_volume_status(volumes_client, + volume['volume']['id'], 'available') bd_map_v2 = [{ 'uuid': volume['volume']['id'], diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py index c9ac0a4a63..5737695be8 100644 --- a/tempest/scenario/manager.py +++ b/tempest/scenario/manager.py @@ -283,7 +283,8 @@ class ScenarioTest(tempest.test.BaseTestCase): self.assertEqual(name, volume['display_name']) else: self.assertEqual(name, volume['name']) - self.volumes_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'available') # The volume retrieved on creation has a non-up-to-date status. # Retrieval after it becomes active ensures correct details. volume = self.volumes_client.show_volume(volume['id'])['volume'] @@ -492,14 +493,16 @@ class ScenarioTest(tempest.test.BaseTestCase): server['id'], volumeId=volume_to_attach['id'], device='/dev/%s' % CONF.compute.volume_device_name)['volumeAttachment'] self.assertEqual(volume_to_attach['id'], volume['id']) - self.volumes_client.wait_for_volume_status(volume['id'], 'in-use') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'in-use') # Return the updated volume after the attachment return self.volumes_client.show_volume(volume['id'])['volume'] def nova_volume_detach(self, server, volume): self.servers_client.detach_volume(server['id'], volume['id']) - self.volumes_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'available') volume = self.volumes_client.show_volume(volume['id'])['volume'] self.assertEqual('available', volume['status']) diff --git a/tempest/scenario/test_stamp_pattern.py b/tempest/scenario/test_stamp_pattern.py index 6121a90b8f..16352c63e0 100644 --- a/tempest/scenario/test_stamp_pattern.py +++ b/tempest/scenario/test_stamp_pattern.py @@ -19,6 +19,7 @@ from oslo_log import log as logging import testtools from tempest.common.utils import data_utils +from tempest.common import waiters from tempest import config from tempest import exceptions from tempest.lib import decorators @@ -72,7 +73,8 @@ class TestStampPattern(manager.ScenarioTest): except lib_exc.NotFound: pass self.addCleanup(cleaner) - self.volumes_client.wait_for_volume_status(volume['id'], 'available') + waiters.wait_for_volume_status(self.volumes_client, + volume['id'], 'available') self.snapshots_client.wait_for_snapshot_status(snapshot['id'], 'available') self.assertEqual(snapshot_name, snapshot['display_name']) diff --git a/tempest/services/volume/base/base_volumes_client.py b/tempest/services/volume/base/base_volumes_client.py index f638bb6c1f..43448029e2 100644 --- a/tempest/services/volume/base/base_volumes_client.py +++ b/tempest/services/volume/base/base_volumes_client.py @@ -17,7 +17,6 @@ from oslo_serialization import jsonutils as json import six from six.moves.urllib import parse as urllib -from tempest.common import waiters from tempest.lib.common import rest_client from tempest.lib import exceptions as lib_exc @@ -148,10 +147,6 @@ class BaseVolumesClient(rest_client.RestClient): self.expected_success(202, resp.status) return rest_client.ResponseBody(resp, body) - def wait_for_volume_status(self, volume_id, status): - """Waits for a Volume to reach a given status.""" - waiters.wait_for_volume_status(self, volume_id, status) - def is_resource_deleted(self, id): try: self.show_volume(id) diff --git a/tempest/stress/cleanup.py b/tempest/stress/cleanup.py index 1c1fb4620b..837edf1282 100644 --- a/tempest/stress/cleanup.py +++ b/tempest/stress/cleanup.py @@ -105,8 +105,8 @@ def cleanup(): LOG.info("Cleanup::remove %s volumes" % len(vols)) for v in vols: try: - admin_manager.volumes_client.\ - wait_for_volume_status(v['id'], 'available') + waiters.wait_for_volume_status( + admin_manager.volumes_client, v['id'], 'available') admin_manager.volumes_client.delete_volume(v['id']) except Exception: pass diff --git a/tempest/tests/cmd/test_javelin.py b/tempest/tests/cmd/test_javelin.py index 57cfe9792e..2d0256a333 100644 --- a/tempest/tests/cmd/test_javelin.py +++ b/tempest/tests/cmd/test_javelin.py @@ -213,8 +213,8 @@ class TestCreateResources(JavelinUnitTest): name=self.fake_object['name'], ip_version=fake_version) - def test_create_volumes(self): - + @mock.patch("tempest.common.waiters.wait_for_volume_status") + def test_create_volumes(self, mock_wait_for_volume_status): self.useFixture(mockpatch.PatchObject(javelin, "client_for_user", return_value=self.fake_client)) self.useFixture(mockpatch.PatchObject(javelin, "_get_volume_by_name", @@ -228,12 +228,12 @@ class TestCreateResources(JavelinUnitTest): mocked_function.assert_called_once_with( size=self.fake_object['gb'], display_name=self.fake_object['name']) - mocked_function = self.fake_client.volumes.wait_for_volume_status - mocked_function.assert_called_once_with( - self.fake_object.body['volume']['id'], + mock_wait_for_volume_status.assert_called_once_with( + self.fake_client.volumes, self.fake_object.body['volume']['id'], 'available') - def test_create_volume_existing(self): + @mock.patch("tempest.common.waiters.wait_for_volume_status") + def test_create_volume_existing(self, mock_wait_for_volume_status): self.useFixture(mockpatch.PatchObject(javelin, "client_for_user", return_value=self.fake_client)) self.useFixture(mockpatch.PatchObject(javelin, "_get_volume_by_name", @@ -245,8 +245,7 @@ class TestCreateResources(JavelinUnitTest): mocked_function = self.fake_client.volumes.create_volume self.assertFalse(mocked_function.called) - mocked_function = self.fake_client.volumes.wait_for_volume_status - self.assertFalse(mocked_function.called) + self.assertFalse(mock_wait_for_volume_status.called) def test_create_router(self):