Skip to content
chanke edited this page Feb 2, 2012 · 11 revisions

Welcome to the afspy wiki!

afspy should/will become comprehensive python bindings to AFS. Both a low-level functional API and a high-level service-oriented API are provided.

Architecture :

The two main patterns are Data-Acess-Object and Facade. The objects (like Volume etc) themselves are empty and are filled by a service using the DAOs. You get an object by calling a service.

Data Access Object low-level

Talk to openAFS-servers and Clients.

Should be implemented using CTypes and libafsrpc.so and libafsauthent.so

mid-level (services)

  • FsServer : returns !fileserver object
  • DBServer : returns DatabaseServer Object.
  • VLDB : provides information about the VLDB
  • PTDB : provides info about PTDB
  • Volume : information about a Volume

Beside these there are Query-Services which provide information to be used by the services above :

  • QueryVol : Queries about Volumes by Size, location etc.
  • QueryFs : Queries about Fileserver
  • QueryProject : Queries about Projects

The mid-level classes above empty.

Applications

On top of the mid-level, provide services like :

  • Empty a server onto other servers
  • check if all Volumes have a certain number of RO-copies
  • check a server for offline volumes
  • list/remove all volumes by regex
  • BulkCreate Volumes
  • See if all servers actually have the partitions they should have according to VLDB
  • Get Cell overview

other

  • AFSFile : extends os.file, provides information about status in openAFS

To-Do:

  • write low-level module using ctypes connecting to libafsrpc.so & Co
Clone this wiki locally