Package org.globus.gram

# Class Gram

java.lang.Object
org.globus.gram.Gram

public class Gram extends Object
This is the main class for using the Globus GRAM API It implements all of the GRAM API functionality such as job submission, canceling, gatekeeper pinging, and job signaling. It also allows for callback registering and unregistering.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static Hashtable`
`callbackHandlers`

## Constructor Summary

Constructors
Constructor
Description
`Gram()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`cancel(GramJob job)`
This function cancels an already running job.
`static void`
`deactivateAllCallbackHandlers()`
Deactivates all callback handlers.
`static CallbackHandler`
`deactivateCallbackHandler(GSSCredential cred)`
Deactivates a callback handler for a given credential.
`static int`
`getActiveJobs()`
Returns total number of jobs currently running for all credentials -- all callback handlers
`static int`
`getActiveJobs(GSSCredential cred)`
Returns number of jobs currently running for a specified credential (one credential one callback handler)
`static int`
`jobSignal(GramJob job, int signal, String arg)`
This function sends a signal to a job.
`static void`
`jobStatus(GramJob job)`
This function updates the status of a job (within the job object), and throws an exception if the status is not OK.
`static void`
`ping(String resourceManagerContact)`
Performs ping operation on the gatekeeper with default user credentials.
`static void`
`ping(GSSCredential cred, String resourceManagerContact)`
Performs ping operation on the gatekeeper with specified user credentials.
`static void`
`registerListener(GramJob job)`
This function registers the job for status updates.
`static void`
`registerListener(GramJob job, CallbackHandler handler)`
`static void`
`renew(GramJob job, GSSCredential newCred)`
Requests that a globus job manager accept newly delegated credentials.
`static void`
`renew(GramJob job, GSSCredential newCred, boolean limitedDelegation)`
Requests that a globus job manager accept newly delegated credentials.
`static void`
`request(String resourceManagerContact, GramJob job)`
Submits a GramJob to specified gatekeeper as an interactive job.
`static void`
`request(String resourceManagerContact, GramJob job, boolean batchJob)`
Submits a GramJob to specified gatekeeper as a interactive or batch job.
`static void`
`request(String resourceManagerContact, GramJob job, boolean batchJob, boolean limitedDelegation)`
Submits a GramJob to specified gatekeeper as a interactive or batch job.
`static void`
`unregisterListener(GramJob job)`
This function unregisters the job from callback listener.
`static void`
`unregisterListener(GramJob job, CallbackHandler handler)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### callbackHandlers

protected static Hashtable callbackHandlers

## Constructor Details

### Gram

public Gram()

## Method Details

### getActiveJobs

public static int getActiveJobs()
Returns total number of jobs currently running for all credentials -- all callback handlers

Returns:
  number of jobs running

### getActiveJobs

public static int getActiveJobs(GSSCredential cred)
Returns number of jobs currently running for a specified credential (one credential one callback handler)

Returns:
  number of jobs running for given credential

### ping

public static void ping(String resourceManagerContact) throws GramException, GSSException
Performs ping operation on the gatekeeper with default user credentials. Verifies if the user is authorized to submit a job to that gatekeeper.

Parameters:
  `resourceManagerContact` - resource manager contact
Throws:
  `GramException` - if an error occurs or user in unauthorized
  `GSSException`

### ping

public static void ping(GSSCredential cred, String resourceManagerContact) throws GramException, GSSException
Performs ping operation on the gatekeeper with specified user credentials. Verifies if the user is authorized to submit a job to that gatekeeper.

Parameters:
  `cred` - user credentials
  `resourceManagerContact` - resource manager contact
Throws:
  `GramException` - if an error occurs or user in unauthorized
  `GSSException`

### request

public static void request(String resourceManagerContact, GramJob job) throws GramException, GSSException
Submits a GramJob to specified gatekeeper as an interactive job. Performs limited delegation.

Parameters:
  `resourceManagerContact` - resource manager contact
  `job` - gram job
Throws:
  `GramException` - if an error occurs during submisson
  `GSSException`

### request

public static void request(String resourceManagerContact, GramJob job, boolean batchJob) throws GramException, GSSException
Submits a GramJob to specified gatekeeper as a interactive or batch job. Performs limited delegation.

Parameters:
  `resourceManagerContact` - resource manager contact
  `job` - gram job
  `batchJob` - true if batch job, interactive otherwise
Throws:
  `GramException` - if an error occurs during submisson
  `GSSException`

### request

public static void request(String resourceManagerContact, GramJob job, boolean batchJob, boolean limitedDelegation) throws GramException, GSSException
Submits a GramJob to specified gatekeeper as a interactive or batch job.

Parameters:
  `resourceManagerContact` - resource manager contact
  `job` - gram job
  `batchJob` - true if batch job, interactive otherwise.
  `limitedDelegation` - true for limited delegation, false for full delegation. limited delegation should be the default option.
Throws:
  `GramException` - if an error occurs during submisson
  `GSSException`

### renew

public static void renew(GramJob job, GSSCredential newCred) throws GramException, GSSException
Requests that a globus job manager accept newly delegated credentials. Uses limited delegation.

Parameters:
  `job` - The job whose credentials are to be renewed/refreshed
  `newCred` - The credentials to use in the delegation process
Throws:
  `GSSException` - if a GSSAPI error occurs
  `GramException` - if a connection/communication error occurs or if delegation failed

### renew

public static void renew(GramJob job, GSSCredential newCred, boolean limitedDelegation) throws GramException, GSSException
Requests that a globus job manager accept newly delegated credentials. This consists of a "renew" message in the GRAM protocol followed by a GSI delegation handshake using wrapped/framed tokens. Upon successful delegation, the job's credentials are set to the ones used in delegation.

Parameters:
  `job` - The job whose credentials are to be renewed/refreshed
  `newCred` - The credentials to use in the delegation process
  `limitedDelegation` - Whether to use a full or limited proxy
Throws:
  `GSSException` - if a GSSAPI error occurs
  `GramException` - if a connection/communication error occurs or if delegation failed

### cancel

public static void cancel(GramJob job) throws GramException, GSSException
This function cancels an already running job.

Parameters:
  `job` - job to be canceled
Throws:
  `GramException` - if an error occurs during cancel
  `GSSException`

### jobStatus

public static void jobStatus(GramJob job) throws GramException, GSSException
This function updates the status of a job (within the job object), and throws an exception if the status is not OK. If the job manager cannot be contacted the job error code is set to GramException.ERROR_CONTACTING_JOB_MANAGER and an exception with the same error code is thrown.

Parameters:
  `job` - the job whose status is to be updated.
Throws:
  `GramException` - if an error occurs during status update.
  `GSSException`

### jobSignal

public static int jobSignal(GramJob job, int signal, String arg) throws GramException, GSSException
This function sends a signal to a job.

Parameters:
  `job` - the signaled job
  `signal` - type of the signal
  `arg` - argument of the signal
Throws:
  `GramException` - if an error occurs during cancel
  `GSSException`

### registerListener

public static void registerListener(GramJob job) throws GramException, GSSException
This function registers the job for status updates.

Parameters:
  `job` - the job
Throws:
  `GramException` - if an error occurs during registration
  `GSSException`

### registerListener

public static void registerListener(GramJob job, CallbackHandler handler) throws GramException, GSSException

Throws:
  `GramException`
  `GSSException`

### unregisterListener

public static void unregisterListener(GramJob job) throws GramException, GSSException
This function unregisters the job from callback listener. The job status will not be updated.

Parameters:
  `job` - the job
Throws:
  `GramException` - if an error occurs during unregistering
  `GSSException`

### unregisterListener

public static void unregisterListener(GramJob job, CallbackHandler handler) throws GramException, GSSException

Throws:
  `GramException`
  `GSSException`

### deactivateAllCallbackHandlers

public static void deactivateAllCallbackHandlers()
Deactivates all callback handlers.

### deactivateCallbackHandler

public static CallbackHandler deactivateCallbackHandler(GSSCredential cred)
Deactivates a callback handler for a given credential.

Parameters:
  `cred` - the credential of the callback handler.
Returns:
  the callback handler that was deactivated. Null, if no callback handler is associated with the credential