Merge "Move wait_for_backup_status function to common.waiters"

This commit is contained in:
Jenkins 2016-09-30 08:14:49 +00:00 committed by Gerrit Code Review
commit 56c2997a52
4 changed files with 37 additions and 39 deletions

View File

@ -68,8 +68,8 @@ class VolumesBackupsAdminV2Test(base.BaseVolumeAdminTest):
volume_id=self.volume['id'], name=backup_name)['backup'])
self.addCleanup(self._delete_backup, backup['id'])
self.assertEqual(backup_name, backup['name'])
self.admin_backups_client.wait_for_backup_status(backup['id'],
'available')
waiters.wait_for_backup_status(self.admin_backups_client,
backup['id'], 'available')
# Export Backup
export_backup = (self.admin_backups_client.export_backup(backup['id'])
@ -101,8 +101,8 @@ class VolumesBackupsAdminV2Test(base.BaseVolumeAdminTest):
self.addCleanup(self._delete_backup, new_id)
self.assertIn("id", import_backup)
self.assertEqual(new_id, import_backup['id'])
self.admin_backups_client.wait_for_backup_status(import_backup['id'],
'available')
waiters.wait_for_backup_status(self.admin_backups_client,
import_backup['id'], 'available')
# Verify Import Backup
backups = self.admin_backups_client.list_backups(
@ -121,8 +121,8 @@ class VolumesBackupsAdminV2Test(base.BaseVolumeAdminTest):
# Verify if restored volume is there in volume list
volumes = self.admin_volume_client.list_volumes()['volumes']
self.assertIn(restore['volume_id'], [v['id'] for v in volumes])
self.admin_backups_client.wait_for_backup_status(import_backup['id'],
'available')
waiters.wait_for_backup_status(self.admin_backups_client,
import_backup['id'], 'available')
@test.idempotent_id('47a35425-a891-4e13-961c-c45deea21e94')
def test_volume_backup_reset_status(self):
@ -134,13 +134,13 @@ class VolumesBackupsAdminV2Test(base.BaseVolumeAdminTest):
self.addCleanup(self.admin_backups_client.delete_backup,
backup['id'])
self.assertEqual(backup_name, backup['name'])
self.admin_backups_client.wait_for_backup_status(backup['id'],
'available')
waiters.wait_for_backup_status(self.admin_backups_client,
backup['id'], 'available')
# Reset backup status to error
self.admin_backups_client.reset_backup_status(backup_id=backup['id'],
status="error")
self.admin_backups_client.wait_for_backup_status(backup['id'],
'error')
waiters.wait_for_backup_status(self.admin_backups_client,
backup['id'], 'error')
class VolumesBackupsAdminV1Test(VolumesBackupsAdminV2Test):

View File

@ -46,8 +46,8 @@ class VolumesBackupsV2Test(base.BaseVolumeTest):
self.assertEqual(backup_name, backup['name'])
waiters.wait_for_volume_status(self.volumes_client,
volume['id'], 'available')
self.backups_client.wait_for_backup_status(backup['id'],
'available')
waiters.wait_for_backup_status(self.backups_client,
backup['id'], 'available')
# Get a given backup
backup = self.backups_client.show_backup(backup['id'])['backup']
@ -67,8 +67,8 @@ class VolumesBackupsV2Test(base.BaseVolumeTest):
self.addCleanup(self.volumes_client.delete_volume,
restore['volume_id'])
self.assertEqual(backup['id'], restore['backup_id'])
self.backups_client.wait_for_backup_status(backup['id'],
'available')
waiters.wait_for_backup_status(self.backups_client,
backup['id'], 'available')
waiters.wait_for_volume_status(self.volumes_client,
restore['volume_id'], 'available')
@ -103,8 +103,8 @@ class VolumesBackupsV2Test(base.BaseVolumeTest):
volume_id=volume['id'],
name=backup_name, force=True)['backup']
self.addCleanup(self.backups_client.delete_backup, backup['id'])
self.backups_client.wait_for_backup_status(backup['id'],
'available')
waiters.wait_for_backup_status(self.backups_client,
backup['id'], 'available')
self.assertEqual(backup_name, backup['name'])

View File

@ -210,6 +210,27 @@ def wait_for_snapshot_status(client, snapshot_id, status):
raise exceptions.TimeoutException(message)
def wait_for_backup_status(client, backup_id, status):
"""Waits for a Backup to reach a given status."""
body = client.show_backup(backup_id)['backup']
backup_status = body['status']
start = int(time.time())
while backup_status != status:
time.sleep(client.build_interval)
body = client.show_backup(backup_id)['backup']
backup_status = body['status']
if backup_status == 'error' and backup_status != status:
raise exceptions.VolumeBackupException(backup_id=backup_id)
if int(time.time()) - start >= client.build_timeout:
message = ('Volume backup %s failed to reach %s status '
'(current %s) within the required time (%s s).' %
(backup_id, status, backup_status,
client.build_timeout))
raise exceptions.TimeoutException(message)
def wait_for_bm_node_status(client, node_id, attr, status):
"""Waits for a baremetal node attribute to reach given status.

View File

@ -13,11 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import time
from oslo_serialization import jsonutils as json
from tempest import exceptions
from tempest.lib.common import rest_client
from tempest.lib import exceptions as lib_exc
@ -96,26 +93,6 @@ class BaseBackupsClient(rest_client.RestClient):
self.expected_success(202, resp.status)
return rest_client.ResponseBody(resp, body)
def wait_for_backup_status(self, backup_id, status):
"""Waits for a Backup to reach a given status."""
body = self.show_backup(backup_id)['backup']
backup_status = body['status']
start = int(time.time())
while backup_status != status:
time.sleep(self.build_interval)
body = self.show_backup(backup_id)['backup']
backup_status = body['status']
if backup_status == 'error' and backup_status != status:
raise exceptions.VolumeBackupException(backup_id=backup_id)
if int(time.time()) - start >= self.build_timeout:
message = ('Volume backup %s failed to reach %s status '
'(current %s) within the required time (%s s).' %
(backup_id, status, backup_status,
self.build_timeout))
raise exceptions.TimeoutException(message)
def is_resource_deleted(self, id):
try:
self.show_backup(id)