int ceph_openat(ceph_mount_info *cmount, int dirfd, const char *relpath, int flags, mode_t mode)
int ceph_mkdir(ceph_mount_info *cmount, const char *path, mode_t mode)
+ int ceph_mkdirat(ceph_mount_info *cmount, int dirfd, const char *relpath, mode_t mode)
int ceph_mksnap(ceph_mount_info *cmount, const char *path, const char *name, mode_t mode, snap_metadata *snap_metadata, size_t nr_snap_metadata)
int ceph_rmsnap(ceph_mount_info *cmount, const char *path, const char *name)
int ceph_get_snap_info(ceph_mount_info *cmount, const char *path, snap_info *snap_info)
if ret < 0:
raise make_ex(ret, "error in mkdir {}".format(path.decode('utf-8')))
+ def mkdirat(self, dirfd, relpath, mode):
+ self.require_state("mounted")
+ if not isinstance(mode, int):
+ raise TypeError('"mode" must be an int')
+ if not isinstance(dirfd, int):
+ raise TypeError('"_dirfd" must be an int')
+
+ relpath = cstr(relpath, 'relpath')
+ cdef:
+ char* _relpath = relpath
+ int _mode = mode
+ int _dirfd = dirfd
+
+ with nogil:
+ ret = ceph_mkdirat(self.cluster, _dirfd, _relpath, _mode)
+
+ if ret < 0:
+ raise make_ex(ret, f"error in mkdirat: {relpath.decode('utf-8')}")
+
def mksnap(self, path, name, mode, metadata={}) -> int:
"""
Create a snapshot.
int ceph_mkdir(ceph_mount_info *cmount, const char *path, mode_t mode):
pass
+ int ceph_mkdir(ceph_mount_info *cmount, int dirfd, const char *relpath, mode_t mode):
+ pass
int ceph_mksnap(ceph_mount_info *cmount, const char *path, const char *name, mode_t mode, snap_metadata *snap_metadata, size_t nr_snap_metadata):
pass
int ceph_rmsnap(ceph_mount_info *cmount, const char *path, const char *name):