Gridport::ProxyForward
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.
use Gridport::ProxyForward;
my @out = Gridport::ProxyForward::forward(args);
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
Stephen Mock<lt>mock@sdsc.edu
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.
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