コード例 #1
0
 def fsStat(self, request, context):
     stv = os.statvfs(request.path)
     data = dict((key, getattr(stv, key))
                 for key in ('f_bavail', 'f_bfree', 'f_blocks', 'f_bsize',
                             'f_favail', 'f_ffree', 'f_files', 'f_flag',
                             'f_frsize', 'f_namemax'))
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #2
0
    def fsReadDir(self, request, context):
        dirents = ['.', '..']

        if os.path.isdir(request.path):
            dirents.extend(os.listdir(request.path))

        return users_pb2.JsonReply(data=json.dumps(dirents))
コード例 #3
0
 def fileWrite(self, request, context):
     global lock
     lock.acquire()
     os.lseek(request.fh, request.offset, os.SEEK_SET)
     reply = users_pb2.JsonReply(
         data=json.dumps(os.write(request.fh, request.buf)))
     lock.release()
     return reply
コード例 #4
0
 def fsGetAttr(self, request, context):
     error = False
     data = {}
     try:
         st = os.lstat(request.path)
         data = dict(
             (key, getattr(st, key))
             for key in ('st_atime', 'st_ctime', 'st_gid', 'st_mode',
                         'st_mtime', 'st_nlink', 'st_size', 'st_uid'))
     except:
         error = True
     return users_pb2.JsonReply(data=json.dumps(data), error=error)
コード例 #5
0
 def fileCreate(self, request, context):
     data = os.open(request.path, os.O_RDWR | os.O_CREAT, request.mode)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #6
0
 def fileOpen(self, request, context):
     data = os.open(request.path, request.flags)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #7
0
 def fsFlock(self, request, context):
     data = os.flock(request.fileDescriptor, request.lockOperation)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #8
0
 def fsLink(self, request, context):
     data = os.link(request.name, request.target)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #9
0
 def fsRename(self, request, context):
     data = os.rename(request.oldPath, request.newPath)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #10
0
 def fsChmod(self, request, context):
     data = os.chmod(request.path, request.mode)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #11
0
 def fsUtimens(self, request, context):
     data = os.utime(request.path, (request.aTime, request.mTime))
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #12
0
 def fsMkDir(self, request, context):
     data = os.mkdir(request.path, request.mode)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #13
0
 def fsRmDir(self, request, context):
     data = os.rmdir(request.path)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #14
0
 def fsChown(self, request, context):
     data = os.chown(request.path, request.uid, request.gid)
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #15
0
 def fileFlush(self, request, context):
     return users_pb2.JsonReply(data=json.dumps(os.fsync(request.fh)))
コード例 #16
0
 def fsUnlink(self, request, context):
     global lock
     lock.acquire()
     data = os.unlink(request.path)
     lock.release()
     return users_pb2.JsonReply(data=json.dumps(data))
コード例 #17
0
 def fileRelease(self, request, context):
     return users_pb2.JsonReply(data=json.dumps(os.close(request.fh)))
コード例 #18
0
 def fsAccess(self, request, context):
     if not os.access(request.path, request.mode):
         return users_pb2.JsonReply(error=True)
     return users_pb2.JsonReply(error=False)