Merge "fix cinder ceph backup driver padding error"

This commit is contained in:
Jenkins 2016-06-26 19:47:50 +00:00 committed by Gerrit Code Review
commit 030f5d2767
2 changed files with 11 additions and 1 deletions

View File

@ -283,7 +283,7 @@ class CephBackupDriver(driver.BackupDriver):
if self._file_is_rbd(volume):
volume.rbd_image.discard(offset, length)
else:
zeroes = '\0' * length
zeroes = '\0' * self.chunk_size
chunks = int(length / self.chunk_size)
for chunk in range(0, chunks):
LOG.debug("Writing zeroes chunk %d", chunk)

View File

@ -667,8 +667,12 @@ class BackupCephTestCase(test.TestCase):
self.assertEqual(2, image.write.call_count)
self.assertEqual(2, image.flush.call_count)
self.assertFalse(image.discard.called)
zeroes = '\0' * self.service.chunk_size
image.write.assert_has_calls([mock.call(zeroes, 0),
mock.call(zeroes, self.chunk_size)])
image.reset_mock()
image.write.reset_mock()
# Now test with a remainder.
with mock.patch.object(self.service, '_file_is_rbd') as \
@ -681,6 +685,12 @@ class BackupCephTestCase(test.TestCase):
self.assertEqual(3, image.write.call_count)
self.assertEqual(3, image.flush.call_count)
self.assertFalse(image.discard.called)
image.write.assert_has_calls([mock.call(zeroes,
self.chunk_size * 2),
mock.call(zeroes,
self.chunk_size * 3),
mock.call('\0',
self.chunk_size * 4)])
@common_mocks
def test_delete_backup_snapshot(self):