summaryrefslogtreecommitdiffstats
path: root/gluster/gfapi.py
diff options
context:
space:
mode:
Diffstat (limited to 'gluster/gfapi.py')
-rwxr-xr-xgluster/gfapi.py44
1 files changed, 24 insertions, 20 deletions
diff --git a/gluster/gfapi.py b/gluster/gfapi.py
index 5bbb8cb..3a344c8 100755
--- a/gluster/gfapi.py
+++ b/gluster/gfapi.py
@@ -432,28 +432,31 @@ class Volume(object):
self.fs = api.glfs_new(self.volname)
if not self.fs:
- raise LibgfapiException("glfs_new(%s) failed." % (self.volname))
+ err = ctypes.get_errno()
+ raise LibgfapiException("glfs_new(%s) failed: %s" %
+ (self.volname, os.strerror(err)))
ret = api.glfs_set_volfile_server(self.fs, self.protocol,
self.host, self.port)
if ret < 0:
- # FIXME: For some reason, get_errno() is not able to capture
- # proper errno. Until then..
- # https://bugzilla.redhat.com/show_bug.cgi?id=1196161
+ err = ctypes.get_errno()
raise LibgfapiException("glfs_set_volfile_server(%s, %s, %s, "
- "%s) failed." % (self.fs, self.protocol,
- self.host, self.port))
+ "%s) failed: %s" % (self.fs, self.protocol,
+ self.host, self.port,
+ os.strerror(err)))
self.set_logging(self.log_file, self.log_level)
if self.fs and not self._mounted:
ret = api.glfs_init(self.fs)
if ret < 0:
- raise LibgfapiException("glfs_init(%s) failed." % (self.fs))
+ err = ctypes.get_errno()
+ raise LibgfapiException("glfs_init(%s) failed: %s" %
+ (self.fs, os.strerror(err)))
else:
self._mounted = True
- def unmount(self):
+ def umount(self):
"""
Unmount a mounted GlusterFS volume.
@@ -463,15 +466,17 @@ class Volume(object):
if self.fs:
ret = self._api.glfs_fini(self.fs)
if ret < 0:
- raise LibgfapiException("glfs_fini(%s) failed." % (self.fs))
+ err = ctypes.get_errno()
+ raise LibgfapiException("glfs_fini(%s) failed: %s" %
+ (self.fs, os.strerror(err)))
else:
- # Succeeded. Protect against multiple unmount() calls.
+ # Succeeded. Protect against multiple umount() calls.
self._mounted = False
self.fs = None
def __del__(self):
try:
- self.unmount()
+ self.umount()
except LibgfapiException:
pass
@@ -497,8 +502,10 @@ class Volume(object):
if self.fs:
ret = api.glfs_set_logging(self.fs, self.log_file, self.log_level)
if ret < 0:
- raise LibgfapiException("glfs_set_logging(%s, %s) failed." %
- (self.log_file, self.log_level))
+ err = ctypes.get_errno()
+ raise LibgfapiException("glfs_set_logging(%s, %s) failed: %s" %
+ (self.log_file, self.log_level,
+ os.strerror(err)))
self.log_file = log_file
self.log_level = log_level
@@ -777,9 +784,9 @@ class Volume(object):
raise ValueError("Invalid mode")
else:
if (os.O_CREAT & flags) == os.O_CREAT:
- fd = api.client.glfs_creat(self.fs, path, flags, 0666)
+ fd = api.glfs_creat(self.fs, path, flags, 0666)
else:
- fd = api.client.glfs_open(self.fs, path, flags)
+ fd = api.glfs_open(self.fs, path, flags)
if not fd:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
@@ -803,12 +810,9 @@ class Volume(object):
raise TypeError("flags must evaluate to an integer")
if (os.O_CREAT & flags) == os.O_CREAT:
- # FIXME:
- # Without direct call to _api the functest fails on creat and open.
-
- fd = api.client.glfs_creat(self.fs, path, flags, mode)
+ fd = api.glfs_creat(self.fs, path, flags, mode)
else:
- fd = api.client.glfs_open(self.fs, path, flags)
+ fd = api.glfs_open(self.fs, path, flags)
if not fd:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))