Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

c. projects/research space
Sakai has many types of sites, and each install can configure these. There will be sites related to projects and research that can be expected. User's space, and possibly another space in AFS, will be utilized for these types of sites. Content stored in user's AFS space will count against the user's AFS quota, specifically the user who owns the site.

Some Implementation details/status

The default registered service that handles content in Sakai is the DbContentService, which extends the BaseContentHostingService. A modification to the path generation in the DbContentService will allow the path to be configured for proper content storage in AFS. Creating a UCDavisContentService, which extends the functionality of the DbContentService, will enable custom configurations and "overrides" of methods which establish the file path used to store content. There are several considerations for this to be handled properly:

1. The site type must be determined, so the user's space may be used or that of CourseManagementMyUCDavis Course Management.
This is currently in a somewhat working state in code (e.g. prototype), the only question is the project site types, and where to map them.

2. The user's quota should be checked prior to storage?
Needs to be implemented, and should be implemented at a point where quota check should occur when files are attempted to be saved.

3. The path must be customizable
Needs to be implemented. Currently, this customization can be implemented by overriding the bodyPath method in the DbContentService. This can later be passed in, via parameterization, to a n existing shell/perl script. There are some advantages and disadvantages of each method, and error handling is one of them.

4. Error handling considerations
The content hosting implementation must be able to handle file write exceptions appropriately. File read exceptions should not occur, as they should be handled internally by Sakai (Java) exception handling methods. If there is a file write error, they may be Quota extension errors, AFS downtime errors, or others. The ability to trap these type of errors and respond to them well, which the current CM system (MyUCDavis) does not handle, is crucial.

5. Script language considerations
The current script that handles volume create, quota extension, etc. is a Korn shell script. We can choose to modify this existing script, however there are alternative possibilities of using Perl (e.g. AFS Perl), or AFS Java (e.g. openAFS APIs). The latter two (Perl,Java) are preferred, and Java most likely because the existing code base for Sakai is developed in Java, and this would minimize future maintenance issues.

A preliminary UCDavisDbContentService file is provided, which will replace the DbContentService as the registered service for storing content. This is a Sakai 2.1 example.

...