summaryrefslogtreecommitdiffstats
path: root/gluster
diff options
context:
space:
mode:
authorPrashanth Pai <ppai@redhat.com>2018-01-11 17:53:08 +0530
committerPrashanth Pai <ppai@redhat.com>2018-01-11 17:53:27 +0530
commitb5073b090535744608164e266badba919298f894 (patch)
tree2a3803cb22c74acabebc2462458cd84bcc49b7d1 /gluster
parentb125ff3e83283f231295873118ed7a170f4284d1 (diff)
Add get_volume_id() API
Change-Id: Ia4c378c5b1657bb4ec23c7057c7cbc49c1b31484 Signed-off-by: Prashanth Pai <ppai@redhat.com>
Diffstat (limited to 'gluster')
-rw-r--r--gluster/gfapi/api.py5
-rw-r--r--gluster/gfapi/gfapi.py19
2 files changed, 24 insertions, 0 deletions
diff --git a/gluster/gfapi/api.py b/gluster/gfapi/api.py
index c440de6..971e98c 100644
--- a/gluster/gfapi/api.py
+++ b/gluster/gfapi/api.py
@@ -510,3 +510,8 @@ glfs_utimens = gfapi_prototype('glfs_utimens', ctypes.c_int,
ctypes.c_void_p,
ctypes.c_char_p,
ctypes.POINTER(Timespec))
+
+glfs_get_volumeid = gfapi_prototype('glfs_get_volumeid', ctypes.c_int,
+ ctypes.c_void_p,
+ ctypes.c_char_p,
+ ctypes.c_size_t)
diff --git a/gluster/gfapi/gfapi.py b/gluster/gfapi/gfapi.py
index d48aa06..c01d534 100644
--- a/gluster/gfapi/gfapi.py
+++ b/gluster/gfapi/gfapi.py
@@ -14,6 +14,7 @@ import math
import time
import stat
import errno
+import uuid
from collections import Iterator
from gluster.gfapi import api
@@ -666,6 +667,7 @@ class Volume(object):
self.host = host
self.volname = volname
+ self.volid = None
self.protocol = proto
self.port = port
@@ -770,6 +772,23 @@ class Volume(object):
self.log_level = log_level
@validate_mount
+ def get_volume_id(self):
+ """
+ Returns the volume ID (of type uuid.UUID) for the currently mounted
+ volume.
+ """
+ if self.volid != None:
+ return self.volid
+ size = 16
+ buf = ctypes.create_string_buffer(size)
+ ret = api.glfs_get_volumeid(self.fs, buf, size)
+ if ret < 0:
+ err = ctypes.get_errno()
+ raise OSError(err, os.strerror(err))
+ self.volid = uuid.UUID(bytes=buf.raw)
+ return self.volid
+
+ @validate_mount
def access(self, path, mode):
"""
Use the real uid/gid to test for access to path.