[6090] in Release_7.7_team

home help back first fref pref prev next nref lref last post

Reworking liblocker

daemon@ATHENA.MIT.EDU (Evan Broder)
Wed Dec 3 12:25:18 2008

Message-ID: <4936C0EC.5080304@mit.edu>
Date: Wed, 03 Dec 2008 12:25:00 -0500
From: Evan Broder <broder@MIT.EDU>
MIME-Version: 1.0
To: release-team@mit.edu
CC: athena10@mit.edu
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Spam-Flag: NO
X-Spam-Score: 0.00

I'd like to rework how liblocker and the /mit automounter interact, and
I'd also like to bring back support for things like attach -e. Here's
the behavior I'd like to see:

By using the fuse.FuseGetContext() call in the Python FUSE library, the
automounter can determine what user is trying to access /mit. It uses
that information to get a user-specific cache of which lockers are
mounted, which can include explicit mountpoints created via attach -e.
The automounter also makes the appropriate calls to liblocker when it
creates new filesystem entries, such that the attachtab is always in
sync with what shows up in /mit.

Under this scheme, attach and detach still call liblocker, but only to
create or alter attachtab entries; they don't operate on the filesystem
at all.

As part of this, there are a few features currently in liblocker that
I'd like to deprecate:

 - The mountpoint/nomountpoint options in attach.conf. I've never
actually heard of someone using attach and detach to make symlinks
outside of /mit anyway.

 - NFS lockers. They've never been supported on Debathena, and we might
as well make that formal

 - A few other attach.conf options that either don't make sense
currently, or won't make sense once a per-user /mit view is implemented:
ownercheck, trusted, and anything NFS-related.

Since I am...completely incapable of writing non-trivial C code, since
the use of liblocker appears to be limited to a number of utilities that
I can count on one hand, and since I personally believe that code
written in a scripting language is easier to maintain going forward, I
intend to implement this by re-writing liblocker as a Python module, and
re-writing attach, detach, and quota as Python scripts.

I think I'll have time this weekend to hack out at least a first
revision of this. Does anyone have major objections to this plan?

- Evan

home help back first fref pref prev next nref lref last post