diff options
Diffstat (limited to 'gluster/gfapi.py')
-rwxr-xr-x | gluster/gfapi.py | 44 |
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)) |