예제 #1
0
    def test_tranfer_data_to_rbd(self):
        service = CephBackupService(self.ctxt)

        with tempfile.NamedTemporaryFile() as test_file:
            checksum = hashlib.sha256()

            def write_data(inst, data, offset):
                checksum.update(data)
                test_file.write(data)

            self.stubs.Set(service.rbd.Image, "write", write_data)

            service._transfer_data(self.volume_file, service.rbd.Image(), "foo", self.length, dest_is_rbd=True)

            # Ensure the files are equal
            self.assertEquals(checksum.digest(), self.checksum.digest())
예제 #2
0
    def test_tranfer_data_from_rbd(self):
        service = CephBackupService(self.ctxt)

        with tempfile.NamedTemporaryFile() as test_file:
            self.volume_file.seek(0)

            def read_data(inst, offset, length):
                return self.volume_file.read(self.length)

            self.stubs.Set(service.rbd.Image, "read", read_data)

            service._transfer_data(service.rbd.Image(), test_file, "foo", self.length)

            checksum = hashlib.sha256()
            test_file.seek(0)
            for c in xrange(0, self.num_chunks):
                checksum.update(test_file.read(self.chunk_size))

            # Ensure the files are equal
            self.assertEquals(checksum.digest(), self.checksum.digest())