|
| XrdCephOssDir (XrdCephOss *cephoss) |
|
virtual | ~XrdCephOssDir () |
|
virtual int | Opendir (const char *, XrdOucEnv &) |
|
virtual int | Readdir (char *buff, int blen) |
|
virtual int | Close (long long *retsz=0) |
|
virtual int | StatRet (struct stat *buff) |
|
virtual int | Fchmod (mode_t mode) |
|
virtual void | Flush () |
| Flush filesystem cached pages for this file (used for checksums).
|
|
virtual int | Fstat (struct stat *buf) |
|
virtual int | Fsync () |
|
virtual int | Fsync (XrdSfsAio *aiop) |
|
virtual int | Ftruncate (unsigned long long flen) |
|
virtual off_t | getMmap (void **addr) |
|
virtual int | isCompressed (char *cxidp=0) |
|
virtual int | Open (const char *path, int Oflag, mode_t Mode, XrdOucEnv &env) |
|
virtual ssize_t | pgRead (void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts) |
|
virtual int | pgRead (XrdSfsAio *aioparm, uint64_t opts) |
|
virtual ssize_t | pgWrite (void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts) |
|
virtual int | pgWrite (XrdSfsAio *aioparm, uint64_t opts) |
|
virtual ssize_t | Read (off_t offset, size_t size) |
|
virtual ssize_t | Read (void *buffer, off_t offset, size_t size) |
|
virtual int | Read (XrdSfsAio *aiop) |
|
virtual ssize_t | ReadRaw (void *buffer, off_t offset, size_t size) |
|
virtual ssize_t | ReadV (XrdOucIOVec *readV, int rdvcnt) |
|
virtual ssize_t | Write (const void *buffer, off_t offset, size_t size) |
|
virtual int | Write (XrdSfsAio *aiop) |
|
virtual ssize_t | WriteV (XrdOucIOVec *writeV, int wrvcnt) |
|
uint16_t | DFType () |
|
virtual int | Fctl (int cmd, int alen, const char *args, char **resp=0) |
|
virtual int | getFD () |
|
virtual const char * | getTID () |
|
| XrdOssDF (const char *tid="", uint16_t dftype=0, int fdnum=-1) |
|
virtual | ~XrdOssDF () |
|
This class implements XrdOssDF interface for usage with a CEPH storage. It has a very restricted usage as the only valid path for opendir is '/'. The reason is that ceph is an object store where you can only list all objects, and that has no notion of hierarchy
This plugin is able to use any pool of ceph with any userId. There are several ways to provide the pool and userId to be used for a given operation. Here is the ordered list of possibilities. First one defined wins :
- the path can be prepended with userId and pool. Syntax is : [[userId@]pool:]<actual path>
- the XrdOucEnv parameter, when existing, can have 'cephUserId' and/or 'cephPool' entries
- the ofs.osslib directive can provide an argument with format : [userID@]pool
- default are 'admin' and 'default' for userId and pool respectively
Note that the definition of a default via the ofs.osslib directive may clash with one used in a ofs.xattrlib directive. In case both directives have a default and they are different, the behavior is not defined. In case one of the two only has a default, it will be applied for both plugins.