From d1be501d3430fe034c863daf11a4cdfae8a2a2f9 Mon Sep 17 00:00:00 2001 From: "jeremy.zhang" Date: Wed, 6 Jun 2018 17:25:39 +0800 Subject: [PATCH] Add status check for creating volume backup When creating volume backup from volume or snapshot, the status of the source volume or snapshot will be changed to 'backing-up', and will be changed to volume or snapshot's original status after the backup creation finished. So it is necessary to add status check for the source volume or snapshot to make the tests more robust. Change-Id: I0add3989e1184012b908c5fab459cda41194dec3 --- tempest/api/volume/admin/test_volumes_backup.py | 4 ++++ tempest/api/volume/test_volumes_backup.py | 6 ++++++ tempest/api/volume/test_volumes_snapshots.py | 3 +++ tempest/scenario/test_volume_backup_restore.py | 3 +++ 4 files changed, 16 insertions(+) diff --git a/tempest/api/volume/admin/test_volumes_backup.py b/tempest/api/volume/admin/test_volumes_backup.py index 35eea11591..3c237188a9 100644 --- a/tempest/api/volume/admin/test_volumes_backup.py +++ b/tempest/api/volume/admin/test_volumes_backup.py @@ -60,6 +60,8 @@ class VolumesBackupsAdminTest(base.BaseVolumeAdminTest): # Create backup backup_name = data_utils.rand_name(self.__class__.__name__ + '-Backup') backup = self.create_backup(volume_id=volume['id'], name=backup_name) + waiters.wait_for_volume_resource_status(self.volumes_client, + volume['id'], 'available') self.assertEqual(backup_name, backup['name']) # Export Backup @@ -124,6 +126,8 @@ class VolumesBackupsAdminTest(base.BaseVolumeAdminTest): backup_name = data_utils.rand_name( self.__class__.__name__ + '-Backup') backup = self.create_backup(volume_id=volume['id'], name=backup_name) + waiters.wait_for_volume_resource_status(self.volumes_client, + volume['id'], 'available') self.assertEqual(backup_name, backup['name']) # Reset backup status to error self.admin_backups_client.reset_backup_status(backup_id=backup['id'], diff --git a/tempest/api/volume/test_volumes_backup.py b/tempest/api/volume/test_volumes_backup.py index 07cfad51e3..c178272347 100644 --- a/tempest/api/volume/test_volumes_backup.py +++ b/tempest/api/volume/test_volumes_backup.py @@ -117,6 +117,8 @@ class VolumesBackupsTest(base.BaseVolumeTest): self.__class__.__name__ + '-Backup') backup = self.create_backup(volume_id=volume['id'], name=backup_name, force=True) + waiters.wait_for_volume_resource_status(self.volumes_client, + volume['id'], 'in-use') self.assertEqual(backup_name, backup['name']) @decorators.idempotent_id('2a8ba340-dff2-4511-9db7-646f07156b15') @@ -132,6 +134,8 @@ class VolumesBackupsTest(base.BaseVolumeTest): # Create a backup backup = self.create_backup(volume_id=volume['id']) + waiters.wait_for_volume_resource_status(self.volumes_client, + volume['id'], 'available') # Restore the backup restored_volume_id = self.restore_backup(backup['id'])['volume_id'] @@ -160,6 +164,8 @@ class VolumesBackupsV39Test(base.BaseVolumeTest): # Create volume and backup volume = self.create_volume() backup = self.create_backup(volume_id=volume['id']) + waiters.wait_for_volume_resource_status(self.volumes_client, + volume['id'], 'available') # Update backup and assert response body for update_backup method update_kwargs = { diff --git a/tempest/api/volume/test_volumes_snapshots.py b/tempest/api/volume/test_volumes_snapshots.py index 52114bcad0..93638b821f 100644 --- a/tempest/api/volume/test_volumes_snapshots.py +++ b/tempest/api/volume/test_volumes_snapshots.py @@ -15,6 +15,7 @@ from testtools import matchers from tempest.api.volume import base from tempest.common import utils +from tempest.common import waiters from tempest import config from tempest.lib.common.utils import data_utils from tempest.lib import decorators @@ -163,6 +164,8 @@ class VolumesSnapshotTestJSON(base.BaseVolumeTest): backup = self.create_backup(volume_id=self.volume_origin['id'], snapshot_id=snapshot['id']) + waiters.wait_for_volume_resource_status(self.snapshots_client, + snapshot['id'], 'available') backup_info = self.backups_client.show_backup(backup['id'])['backup'] self.assertEqual(self.volume_origin['id'], backup_info['volume_id']) self.assertEqual(snapshot['id'], backup_info['snapshot_id']) diff --git a/tempest/scenario/test_volume_backup_restore.py b/tempest/scenario/test_volume_backup_restore.py index c23b564c0a..8a8c54e56d 100644 --- a/tempest/scenario/test_volume_backup_restore.py +++ b/tempest/scenario/test_volume_backup_restore.py @@ -14,6 +14,7 @@ # under the License. from tempest.common import utils +from tempest.common import waiters from tempest import config from tempest.lib import decorators from tempest.scenario import manager @@ -56,6 +57,8 @@ class TestVolumeBackupRestore(manager.ScenarioTest): # Create a backup backup = self.create_backup(volume_id=volume['id']) + waiters.wait_for_volume_resource_status(self.volumes_client, + volume['id'], 'available') # Restore the backup restored_volume_id = self.restore_backup(backup['id'])['volume_id']