Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kraken: cephfs: src/test/pybind/test_cephfs.py fails #16114

Merged
merged 2 commits into from Jul 19, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
25 changes: 18 additions & 7 deletions src/pybind/cephfs/cephfs.pyx
Expand Up @@ -329,7 +329,8 @@ cdef class LibCephFS(object):
self.state = "uninitialized"
if rados_inst is not None:
if auth_id is not None or conffile is not None or conf is not None:
raise InvalidValue("May not pass RADOS instance as well as other configuration")
raise make_ex(errno.EINVAL,
"May not pass RADOS instance as well as other configuration")

self.create_with_rados(rados_inst)
else:
Expand Down Expand Up @@ -632,16 +633,26 @@ cdef class LibCephFS(object):
if flags == '':
cephfs_flags = os.O_RDONLY
else:
access_flags = 0;
for c in flags:
if c == 'r':
cephfs_flags |= os.O_RDONLY
access_flags = 1;
elif c == 'w':
cephfs_flags |= os.O_WRONLY | os.O_TRUNC | os.O_CREAT
elif c == '+':
cephfs_flags |= os.O_RDWR
access_flags = 2;
cephfs_flags |= os.O_TRUNC | os.O_CREAT
elif access_flags > 0 and c == '+':
access_flags = 3;
else:
raise OperationNotSupported(
"open flags doesn't support %s" % c)
raise make_ex(errno.EOPNOTSUPP,
"open flags doesn't support %s" % c)

if access_flags == 1:
cephfs_flags |= os.O_RDONLY;
elif access_flags == 2:
cephfs_flags |= os.O_WRONLY;
else:
cephfs_flags |= os.O_RDWR;

elif isinstance(flags, int):
cephfs_flags = flags
else:
Expand Down