Ticket #227 (closed enhancement: fixed)

Opened 12 years ago

Last modified 7 years ago

Improve semantics of attach/detach and add

Reported by: jdreed Owned by:
Priority: low Milestone: The Distant Future
Component: -- Keywords: hackathon
Cc: Fixed in version:
Upstream bug:

Description

After discussion on Athena10 list and via IM, broder has proposed amendments to attach and detach as they're currently working on debathena/Athena10:

(a) Change liblocker so that the attachtab has a concept of per-user
mounts (i.e. in addition to tracking which users have a locker mounted,
it can also say "broder has /afs/.sipb/project/whatever mounted at
/mit/whatever, but price has /usr/local/whatever mounted at /mit/whatever")

(b) Write PyLocker?

(c) Change pyHesiodFS to use PyLocker? instead of keeping its own cache
and additionally, alter it to present a different view onto /mit for
each user. (i.e. I would actually *see* /mit/whatever symlinked to
/afs/.sipb/project/whatever, while if Greg looked at /mit/whatever, he'd
see a symlink to /usr/local/whatever)

  • This is actually not that hard once parts (a) and (b) are done.

PyFUSE has fuse.FuseGetContext?(), which returns the UID, GID, and PID of
the process making the given request.

This would allow us to bring back attach -e, and even allow it to be run
by non-root users.


Also add -r should remove the locker from the Search path even if it is not attached rather than complaining of a non-attached locker.


This improved interface should be implemented and tested to see if it is better, and if it is better, it should become the default.

Change History

comment:1 Changed 12 years ago by broder

  • Status changed from new to assigned
  • Owner broder deleted

It's seeming increasingly likely that I'm not going to ever get around to this.

However, it's a fairly straightforward, mostly well-defined software engineering problem that exists more or less in isolation of the majority of Debathena, which I think makes it an excellent candidate for a prospective or someone less involved in Debathena.

I've attempted to write down how I would go about FixingLiblocker on the wiki part of Trac. Comments are welcome; discussion should probably happen on zephyr.

comment:2 Changed 12 years ago by broder

  • Status changed from assigned to new
  • Milestone changed from Fall Release to IAP 2010

It seems pretty unlikely that this will get done, at least by the core developers, over the next week, so I'd like to get it out of our default view. I would still encourage anyone who's interested to take a look at this.

comment:3 Changed 11 years ago by jdreed

  • Milestone changed from Summer 2010 (Lucid Deploy) to Fall 2010

"It seems pretty unlikely that this will get done, at least by the core developers, over the next week, so I'd like to get it out of our default view."

comment:4 Changed 10 years ago by jdreed

  • Milestone changed from Natty Alpha to The Distant Future

"It seems pretty unlikely that this will get done, at least by the core developers, over the next week, so I'd like to get it out of our default view."

comment:5 Changed 10 years ago by jdreed

For maximum awesomeness, we haven't been running zinit since... forever, because initprogs is commented out in debian's zephyr.vars and we never uncommented it.

comment:6 Changed 10 years ago by jdreed

So, I think we also want athdir to be in Python for this.

comment:7 Changed 8 years ago by adehnert

  • Keywords hackathon added

comment:8 follow-up: ↓ 9 Changed 8 years ago by jdreed

I'd like to think about doing this sooner rather than later. My current plan is to python-ify liblocker, libathdir, athdir, and attach. We punt pyhesiodfs in favor of a new implementation with broder's python-routefs, which is generified to pymitfs or something. liblocker is responsible for getting locker info from wherever it currently is (Hesiod) and for turning locker names into other paths (currently only AFS), and getting tokens when necessary.

comment:9 in reply to: ↑ 8 ; follow-up: ↓ 10 Changed 8 years ago by kaduk

Replying to jdreed:

I'd like to think about doing this sooner rather than later. My current plan is to python-ify liblocker, libathdir, athdir, and attach. We punt pyhesiodfs in favor of a new implementation with broder's python-routefs, which is generified to pymitfs or something. liblocker is responsible for getting locker info from wherever it currently is (Hesiod) and for turning locker names into other paths (currently only AFS), and getting tokens when necessary.

Can we actually get rid of libathdir? I somehow thought it still had other things using it. The idea sounds good in principle, though.

comment:10 in reply to: ↑ 9 Changed 8 years ago by jdreed

Replying to kaduk:

Can we actually get rid of libathdir? I somehow thought it still had other things using it. The idea sounds good in principle, though.

Nothing in our tree is using it, aside from the things that are already in the scope of this ticket.

comment:11 Changed 7 years ago by jdreed

 http://github.com/jdreed/liblocker-ng exists. Have at it. We need to decide where to package this. Options include a 1:1 replacement (liblocker ships locker.py, libathdir ships athdir.py, and the binaries get updated to their Python versions), a separate source package (debathena-locker-support) that creates one python modules package and one -binaries package (that Replaces: athdir, attach, attachandrun, etc).

comment:12 Changed 7 years ago by jdreed

  • Status changed from new to committed

Turns out that Replaces/Conflicts? doesn't work because we do stupid things with versioned dependencies. So debathena-locker-support is now the source package for attach, athdir, and quota, at version 10.4

comment:13 Changed 7 years ago by jdreed

  • Status changed from committed to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.