Friday, September 14, 2007

Organizing information about Community proxy

Well..if a person wants to transfer a file from her community data repository to her personal/remote data file system through the file-comp-management portlet, what do we need to provide? That person will need to access the community proxy to access her community data repository. At a same time, she should access her personal proxy which is relevant to the remote resource. Do we have to ask her every time which proxy she is gonna use? What if it's non-interactive task such as job processing with mix-and-match proxies?

Since remote access to the resource requires the location of the resource, I think about simple but nice organizing of the information about community proxies and personal proxies based on the location. For each of the users, if {Username, Host, Port} is provided after the user issues proxies, ProxyManager will let me find the proxy for the host with the username.

Also if the virtulization of the user space for the community repository is considered, I may have to add the pointer to the user space specified by the system. If it is the community repository based on the Unix file system and the system relocates each of the user's space as /CommunityRepository/[username], than userspace will set as /CommunityRepository/myusername. If it is not a community repository then "~" can simply lead the user to the user's home directory that is specified by the Unix file system. Therefore, now I have, {Username, Host, Port, Userspace}.

Hang on... on top of this, I have to consider about the users who have both of the community acess and personal access to the same resource. For the huge data repository, this can happen quite often. I might have to add some identifier of the proxy, so that Userspace is not confusing. This doesn't have to be universally unique but it should be unique enough within the set of proxies for the same host and user. User's DN which is available from the GSSCredential object can be a good candidate. Now triplet is grown as {Username, Host, Port, Userspace, ProxyIdentifier}.

What else can be added....?

Test note for the ProxyManager Portlet

1. Test Items
  • Create a personal proxy
  • Create a community proxy
  • Set default proxy
  • Get a new personal proxy but not create a copy of existing community proxy
  • Romove proxy
  • Test with 3rd party user
2. FixMe list
3. Possible addition
display whether it's a community proxy.

Test note for the Comp-file-management portlet.

1. Test list
  • File list
  • GoTo Directory
  • Go UpperDirectory
  • Upload
  • Transfer
  • Home
  • Rename
2. FixMe List
(1) After transfer or upload file, file list displays home directory. - Fixed.
(2) After the transfer the file, the size of the file is listed as 0.
(3) Last Modified of the destination File Listing is not human-friendly.

Wednesday, September 12, 2007

Commands for using maven2

Installing 3rd party jar
maven-2.0.7/bin/mvn install:install-file -DgroupId=proxymanager-api-4.2.1 -DartifactId=proxymanager-api-4.2.1 -Dversion=4.2.1 -Dfile="/home/leesangm/ogce-portal-only/proxymanager-api-4.2.1.jar" -Dpackaging=jar

Friday, September 7, 2007

Modify comp-file-management portlet to use Cog Abstraction APIs

Comp-file-management portlet is implemented using the JSR0168 specification, and allows a user to list/browse files on a source and/or destination resource. Also it provides features to upload, and download user's files. User can transfer files between remote resources. Users upload local file to the remote resource as well.
Currently, major gridFTP functionality is implemented by access to the gridFTP APIs. To modify the classes to use COG Abstraction APIs, some of the classes from the grid port package and comp-file-management portlet are re-written.
*All of the added classes are packaged under .utils because of the confliction between the package names.

Added/Modified Classes

1. edu.tacc.gridport.portlets.interactive.utils.FileListingManager

Origin: GridPort

New Package: edu.tacc.gridport.portlets.interactive.utils
Modified Methods:

FileListingBean executeFileListing(ActionRequest req, ActionResponse res, FileListingBean currentListing)
ArrayList constructFileBeans(Collection files, String currentDir)
ArrayList constructFileBeans(FileInfo[] files, String currentDir)

Added Methods:

FileResource getConnect(GSSCredential proxy, String host, String port,String purpose, boolean remotePassive,String provider)

FileResource getConnect(PortalRequest request, String host, String port,String purpose, boolean remotePassive, String provider)
String getUpperDirectory(String currentDirectory)
String getPortalUsername(PortletRequest request)
void putIntoSession(PortletRequest request, String name, Object obj)
String constructPermissionString(Permissions user, Permissions group, Permissions all, boolean dir)

2. edu.tacc.gridport.portlets.interactive.utils.FileUploadManager
Origin: Grid Port
New Package: edu.tacc.gridport.portlets.interactive.utils
Modified Methods:
void uploadFileToRemote(ActionRequest req)
Origin: edu.tacc.gridport.portlets.interactive.helpers (comp-file-management portlet)
New Package: no change
Added Methods:
void fileUploadFromUserMachine(String toHost, String localFileFullName, String remoteFileFullName, GSSCredential credential)

Modified Methods:

void thirdPartyTransfer(String fromHost, String fromFileFullName,String toHost, String toFileFullName, GSSCredential credential)

Wednesday, September 5, 2007

Compile and deploy single portlet

New version (Sep. 07, 2007)
mvn clean install -f portlets/filetransfer/pom.xml

Old version
  1. Goto /ogce/ogce-portal/ogce-portal
  2. ../third_party_tools/maven-1.0.2/bin/maven gp:deploy-portlet -Denv.CATALINA_HOME=../portal_deploy/apache-tomcat-5.5.12

Note: use maven V.1.xx