| 40 | 40 |
backup = self.create_backup(
|
| 41 | 41 |
volume_id=volume['id'],
|
| 42 | 42 |
snapshot_id=snapshot['id'])
|
| 43 | |
# Get a given backup
|
| 44 | |
backup = self.backups_client.show_backup(
|
| 45 | |
backup['id'])['backup']
|
| 46 | |
waiters.wait_for_volume_resource_status(
|
| 47 | |
self.backups_client,
|
| 48 | |
backup['id'], 'available')
|
| 49 | 43 |
self.assertEqual(volume['id'], backup['volume_id'])
|
| 50 | 44 |
self.assertEqual(snapshot['id'], backup['snapshot_id'])
|
| 51 | |
|
| 52 | |
self.snapshots_client.delete_snapshot(snapshot['id'])
|
| 53 | |
self.snapshots_client.wait_for_resource_deletion(snapshot['id'])
|
| 54 | |
|
| 55 | |
self.volumes_client.delete_volume(volume['id'])
|
| 56 | |
self.volumes_client.wait_for_resource_deletion(volume['id'])
|
| 57 | 45 |
|
| 58 | 46 |
@decorators.idempotent_id('b5d837b0-7066-455d-88fc-4a721a899306')
|
| 59 | 47 |
def test_backup_create_and_restore_to_an_existing_volume(self):
|
| 60 | 48 |
"""Test backup create and restore to an existing volume."""
|
| 61 | 49 |
# Create volume
|
| 62 | 50 |
src_vol = self.create_volume()
|
| 63 | |
self.addCleanup(self.volumes_client.delete_volume,
|
| 64 | |
src_vol['id'])
|
| 65 | 51 |
# Create backup
|
| 66 | |
backup = self.backups_client.create_backup(
|
| 67 | |
volume_id=src_vol['id'])['backup']
|
| 68 | |
self.addCleanup(self.backups_client.delete_backup, backup['id'])
|
| 69 | |
waiters.wait_for_volume_resource_status(
|
| 70 | |
self.backups_client,
|
| 71 | |
backup['id'], 'available')
|
|
52 |
backup = self.create_backup(volume_id=src_vol['id'])
|
| 72 | 53 |
# Restore to existing volume
|
| 73 | 54 |
restore = self.backups_client.restore_backup(
|
| 74 | 55 |
backup_id=backup['id'],
|
|
| 88 | 69 |
# Create volume from image
|
| 89 | 70 |
volume = self.create_volume(size=CONF.volume.volume_size,
|
| 90 | 71 |
imageRef=CONF.compute.image_ref)
|
| 91 | |
self.addCleanup(self.volumes_client.delete_volume,
|
| 92 | |
volume['id'])
|
| 93 | 72 |
|
| 94 | 73 |
# Create backup
|
| 95 | |
backup = self.backups_client.create_backup(
|
| 96 | |
volume_id=volume['id'])['backup']
|
| 97 | |
waiters.wait_for_volume_resource_status(self.backups_client,
|
| 98 | |
backup['id'], 'available')
|
|
74 |
self.create_backup(volume_id=volume['id'])
|
| 99 | 75 |
# Create a server
|
| 100 | 76 |
bd_map = [{'volume_id': volume['id'],
|
| 101 | 77 |
'delete_on_termination': '0'}]
|
|
| 111 | 87 |
# Create incremental backup
|
| 112 | 88 |
waiters.wait_for_volume_resource_status(self.volumes_client,
|
| 113 | 89 |
volume['id'], 'available')
|
| 114 | |
backup_incr = self.backups_client.create_backup(
|
|
90 |
backup_incr = self.create_backup(
|
| 115 | 91 |
volume_id=volume['id'],
|
| 116 | |
incremental=True)['backup']
|
| 117 | |
|
| 118 | |
waiters.wait_for_volume_resource_status(self.backups_client,
|
| 119 | |
backup_incr['id'],
|
| 120 | |
'available')
|
|
92 |
incremental=True)
|
| 121 | 93 |
|
| 122 | 94 |
is_incremental = self.backups_client.show_backup(
|
| 123 | 95 |
backup_incr['id'])['backup']['is_incremental']
|
| 124 | 96 |
self.assertTrue(is_incremental)
|
| 125 | |
|
| 126 | |
self.backups_client.delete_backup(backup_incr['id'])
|
| 127 | |
self.backups_client.wait_for_resource_deletion(backup_incr['id'])
|
| 128 | |
self.backups_client.delete_backup(backup['id'])
|
| 129 | |
self.backups_client.wait_for_resource_deletion(backup['id'])
|