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
diff --git a/tempest/api/volume/test_volumes_backup.py b/tempest/api/volume/test_volumes_backup.py
index 939f1ac..ed37d74 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 @@
@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 @@
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')