summaryrefslogtreecommitdiffstats
path: root/glusterfs/gfapi.py
diff options
context:
space:
mode:
Diffstat (limited to 'glusterfs/gfapi.py')
-rwxr-xr-xglusterfs/gfapi.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/glusterfs/gfapi.py b/glusterfs/gfapi.py
index 2d51a96..af25d18 100755
--- a/glusterfs/gfapi.py
+++ b/glusterfs/gfapi.py
@@ -104,6 +104,12 @@ class File(object):
raise OSError(err, os.strerror(err))
return ret
+ def fgetsize(self):
+ """
+ Return the size of a file, reported by fstat()
+ """
+ return self.fstat().st_size
+
def fstat(self):
"""
Returns Stat object for this file.
@@ -137,9 +143,18 @@ class File(object):
"""
return api.glfs_lseek(self.fd, pos, how)
- def read(self, buflen, flags=0):
+ def read(self, buflen=-1):
+ """
+ read file
+
+ :param buflen: length of read buffer. If less than 0, then whole
+ file is read. Default is -1.
+ :returns: buffer of size buflen
+ """
+ if buflen < 0:
+ buflen = self.fgetsize()
rbuf = ctypes.create_string_buffer(buflen)
- ret = api.glfs_read(self.fd, rbuf, buflen, flags)
+ ret = api.glfs_read(self.fd, rbuf, buflen, 0)
if ret > 0:
return rbuf
elif ret < 0: