Setup loop devices early on in the Ceph tests

There appears to be a race condition between the loop device creation
and its actual usage. In order to prevent that, this PR setups these
devices during the test initialization instead of right before using
them in the 'add-disk' tests.
This commit is contained in:
Luciano Lo Giudice
2022-04-12 17:30:25 -03:00
parent c0d1a73259
commit f09bc087b3
+6 -2
View File
@@ -186,6 +186,11 @@ class CephTest(test_utils.OpenStackBaseTest):
def setUpClass(cls):
"""Run the ceph's common class setup."""
super(CephTest, cls).setUpClass()
cls.loop_devs = {} # Maps osd -> loop device
for osd in (x.entity_id for x in zaza_model.get_units('ceph-osd')):
zaza_model.add_storage(osd, 'cache-devices', 'cinder', 10)
loop_dev = zaza_utils.add_loop_device(osd, 10).get('Stdout')
cls.loop_devs[osd] = loop_dev
def osd_out_in(self, services):
"""Run OSD out and OSD in tests.
@@ -565,8 +570,7 @@ class CephTest(test_utils.OpenStackBaseTest):
osds = [x.entity_id for x in zaza_model.get_units('ceph-osd')]
params = []
for unit in osds:
zaza_model.add_storage(unit, 'cache-devices', 'cinder', 10)
loop_dev = zaza_utils.add_loop_device(unit, 10).get('Stdout')
loop_dev = self.loop_devs[unit]
params.append({'unit': unit, 'device': loop_dev})
action_obj = zaza_model.run_action(
unit_name=unit,