mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
lvmdbustest: Add test for wipefs
Ensure that if an external program or user calles wipefs on a PV that we correctly update the state of the daemon.
This commit is contained in:
parent
0f56c1ad12
commit
5a6ae2d4d8
@ -2385,6 +2385,40 @@ class TestDbusService(unittest.TestCase):
|
||||
finally:
|
||||
set_exec_mode(g_lvm_shell)
|
||||
|
||||
@staticmethod
|
||||
def _wipe_it(block_device):
|
||||
cmd = ["/usr/sbin/wipefs", '-a', block_device]
|
||||
config = Popen(cmd, stdout=PIPE, stderr=PIPE, close_fds=True, env=os.environ)
|
||||
config.communicate()
|
||||
if config.returncode != 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
def test_wipefs(self):
|
||||
# Ensure we update the status of the daemon if an external process clears a PV
|
||||
pv = self.objs[PV_INT][0]
|
||||
pv_device_path = pv.Pv.Name
|
||||
|
||||
wipe_result = TestDbusService._wipe_it(pv_device_path)
|
||||
self.assertTrue(wipe_result)
|
||||
|
||||
if wipe_result:
|
||||
# Need to wait a bit before the daemon will reflect the change
|
||||
start = time.time()
|
||||
found = True
|
||||
while found and time.time() < start + 10:
|
||||
if (self._lookup(pv_device_path) == "/"):
|
||||
found = False
|
||||
|
||||
print("Note: Time for udev update = %f" % (time.time() - start))
|
||||
# Make sure that the service no longer has it
|
||||
rc = self._lookup(pv_device_path)
|
||||
self.assertEqual(rc, '/')
|
||||
|
||||
# Put it back
|
||||
pv_object_path = self._pv_create(pv_device_path)
|
||||
self.assertNotEqual(pv_object_path, '/')
|
||||
|
||||
|
||||
class AggregateResults(object):
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user