NAME

Gridport::ProxyForward


DESCRIPTION

This module is for pushing a copy of your proxyfile to a remote resource. This is useful if full delegation is not enabled, and you would like to run another grid job on the remote resource.

This makes use of the Gridport::FileTransfer module to transfer the file, and the Gridport::Authentication module to locate the user proxy. It goes without saying that the user must be logged in for this to work correctly.

Doing transfers the proxyfile often comes out with o+r permissions, so it runs a gram job afterwards to fix that using Gridport::Job.

This one is kinda dangerous, so please be careful with the user's proxy!!

If you are getting an error that looks like: GRAM Job submission failed because the provided RSL string includes variables that could not be identified (error code 39) ...then try setting backwards=>'true' for backwards compatibility with globus 1.x.y gass servers.


SYNOPSIS

        use Gridport::ProxyForward;
        my @out = Gridport::ProxyForward::forward(args);


EXAMPLE

  use CGI qw(:all);
  use Gridport::ProxyForward;
  use Gridport::Authentication;
  my $q = new CGI;
   my $gp = new Gridport::Authentication;
   my $login_state = $gp->get_login_state(gsi=>'true');
   if(!defined($login_state)) {
      exit;
   }
   my $proxy  = $q->param('proxy');
   my $protocol = $q->param('protocol');
   my $host       = $q->param('host');
   my @out = Gridport::ProxyForward::forward(
             proxy=>$proxy,       #full path to new file created remotely
             protocol=>$protocol, #gridftp or gass
             host=>$host);        #host string of gass server or gsiftp server


AUTHOR

Stephen Mock<lt>mock@sdsc.edu


SUBROUTINES

forward()

 Description/Usage:
 This is used to forward (transfer) the logged in user's proxyfile to a
 remote resource using globus gass or gsiftp.
        @output = Gridport::FileTransfer->
                (host=>'globus.yourdomain.edu',
                 protocol=>'gsiftp',
                 proxy=>'/home/user/proxyfile.cert');
 Required Arguments:
    host => the host that you want to transfer this proxy to. This should
            be the host uri where the appropriate protocol server is running.
    protocol => either gass or gridftp or gsiftp where gsiftp and gridftp are
                equal
    proxy => the full path to the proxy file to be created on the remote machine.
 Optional Arguments:
   backwards => set to 'true' if you are trying to do gass transfers with a 
                globus 1.1.x system. otherwise this will fail.
 Returns:
   the output of the transaction. if all goes well this should be an empty array.


SEE ALSO

Cog::lib::Cog::Globus::Job, Cog::lib::Cog::Globus::RSL, Cog::lib::Cog::Globus::Run, Cog::lib::Cog::Globus::URLCopy, Cog::lib::Cog::MDS::Search, Cog::lib::Cog::Security::Cacl, Cog::lib::Cog::Security::Myproxy, Cog::lib::Cog::Security::Proxy, Cog::src::Config, CogUtil::lib::CogUtil::Log, CogUtil::lib::CogUtil::UnixRun, Gridport::lib::Gridport::Authentication, Gridport::lib::Gridport::FileTransfer, Gridport::lib::Gridport::Job, Gridport::lib::Gridport::ProxyForward, Gridport::lib::Gridport::SRB, NWS::lib::NWS, SRB::lib::SRB