| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Normal users do not have permissions to read or write to
/var/run/glusterd.socket
Skip those tests if run as non-root user.
Change-Id: I1c1f805c362746036f5d8fe13e73ebad188388ea
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Superusers should not be required to use this API with default settings.
Provide a disable_logging method of Volume. Ensure that set_logging
gets called with new values.
Change-Id: Ia27a682c96d6ca28f85d43f9d8483f08d1dc6367
Signed-off-by: Alpha <alpha@pokesplash.net>
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
| |
Change-Id: Ia4c378c5b1657bb4ec23c7057c7cbc49c1b31484
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
| |
Change-Id: I17078b6d20372c3935f7bcd8c82f55f96096dd87
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, many source files are directly placed under gluster/ dir:
gluster/exceptions.py
gluster/gfapi.py
gluster/utils.py
When multiple packages (RPMs) are sharing the same gluster namespace,
these source files will conflict if there are source files with same
names provided by other projects.
Fix: Move all source files in gluster/* to gluster/gfapi/*
Note that this patch does not break how existing users import gfapi.
Change-Id: Idf9d07eefafe8333215d6c61201c97c982565ba9
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This change:
* Implements copytree() API which is very similar to the one provided
by shutils built-in module in Python.
* Enhances walk() and rmtree() implementation to leverage scandir()
optimization.
Change-Id: Iac5aef1a5c558fdeceac4e5128339141a3ebd4d1
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch does the following:
* Implements Volume.listdir_with_stat() API which internally invokes
glfs_readdirplus_r to return directory entries along with stat for
each entry.
* Implements Volume.scandir() which is similar to os.scandir() present
in Python 3.5
* Makes Dir class iterable.
* Enables Dir class to raise OSError when glfs_readdir* calls fail.
Previously, these failures were silently being ignored and treated as
a case of EOF.
Change-Id: Id918c39a7ef3882553e9bcd3fbf9455ee1c25a83
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
pep8 and functests were failing in CentOS CI as reported here:
http://comments.gmane.org/gmane.comp.file-systems.gluster.devel/15697
Functional tests were failing because test_copy2() was invoking copy()
method instead of copy2(). Further, tests were doing assertions on
atime which gets changed every time the file is read.
Change-Id: I692e9f44911c32c18b1f92c17b6b455ba2d196a1
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
The repo had mixed references to both Apache BSD license and GPL
licenses. This change removes references to Apache license.
The license of this project is now same as that of GlusterFS.
Change-Id: I39b72f59d14af304729560dd1d59fe307cd1ac1d
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
| |
Change-Id: I2de796e7d53732c5a967c6194a43378171fcb3d6
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
As glfs and glfd are pointers to memory locations, passing invalid
values of glfs and glfd to the libgfapi C library can result in
segfault. This patch introduces decorators that validate glfs
and glfd before calling correspoding C APIs.
Change-Id: I4e86bd8e436e23cd41f75f428d246939c820bb9c
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch:
* Implements Volume.utime() which is very similar to os.utime() present
in Python. https://docs.python.org/2/library/os.html#os.utime
* Implements File.zerofill() which exposes glfs_zerofill.
* Fixes function prototype of fallocate and discard. Adds functional
tests for the same.
Change-Id: Icb8d3a571998c31d6bf9b139ca253af59f6fc3f4
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|\ |
|
| |
| |
| |
| |
| | |
Change-Id: I96b6f2a501d52d66694e67990d6b65d4eb920fa2
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|/
|
|
|
|
|
|
|
|
| |
readinto()
This method is useful when you have to read a large file over multiple
read calls. While read() allocates a buffer every time it's invoked,
readinto() copies data to an already allocated buffer passed to it.
Change-Id: Ic8a3aa0e544e09e05101c983b329c91864832e4a
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
| |
This change also fixes a mismatch in glfs_seek() function signature.
Change-Id: I3d336a2fbfec9ba921b253f6d97616485cadec98
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Without this change, user (developer) will have to modify test.conf
(tracked by git) every time he has to run functional tests or has to
edit /etc/hosts and add entry for 'gfshost'
Change-Id: I6d41a657b0cae614513e2925e73138da46ddaf04
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|/
|
|
|
|
|
|
|
|
| |
Updated tests to include OSError messages
Added error reasons to LibgfapiException exceptions
BUG 1196161: https://bugzilla.redhat.com/show_bug.cgi?id=1196161
Change-Id: Iddf40751696874ffcaa50cd9d5ecc06c4993baf2
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch, calling Volume.{f}open in a thread other than main
thread was causing segmentation fault (test included). The reason is
missing ctypes declarations.
Also, this patch fixes errno handling for these two functions, making
couple of FIXME/TODO notes go away.
Change-Id: Iae9638b7d16cc0e0c587fd21a94be677f2d4af59
Signed-off-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
|
|
|
|
| |
Change-Id: Iced9bb59a33c38964e012f9d6c9ef13efc1f184c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As per the current code, this is the behavior:
>>> with v.fopen("/abc", 'r') as f:
... data = f.read(5)
>>> print data
<ctypes.c_char_Array_2 object at 0x7fda7d6bbb90>
>>> print data.value
hello
>>>
It's incorrect to return a ctypes internal object back to the user.
In Python 2.x, read() always returns a string. It's really upto
the consumer to decode this string into whatever encoding it was
written with.
This patch reverts parts of this old change:
Ia2bb47343880cbf7121fed9510e4cfa085fe23bd
Change-Id: Ia1d3e5834be2b856776bd3cf8382a17ffd61d5df
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Added commonly used path based operations that were missing from
the Volume class.
* Fixed function prototypes at places where it should be ssize_t
and not size_t. This caused overflow error at times.
* Added doc strings wherever they were missing.
Change-Id: I6ce28038da3cd0f89ab075045bb4092dd95e21c4
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Volume.fopen() method mimics Python's built-in File object
Example:
with v.fopen("/path/to/file", "w") as f:
f.write("hello world")
fopen() returns a File object.
Volume.open() method mimics os.open() Python API.
Example:
with File(v.open("/path/to/file", os.O_WRONLY | os.O_CREAT)) as f:
f.write("hello world")
open() returns the raw glfd that (as of today) needs to be passed to File class.
In future, more APIs will be provided to directly use the glfd returned.
Unlike their C versions, these methods do not return
anything on success. If methods fail, exceptions are raised.
Added docstrings to methods in File class.
Change-Id: Ie46fc77a899806d396762e6740e1538ea298d6e2
Signed-off-by: Prashanth Pai <ppai@redhat.com>
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
* Validate inputs during initialization of Volume object.
* Move glfs_new() and glfs_init() into mount() method.
* Provide user consumable unmount() method.
* Provide "mounted" property to Volume object. Users can now check state
whether a volume is virtual mounted or not.
Change-Id: Idc53ee7f9386ed995315bd5fb492a7d36f44875f
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
This project has to be shipped as rpm for various distributions like
Fedora,Centos,RHEL.etc, so that the clients like vdsm, openstack..etc
can make use of python bindings of libgfapi library of GlusterFS.
This patch introduce first version of the spec file for this project.
Change-Id: Icb5d83fc8b278a3cd7b89d55b5fda15a84c2fa82
Signed-off-by: Humble Devassy Chirammal <hchiramm@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal is to consolidate all gluster related python packages
under single namespace "gluster".
From client's perspective, it was:
from glusterfs import gfapi
Henceforth, it wil be:
from gluster import gfapi
Change-Id: If2509f570563ae7660892963607c9474313f803c
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
|
|
|
|
|
| |
Change-Id: Iba5f4e72a257adeb8ec78b267dfdef26a1ec66f1
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
| |
tests were failing due to an issue with loremipsum package
Change-Id: I9c364f48dc7fb642f5cd7a6371a53a0aa137618b
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The order of elements in list returned by listdir() can vary and may
not be sorted. This caused assertEqual in "test_listdir" to fail.
* Also, some systems may have xattrs belonging to selinux. So, a
listxattr can list them too.
* Allow hostname/ip and volume name to be configured easily by setting
it in test.conf. This enables functional tests to use a non-local volume.
* Cleanup volume before and after running functional tests.
* Added MANIFEST.in and LICENSE file
Change-Id: Icfa6eb60e8d8e7ed4d6ab8190a2a2c80688999a3
Signed-off-by: Prashanth Pai <ppai@redhat.com>
|
|
|
|
|
|
|
|
| |
This support will help other consumers to get the statvfs
details.
Change-Id: Iee4e84a515ff80f24add812ad6fcf84c992bf356
Signed-off-by: hchiramm <hchiramm@redhat.com>
|
|
|
|
|
|
|
|
| |
This patch adds new functions that are used in gluster-swift.
These functions are: dup, lseek, getatime, getctime, getmtime
Change-Id: I09036f7e393a89e09913f7f6de173e1eca8dca95
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
the os python module does not offer a creat function,
new files are created using the open function and
by passing O_CREAT flag. We are changing gfapi.py to
function the same way.
Change-Id: I5e084b200bb657e3124d3e620a47160e790cd1fe
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
making this change to avoid package conflicts with
gluster-swift and glusterfs-api rpm. Eventually we will remove
the python code from glusterfs-api rpm and create a new rpm package
from libgfapi-python.
Change-Id: I1b20cd747e500aed17fba89f96e62423325b5230
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
| |
These new functions are required to be used by gluster-swift
Change-Id: Ifb68f2b4494bf375feabb130831f9e076dc5b94a
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
| |
Added same license as gluster-swift
Change-Id: Ib190b4e6def5d2ab87b71a04142f6344060d8a6d
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
These are mostly helper methods similar to functions provided
by the python os module
helpfer functions added: exists, getsize, isdir, isfile, islink
glfs functions added: removexattr, stat
Change-Id: I3581a96224151481292a4e506d8c52b8acf79e49
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
both functions were only supporting text data and needed to be
changed to support binary data.
The issue was found while testing libgfapi-python with smallfile
(https://github.com/bengland2/smallfile).
When calling gflfs_write, ctypes has no problem converting strings
to the correct C data type, but is unable to handle bytearray:
b = bytearray(1024)
with vol.create(path, os.O_WRONLY | os.O_EXCL, 0644) as fd:
fd.write(b)
It would throw this error:
exception: argument 2: <type 'exceptions.TypeError'>:
Don't know how to convert parameter 2
reference: http://docs.python.org/2/library/ctypes.html#calling-functions-continued
Change-Id: Ia2bb47343880cbf7121fed9510e4cfa085fe23bd
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
|
|
|
|
|
|
| |
add mode parameter to mkdir to allow setting the dir access
mode when the directory is being created
Change-Id: I6f1ed0c8800fb65a30448e6082cf55b8220a06d4
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|
|
adding a few functional tests and removing old
tests from source code
Change-Id: Iefcb091d614f2825592943cfb42847b5865322c6
Signed-off-by: Thiago da Silva <thiago@redhat.com>
|