Example #1
0
    def test_update_and_read(self):
        with temporaryPath() as srcPath, \
                directio.DirectFile(srcPath, "w") as f:
            f.write(self.DATA[:BLOCK_SIZE])

            with directio.DirectFile(srcPath, "r+") as f:
                f.seek(BLOCK_SIZE)
                f.write(self.DATA[BLOCK_SIZE:])

            with io.open(srcPath, "rb") as f:
                self.assertEquals(f.read(), self.DATA)
Example #2
0
    def test_small_writes(self):
        with temporaryPath() as srcPath, \
                directio.DirectFile(srcPath, "w") as f:
            f.write(self.DATA[:BLOCK_SIZE])
            f.write(self.DATA[BLOCK_SIZE:])

            with io.open(srcPath, "rb") as f:
                self.assertEquals(f.read(), self.DATA)
Example #3
0
    def _putMetadata(cls, metaId, meta):
        vgname, offs = metaId

        data = cls.formatMetadata(meta)
        data += "\0" * (sc.METADATA_SIZE - len(data))

        metavol = lvm.lvPath(vgname, sd.METADATA)
        with directio.DirectFile(metavol, "r+") as f:
            f.seek(offs * sc.METADATA_SIZE)
            f.write(data)
Example #4
0
    def _putMetadata(cls, metaId, meta):
        vgname, offs = metaId

        data = cls.formatMetadata(meta)
        data += "\0" * (sc.METADATA_SIZE - len(data))

        sd = sdCache.produce_manifest(vgname)
        metavol = sd.metadata_volume_path()
        with directio.DirectFile(metavol, "r+") as f:
            f.seek(offs * sc.METADATA_SIZE)
            f.write(data)
Example #5
0
 def test_read_all(self):
     with temporaryPath(data=self.DATA) as srcPath, \
             directio.DirectFile(srcPath, "r") as direct_file, \
             io.open(srcPath, "rb") as buffered_file:
         self.assertEquals(direct_file.read(), buffered_file.read())
Example #6
0
 def test_write_unaligned(self):
     with temporaryPath(data=self.DATA) as srcPath, \
             directio.DirectFile(srcPath, "r+") as f:
         self.assertRaises(ValueError, f.write, "x" * 511)
         with io.open(srcPath, "rb") as f:
             self.assertEqual(f.read(), self.DATA)
Example #7
0
 def test_write(self):
     with temporaryPath() as srcPath, \
             directio.DirectFile(srcPath, "w") as f:
         f.write(self.DATA)
         with io.open(srcPath, "rb") as f:
             self.assertEquals(f.read(), self.DATA)
Example #8
0
 def test_seek_and_read(self, offset):
     with temporaryPath(data=self.DATA) as srcPath, \
             directio.DirectFile(srcPath, "r") as f:
         f.seek(offset)
         self.assertEquals(f.read(), self.DATA[offset:])
Example #9
0
 def test_read(self, size):
     with temporaryPath(data=self.DATA) as srcPath, \
             directio.DirectFile(srcPath, "r") as f:
         self.assertEquals(f.read(size), self.DATA[:size])