def test_wipe_random(self, mock_wipe_file): with simple_mocked_open() as mock_open: block.wipe_volume(self.dev, mode='random') mock_open.assert_called_with('/dev/urandom', 'rb') mock_wipe_file.assert_called_with( self.dev, exclusive=True, reader=mock_open.return_value.__enter__().read)
def test_wipe_pvremove(self, mock_util, mock_lvm): block.wipe_volume(self.dev, mode='pvremove') mock_util.subp.assert_called_with( ['pvremove', '--force', '--force', '--yes', self.dev], rcs=[0, 5], capture=True) self.assertTrue(mock_lvm.lvm_scan.called)
def _wipe_superblock(blockdev, exclusive=True, strict=True): """ No checks, just call wipe_volume """ retries = [1, 3, 5, 7] LOG.info('wiping superblock on %s', blockdev) for attempt, wait in enumerate(retries): LOG.debug('wiping %s attempt %s/%s', blockdev, attempt + 1, len(retries)) try: block.wipe_volume(blockdev, mode='superblock', exclusive=exclusive, strict=strict) LOG.debug('successfully wiped device %s on attempt %s/%s', blockdev, attempt + 1, len(retries)) return except OSError: if attempt + 1 >= len(retries): raise else: LOG.debug( "wiping device '%s' failed on attempt" " %s/%s. sleeping %ss before retry", blockdev, attempt + 1, len(retries), wait) time.sleep(wait)
def test_wipe_superblock(self, mock_quick_zero): block.wipe_volume(self.dev, mode='superblock') mock_quick_zero.assert_called_with(self.dev, exclusive=True, partitions=False) block.wipe_volume(self.dev, exclusive=True, mode='superblock-recursive') mock_quick_zero.assert_called_with(self.dev, exclusive=True, partitions=True)
def test_bad_input(self): with self.assertRaises(ValueError): block.wipe_volume(self.dev, mode='invalidmode')
def test_wipe_zero(self, mock_wipe_file): with simple_mocked_open(): block.wipe_volume(self.dev, exclusive=True, mode='zero') mock_wipe_file.assert_called_with(self.dev, exclusive=True)