From a7fd37abe982fa86943e8b23233fa8ad0fa1c1b9 Mon Sep 17 00:00:00 2001 From: lkuchlan Date: Sun, 12 Feb 2017 16:25:54 +0200 Subject: [PATCH] Verify metadata preservation after backup restore Cinder backup supports the conservation of volumes' metadata. The test covers a case of metadata of a volume which has been customized with the following parameters and values in the metadata. Change-Id: Iaa8c38eaac06eacb504d050b74ce76f64d9b3ba0 --- tempest/api/volume/test_volumes_backup.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tempest/api/volume/test_volumes_backup.py b/tempest/api/volume/test_volumes_backup.py index 939f1acf9c..ed37d74e7c 100644 --- a/tempest/api/volume/test_volumes_backup.py +++ b/tempest/api/volume/test_volumes_backup.py @@ -13,6 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. +from testtools import matchers + from tempest.api.volume import base from tempest.common.utils import data_utils from tempest.common import waiters @@ -49,10 +51,15 @@ class VolumesBackupsV2Test(base.BaseVolumeTest): @decorators.idempotent_id('a66eb488-8ee1-47d4-8e9f-575a095728c6') def test_volume_backup_create_get_detailed_list_restore_delete(self): - # Create backup - volume = self.create_volume() + # Create a volume with metadata + metadata = {"vol-meta1": "value1", + "vol-meta2": "value2", + "vol-meta3": "value3"} + volume = self.create_volume(metadata=metadata) self.addCleanup(self.volumes_client.delete_volume, volume['id']) + + # Create a backup backup_name = data_utils.rand_name( self.__class__.__name__ + '-Backup') description = data_utils.rand_name("volume-backup-description") @@ -74,7 +81,15 @@ class VolumesBackupsV2Test(base.BaseVolumeTest): self.assertIn((backup['name'], backup['id']), [(m['name'], m['id']) for m in backups]) - self.restore_backup(backup['id']) + restored_volume = self.restore_backup(backup['id']) + + restored_volume_metadata = self.volumes_client.show_volume( + restored_volume['volume_id'])['volume']['metadata'] + + # Verify the backups has been restored successfully + # with the metadata of the source volume. + self.assertThat(restored_volume_metadata.items(), + matchers.ContainsAll(metadata.items())) @decorators.idempotent_id('07af8f6d-80af-44c9-a5dc-c8427b1b62e6') @test.services('compute')