def NFSPROC_GETATTR (self, fh): attrstat = rfc1094.attrstat () fil = self.fs.get_fil (fh) if fil == None: attrstat.status = rfc1094.NFSERR_STALE else: attrstat.status = rfc1094.NFS_OK attrstat._data = fil return attrstat
def NFSPROC_GETATTR(self, fh): _as = rfc1094.attrstat() fil = self.fs.get_fil(fh) if fil == None: _as.status = rfc1094.NFSERR_STALE else: _as.status = rfc1094.NFS_OK _as._data = fil return _as
def NFSPROC_WRITE (self, wa): rv = rfc1094.attrstat () try: fil = self.fs.get_fil (wa.file) if fil == None: raise fsbase.NFSError (rfc1094.NFSERR_STALE) fil.write (wa.offset, wa.data) rv.status = rfc1094.NFS_OK rv._data = fil except fsbase.NFSError, err: rv.status = err.err
def NFSPROC_SETATTR (self, sattrargs): rv = rfc1094.attrstat () try: fil= self.fs.get_fil (sattrargs.file) if fil <> None: fil.update (sattrargs.attributes) rv.status = rfc1094.NFS_OK rv._data = fil else: rv.status = rfc1094.NFSERR_STALE except fsbase.NFSError, err: rv.status = err.err
class NfsSrv (rfc1094.NFS_PROGRAM_2, HostAccessControl): """See RFC1094.""" deliberately_unimplemented = ['NFSPROC_WRITECACHE', 'NFSPROC_ROOT'] # WRITECACHE and ROOT aren't used at all. def __init__ (self, fs): self.fs = fs rfc1094.NFS_PROGRAM_2.__init__ (self) def NFSPROC_NULL (self): return None def NFSPROC_GETATTR (self, fh): as = rfc1094.attrstat () fil = self.fs.get_fil (fh) if fil == None: as.status = rfc1094.NFSERR_STALE