Merge "Improve Tempest tests for consistency groups"
diff --git a/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py b/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py
index d5142b6..c057c36 100644
--- a/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py
+++ b/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py
@@ -70,31 +70,16 @@
def test_create_cg_from_multi_typed_populated_cgsnapshot_v2_4(self):
share_name = data_utils.rand_name("tempest-share-name")
share_desc = data_utils.rand_name("tempest-share-description")
- share_size = 1
- share = self.create_share(
- cleanup_in_class=False,
- name=share_name,
- description=share_desc,
- size=share_size,
- consistency_group_id=self.consistency_group['id'],
- share_type_id=self.share_type['id'],
- client=self.shares_v2_client,
- version='2.4',
- )
- share_name2 = data_utils.rand_name("tempest-share-name")
- share_desc2 = data_utils.rand_name("tempest-share-description")
- share_size2 = 1
- share2 = self.create_share(
- cleanup_in_class=False,
- name=share_name2,
- description=share_desc2,
- size=share_size2,
- consistency_group_id=self.consistency_group['id'],
- share_type_id=self.share_type2['id'],
- client=self.shares_v2_client,
- version='2.4',
- )
+ shares = self.create_shares([
+ {'kwargs': {
+ 'cleanup_in_class': False,
+ 'name': share_name,
+ 'description': share_desc,
+ 'consistency_group_id': self.consistency_group['id'],
+ 'share_type_id': st_id,
+ }} for st_id in (self.share_type['id'], self.share_type2['id'])
+ ])
cg_shares = self.shares_v2_client.list_shares(
detailed=True,
@@ -103,7 +88,7 @@
)
cg_share_ids = [s['id'] for s in cg_shares]
- for share_id in [share['id'], share2['id']]:
+ for share_id in (shares[0]['id'], shares[1]['id']):
self.assertIn(share_id, cg_share_ids, 'Share %s not in '
'consistency group %s.' %
(share_id, self.consistency_group['id']))
diff --git a/manila_tempest_tests/tests/api/test_consistency_group_actions.py b/manila_tempest_tests/tests/api/test_consistency_group_actions.py
index 0bf6e58..a932fdf 100644
--- a/manila_tempest_tests/tests/api/test_consistency_group_actions.py
+++ b/manila_tempest_tests/tests/api/test_consistency_group_actions.py
@@ -39,78 +39,52 @@
@classmethod
def resource_setup(cls):
super(ConsistencyGroupActionsTest, cls).resource_setup()
- # Create consistency group
+
+ # Create first consistency group
cls.cg_name = data_utils.rand_name("tempest-cg-name")
cls.cg_desc = data_utils.rand_name("tempest-cg-description")
- cls.consistency_group = cls.create_consistency_group(
- name=cls.cg_name,
- description=cls.cg_desc,
- )
-
- # Create 2 shares inside consistency group
- cls.share_name = data_utils.rand_name("tempest-share-name")
- cls.share_desc = data_utils.rand_name("tempest-share-description")
- cls.share_size = 1
- cls.share = cls.create_share(
- name=cls.share_name,
- description=cls.share_desc,
- size=cls.share_size,
- consistency_group_id=cls.consistency_group['id'],
- metadata={'key': 'value'},
- client=cls.shares_v2_client,
- )
-
- cls.share_name2 = data_utils.rand_name("tempest-share-name")
- cls.share_desc2 = data_utils.rand_name("tempest-share-description")
- cls.share_size2 = 2
- cls.share2 = cls.create_share(
- name=cls.share_name2,
- description=cls.share_desc2,
- size=cls.share_size2,
- consistency_group_id=cls.consistency_group['id'],
- client=cls.shares_v2_client,
- )
-
- cls.cgsnap_name = data_utils.rand_name("tempest-cgsnap-name")
- cls.cgsnap_desc = data_utils.rand_name("tempest-cgsnap-description")
- cls.cgsnapshot = cls.create_cgsnapshot_wait_for_active(
- cls.consistency_group["id"],
- name=cls.cgsnap_name,
- description=cls.cgsnap_desc)
+ cls.cg = cls.create_consistency_group(
+ name=cls.cg_name, description=cls.cg_desc)
# Create second consistency group for purposes of sorting and snapshot
# filtering
- cls.cg_name2 = data_utils.rand_name("tempest-cg-name")
- cls.cg_desc2 = data_utils.rand_name("tempest-cg-description")
- cls.consistency_group2 = cls.create_consistency_group(
- name=cls.cg_name2,
- description=cls.cg_desc2,
- )
+ cls.cg2 = cls.create_consistency_group(
+ name=cls.cg_name, description=cls.cg_desc)
- # Create 1 share in second consistency group
- cls.share_name3 = data_utils.rand_name("tempest-share-name")
- cls.share_desc3 = data_utils.rand_name("tempest-share-description")
- cls.share3 = cls.create_share(
- name=cls.share_name3,
- description=cls.share_desc3,
- size=cls.share_size,
- consistency_group_id=cls.consistency_group2['id'],
- client=cls.shares_v2_client,
- )
+ # Create 2 shares inside first CG and 1 inside second CG
+ cls.share_name = data_utils.rand_name("tempest-share-name")
+ cls.share_desc = data_utils.rand_name("tempest-share-description")
+ cls.share_size = 1
+ cls.share_size2 = 2
+ cls.shares = cls.create_shares([
+ {'kwargs': {
+ 'name': cls.share_name,
+ 'description': cls.share_desc,
+ 'size': size,
+ 'consistency_group_id': cg_id,
+ }} for size, cg_id in ((cls.share_size, cls.cg['id']),
+ (cls.share_size2, cls.cg['id']),
+ (cls.share_size, cls.cg2['id']))
+ ])
- cls.cgsnap_name2 = data_utils.rand_name("tempest-cgsnap-name")
- cls.cgsnap_desc2 = data_utils.rand_name("tempest-cgsnap-description")
+ # Create CG snapshots
+ cls.cgsnap_name = data_utils.rand_name("tempest-cgsnap-name")
+ cls.cgsnap_desc = data_utils.rand_name("tempest-cgsnap-description")
+
+ cls.cgsnapshot = cls.create_cgsnapshot_wait_for_active(
+ cls.cg["id"],
+ name=cls.cgsnap_name,
+ description=cls.cgsnap_desc)
+
cls.cgsnapshot2 = cls.create_cgsnapshot_wait_for_active(
- cls.consistency_group2['id'],
- name=cls.cgsnap_name2,
- description=cls.cgsnap_desc2)
+ cls.cg2['id'], name=cls.cgsnap_name, description=cls.cgsnap_desc)
@test.attr(type=["gate", ])
def test_get_consistency_group_v2_4(self):
# Get consistency group
consistency_group = self.shares_v2_client.get_consistency_group(
- self.consistency_group['id'], version='2.4')
+ self.cg['id'], version='2.4')
# Verify keys
actual_keys = set(consistency_group.keys())
@@ -135,7 +109,7 @@
def test_get_share_v2_4(self):
# Get share
- share = self.shares_v2_client.get_share(self.share['id'],
+ share = self.shares_v2_client.get_share(self.shares[0]['id'],
version='2.4')
# Verify keys
@@ -164,9 +138,8 @@
self.assertEqual(self.share_size, int(share["size"]), msg)
msg = "Expected consistency_group_id: '%s', actual value: '%s'" % (
- self.consistency_group["id"], share["consistency_group_id"])
- self.assertEqual(
- self.consistency_group["id"], share["consistency_group_id"], msg)
+ self.cg["id"], share["consistency_group_id"])
+ self.assertEqual(self.cg["id"], share["consistency_group_id"], msg)
@test.attr(type=["gate", ])
def test_list_consistency_groups_v2_4(self):
@@ -180,8 +153,7 @@
consistency_groups]
# Consistency group ids are in list exactly once
- for cg_id in [self.consistency_group["id"],
- self.consistency_group2["id"]]:
+ for cg_id in (self.cg["id"], self.cg2["id"]):
gen = [cgid["id"] for cgid in consistency_groups
if cgid["id"] == cg_id]
msg = ("Expected id %s exactly once in consistency group list" %
@@ -200,8 +172,7 @@
for cg in consistency_groups]
# Consistency group ids are in list exactly once
- for cg_id in [self.consistency_group["id"],
- self.consistency_group2["id"]]:
+ for cg_id in (self.cg["id"], self.cg2["id"]):
gen = [cgid["id"] for cgid in consistency_groups
if cgid["id"] == cg_id]
msg = ("Expected id %s exactly once in consistency group list" %
@@ -213,7 +184,7 @@
shares = self.shares_v2_client.list_shares(
detailed=True,
- params={'consistency_group_id': self.consistency_group['id']},
+ params={'consistency_group_id': self.cg['id']},
version='2.4'
)
@@ -222,18 +193,19 @@
self.assertEqual(2, len(shares),
'Incorrect number of shares returned. Expected 2, '
'got %s' % len(shares))
- self.assertIn(self.share['id'], share_ids,
+ self.assertIn(self.shares[0]['id'], share_ids,
'Share %s expected in returned list, but got %s'
- % (self.share['id'], share_ids))
- self.assertIn(self.share2['id'], share_ids,
+ % (self.shares[0]['id'], share_ids))
+ self.assertIn(self.shares[1]['id'], share_ids,
'Share %s expected in returned list, but got %s'
- % (self.share['id'], share_ids))
+ % (self.shares[0]['id'], share_ids))
@test.attr(type=["gate", ])
def test_get_cgsnapshot_v2_4(self):
+
# Get consistency group
consistency_group = self.shares_v2_client.get_consistency_group(
- self.consistency_group['id'], version='2.4')
+ self.cg['id'], version='2.4')
# Verify keys
actual_keys = set(consistency_group.keys())
@@ -265,11 +237,11 @@
'Unexpected number of cgsnapshot members. Expected '
'2, got %s.' % len(cgsnapshot_members))
# Verify each share is represented in the cgsnapshot appropriately
- for share_id in [self.share['id'], self.share2['id']]:
+ for share_id in (self.shares[0]['id'], self.shares[1]['id']):
self.assertIn(share_id, member_share_ids,
'Share missing %s missing from cgsnapshot. Found %s.'
% (share_id, member_share_ids))
- for share in [self.share, self.share2]:
+ for share in (self.shares[0], self.shares[1]):
for member in cgsnapshot_members:
if share['id'] == member['share_id']:
self.assertEqual(share['size'], member['size'])