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)
+
+ 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: