|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.kwfgrid.gwes.restfulclient.RestfulClient
net.kwfgrid.gwes.restfulclient.RestfulGWES
public class RestfulGWES
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class net.kwfgrid.gwes.restfulclient.RestfulClient |
|---|
RestfulClient.Method |
| Constructor Summary | |
|---|---|
protected |
RestfulGWES(String gwesServiceUrl)
Private constructor for internal use only. |
| Method Summary | |
|---|---|
void |
abort(String workflowID,
String userID)
Abort a workflow with a certain identifier. |
String[][] |
getActivityStatusArray(String workflowID,
String userID)
Get the status array of all instantiated activities of a given workflow. |
String[] |
getAvailableResources(String ofClass,
String userID)
Get a list of all available resources. |
String[] |
getCheckpoints(String workflowID,
String userID)
Get the path of all available checkpoints for a specific workflow. |
String[] |
getData(String workflowID,
String placeID,
String userID)
Get some data that is hold inside a specific workflow and that is referenced by a data place identifier. |
String |
getDescription(String workflowID,
String userID)
Get the human-readable description for a specific workflow. |
static RestfulGWES |
getInstance()
Create new or return existing RestfulGWES instance to GWES with service URL as specified by system property. |
static RestfulGWES |
getInstance(String gwesServiceUrl)
Create new or return existing RestfulGWES instance to GWES with service URL as specified by paramter gwesServiceUrl. |
String[][] |
getProperties(String workflowID,
String userID)
Get all propertries of a specific workflow. |
String |
getProperty(String workflowID,
String name,
String userID)
Get the value of a specific workflow property. |
String |
getResourceDescription(String resourceUri,
String userID)
Get the resource description of a specific resource in D-GRDL syntax. |
int |
getStatus(String workflowID,
String userID)
Get the current status code of the workflow specified by its identifier. |
String |
getWorkflowDescription(String workflowID,
String userID)
Get the current Generic Workflow Description document of the workflow specified by its identifier. |
String[] |
getWorkflowIDs(int level,
String userID)
Get the identifiers of all the workflows that are handled by this Generic Workflow Execution Service. |
String[][] |
getWorkflowStatusArray(int level,
String userID)
Get the workflow status of all currently available workflows. |
String |
initiate(String gworkflowdl,
String userID)
Initiates a workflow with a certain userID. |
protected String[] |
localExceptionHttpDELETE(String workflowID,
StringBuffer urlBuf)
|
protected String[] |
localExceptionHttpGET(String workflowID,
StringBuffer urlBuf)
|
protected String[][] |
localExceptionHttpGETArray(String workflowID,
StringBuffer urlBuf)
|
protected String[] |
localExceptionHttpPUT(String workflowID,
StringBuffer urlBuf,
StringBuffer payload)
|
void |
remove(String workflowID,
int level,
String userID)
Remove a specific workflow from memory, database, and/or its temporary data on the Grid nodes. |
String |
restart(String workflowID,
String userID)
Restart a workflow with a certain identifier from the beginning. |
String |
restore(String workflowID,
String userID)
Restores a workflow from the XML database. |
void |
resume(String workflowID,
String userID)
Resume a workflow with a certain identifier. |
void |
setDescription(String workflowID,
String description,
String userID)
Set the human-readable description for a specific workflow. |
void |
setProperty(String workflowID,
String name,
String value,
String userID)
Set the value of a specific workflow property. |
void |
setWorkflowDescription(String workflowID,
String gworkflowdl,
String userID)
Overwrite the current Generic Workflow Description document of the workflow specified by its identifier. |
void |
start(String workflowID,
String userID)
Start a workflow with a certain identifier. |
String |
store(String workflowID,
String userID)
Store a workflow in the XML workflow database. |
void |
suspend(String workflowID,
String userID)
Suspend a workflow with a certain identifier. |
int |
waitForStatusChangeFrom(String workflowID,
int oldStatus,
String userID)
Wait for workflow to change its status from an specified status. |
int |
waitForStatusChangeToCompletedOrTerminated(String workflowID,
String userID)
Wait for workflow to change its status to final states COMPLETED or TERMINATED. |
| Methods inherited from class net.kwfgrid.gwes.restfulclient.RestfulClient |
|---|
getMethodAsString, httpDELETE, httpGET, httpGETArray, httpPOST, httpPUT, request, requestArray |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String STRING_SLASH
public static final String STRING_L
public static final String STRING_G
public static final String STRING_LSLASH
public static final String METHOD_INITIATE
public static final String METHOD_START
public static final String METHOD_SUSPEND
public static final String METHOD_RESUME
public static final String METHOD_ABORT
public static final String METHOD_RESTART
public static final String METHOD_GETWORKFLOWDESCRIPTION
public static final String METHOD_SETWORKFLOWDESCRIPTION
public static final String METHOD_GETSTATUS
public static final String METHOD_WAITFORSTATUSCHANGEFROM
public static final String METHOD_WAITFORSTATUSCHANGETOCOMPLETEDORTERMINATED
public static final String METHOD_GETWORKFLOWIDS
public static final String METHOD_GETWORKFLOWSTATUSARRAY
public static final String METHOD_STORE
public static final String METHOD_RESTORE
public static final String METHOD_GETDATA
public static final String METHOD_SETDESCRIPTION
public static final String METHOD_GETDESCRIPTION
public static final String METHOD_SETPROPERTY
public static final String METHOD_GETPROPERTY
public static final String METHOD_GETPROPERTIES
public static final String METHOD_GETCHECKPOINTS
public static final String METHOD_REMOVE
public static final String METHOD_GETACTIVITYSTATUSARRAY
public static final String METHOD_GETAVAILABLERESOURCES
public static final String METHOD_GETRESOURCEDESCRIPTION_
public static final String ATTRIBUTE_NS
public static final String ELEMENT_WORKFLOWDESCRIPTION
public static final String ELEMENT_USERID
public static final String ELEMENT_WORKFLOWID
public static final String ELEMENT_DESCRIPTION
public static final String ELEMENT_NAME
public static final String ELEMENT_VALUE
public static final String PARAM_LEVEL
public static final String PARAM_WORKFLOWID
public static final String PARAM_OFCLASS
public static final String PARAM_RESOURCEURI
public static final String _PARAM_LEVEL
public static final String _PARAM_OLDSTATUS
public static final String _PARAM_PLACEID
public static final String _PARAM_NAME
public static final String _PARAM_USERID
protected static final Pattern PATTERN_COLLECTION_NOT_FOUND
protected static final Pattern PATTERN_WORKFLOW_NOT_AVAILABLE
protected static final Pattern PATTERN_WORKFLOW_NOT_AVAILABLE2
protected static final Pattern PATTERN_PLACE_WORKFLOW_NOT_AVAILABLE
protected String gwesServiceUrl
| Constructor Detail |
|---|
protected RestfulGWES(String gwesServiceUrl)
throws Exception
gwesServiceUrl -
Exception| Method Detail |
|---|
public static RestfulGWES getInstance()
throws Exception
ExceptionConstants.PROP_SYSTEM_GWES_SERVICE_BASE_URL_INTERNAL
public static RestfulGWES getInstance(String gwesServiceUrl)
throws Exception
Exception
protected String[] localExceptionHttpGET(String workflowID,
StringBuffer urlBuf)
throws NoSuchWorkflowException,
RemoteException
NoSuchWorkflowException
RemoteException
protected String[][] localExceptionHttpGETArray(String workflowID,
StringBuffer urlBuf)
throws NoSuchWorkflowException,
RemoteException
NoSuchWorkflowException
RemoteException
protected String[] localExceptionHttpPUT(String workflowID,
StringBuffer urlBuf,
StringBuffer payload)
throws NoSuchWorkflowException,
RemoteException
NoSuchWorkflowException
RemoteException
protected String[] localExceptionHttpDELETE(String workflowID,
StringBuffer urlBuf)
throws NoSuchWorkflowException,
RemoteException
NoSuchWorkflowException
RemoteException
public String initiate(String gworkflowdl,
String userID)
throws net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
StateTransitionException,
RemoteException
GWES
initiate in interface GWESgworkflowdl - The description of the workflow.userID - userID|credential: The ID of the user who owns the workflow. Use the DN of the
certificate if available. The optional user credential is separated from userID by "|".
user ID MUST NOT contain "|" or spaces!
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
StateTransitionException
RemoteException
public void start(String workflowID,
String userID)
throws NoSuchWorkflowException,
StateTransitionException,
RemoteException
GWES
start in interface GWESworkflowID - The unique workflow identifier.
NoSuchWorkflowException
StateTransitionException
RemoteException
public void suspend(String workflowID,
String userID)
throws NoSuchWorkflowException,
StateTransitionException,
RemoteException
GWES
suspend in interface GWESworkflowID - The unique workflow identifier.
NoSuchWorkflowException
StateTransitionException
RemoteException
public void resume(String workflowID,
String userID)
throws NoSuchWorkflowException,
StateTransitionException,
RemoteException
GWES
resume in interface GWESworkflowID - The unique workflow identifier.
NoSuchWorkflowException
StateTransitionException
RemoteException
public void abort(String workflowID,
String userID)
throws NoSuchWorkflowException,
StateTransitionException,
RemoteException
GWES
abort in interface GWESworkflowID - The unique workflow identifier.
NoSuchWorkflowException
StateTransitionException
RemoteException
public String restart(String workflowID,
String userID)
throws NoSuchWorkflowException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
DatabaseException,
StateTransitionException,
RemoteException
GWES
restart in interface GWESworkflowID - The unique identifier of the workflow to restart.userID - The user identifier of the user who owns the workflow.
NoSuchWorkflowException - If the workflow identifier is not available in the workflow database
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException - If the workflow stored in the database has the wrong format
DatabaseException - If there is a problem with retrieving the workflow from the database
StateTransitionException - If the state of the workflow is not INITIATED at the beginning.
RemoteException
public String getWorkflowDescription(String workflowID,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
getWorkflowDescription in interface GWESworkflowID - The unique workflow identifier.
NoSuchWorkflowException
RemoteException
DatabaseException
public void setWorkflowDescription(String workflowID,
String gworkflowdl,
String userID)
throws NoSuchWorkflowException,
StateTransitionException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
RemoteException
GWES
setWorkflowDescription in interface GWESworkflowID - The unique workflow identifier.gworkflowdl - The GWorkflowDL description of the workflow.
NoSuchWorkflowException
StateTransitionException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
RemoteException
public int getStatus(String workflowID,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
- STATUS_UNDEFINED = 0
- STATUS_INITIATED = 1
- STATUS_RUNNING = 2
- STATUS_SUSPENDED = 3
- STATUS_ACTIVE = 4
- STATUS_TERMINATED = 5
- STATUS_COMPLETED = 6
getStatus in interface GWESworkflowID - The unique workflow identifier.
NoSuchWorkflowException
RemoteException
DatabaseException
public int waitForStatusChangeFrom(String workflowID,
int oldStatus,
String userID)
throws NoSuchWorkflowException,
RemoteException,
InterruptedException
GWES
waitForStatusChangeFrom in interface GWESworkflowID - The workflow identifieroldStatus - The old status of the workflow
NoSuchWorkflowException
RemoteException
InterruptedException
public int waitForStatusChangeToCompletedOrTerminated(String workflowID,
String userID)
throws NoSuchWorkflowException,
RemoteException,
InterruptedException
GWES
waitForStatusChangeToCompletedOrTerminated in interface GWESworkflowID - The workflow identifier
NoSuchWorkflowException
RemoteException
InterruptedException
public String[] getWorkflowIDs(int level,
String userID)
throws DatabaseException,
RemoteException
GWES
- level = 1: workflows handled in main memory
- level = 2: workflows stored in workflow database
- level = 3: workflows handled in main memory AND stored in workflow database
getWorkflowIDs in interface GWESlevel - The level from where to get the workflowIDs.
DatabaseException
RemoteException
public String[][] getWorkflowStatusArray(int level,
String userID)
throws DatabaseException,
RemoteException
GWES"ID=hoheisel_f2968050-1d6a-11db-bacc-ad353bc1f9b1" "status=COMPLETED" "birthdayMs=1154003111126" "durationUndefinedMs=527" "durationInitiatedMs=792" "durationRunningMs=0" "durationActiveMs=0" "durationSuspendedMs=0" "durationTotalMs=1351" "endTimeMs=1154003112477" "level=MEMORY" "description=test workflow"The level denotes from where to get the workflow IDs:
- level = 1: workflows handled in main memory
- level = 2: workflows stored in workflow database
- level = 3: workflows handled in main memory AND stored in workflow database
getWorkflowStatusArray in interface GWESlevel - The level from where to get the workflowIDs.
DatabaseException
RemoteException
public String store(String workflowID,
String userID)
throws NoSuchWorkflowException,
DatabaseException,
RemoteException
GWESrestore method.
store in interface GWESworkflowID - The unique workflow identifier.
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
DatabaseException - If there is a problem with the XML database
RemoteExceptionGWES.restore(String,String)
public String restore(String workflowID,
String userID)
throws NoSuchWorkflowException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
DatabaseException,
StateTransitionException,
RemoteException
GWES/db/gworkflowdl/[workflowID]/0000000221.xml. The method call
returns the new workflow ID of the restored workflow.
A restored workflow has the status INITIATED and needs to be started using the start() method.
Workflows are stored, e.g., by using the store method.
restore in interface GWESworkflowID - The old workflow ID of the stored workflow.userID - The user ID.
NoSuchWorkflowException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
DatabaseException
StateTransitionException
RemoteExceptionGWES.store(String, String),
GWES.start(String, String)
public String[] getData(String workflowID,
String placeID,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
getData in interface GWESworkflowID - The workflow identifierplaceID - The place identifier that refers to the data
NoSuchWorkflowException
RemoteException
DatabaseException
public void setDescription(String workflowID,
String description,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
setDescription in interface GWESworkflowID - The workflow identifierdescription - The human-readable description
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
DatabaseException
RemoteException
public String getDescription(String workflowID,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
getDescription in interface GWESworkflowID - The workflow identifier
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
DatabaseException
RemoteException
public void setProperty(String workflowID,
String name,
String value,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
setProperty in interface GWESworkflowID - The workflow identifiername - Name of the propertyvalue - Value of the property
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
RemoteException
DatabaseException
public String getProperty(String workflowID,
String name,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
getProperty in interface GWESworkflowID - The workflow identifiername - Name of the property
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
RemoteException
DatabaseException
public String[][] getProperties(String workflowID,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWESproperties = getProperties(workflowID); properties[0][0] //Name of the first workflow property properties[0][1] //Value of the first workflow property properties[1][0] //Name of the second worklfow property properties[1][1] //Value of the second workflow property
getProperties in interface GWESNoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
RemoteException
DatabaseException
public String[] getCheckpoints(String workflowID,
String userID)
throws NoSuchWorkflowException,
RemoteException,
DatabaseException
GWES
getCheckpoints in interface GWESworkflowID - The workflow identifier.
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
DatabaseException
RemoteException
public void remove(String workflowID,
int level,
String userID)
throws NoSuchWorkflowException,
DatabaseException,
RemoteException
GWES
- level = 1: main memory
- level = 2: workflow database
- level = 3: main memory AND workflow database
- level = 4: temporary data on Grid nodes
- level = 5: main memory AND temporary data on Grid nodes
- level = 6: workflow database AND temporary data on Grid nodes
- level = 7: main memory AND workflow database AND temporary data on Grid nodes
remove in interface GWESworkflowID - The workflow identifier.level - From where to remove the workflow data.userID - The user ID.
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
DatabaseException
RemoteException
public String[][] getActivityStatusArray(String workflowID,
String userID)
throws NoSuchWorkflowException,
RemoteException
GWES
ID=hoheisel_2addc790-416a-11de-97f3-9cdc141524de_0000000025
status=ACTIVE
activityClass=net.kwfgrid.gwes.wsgramactivity.GRAMActivity
operationName=software:makeload100
resourceName=hardware:quadro.first.fhrg.fraunhofer.de
timeoutActive=7200000
timeoutRunning=86400000
birthdayMs=1242403824742
durationUndefinedMs=1
durationInitiatedMs=1
durationRunningMs=1886
durationActiveMs=0
durationSuspendedMs=0
durationTotalMs=0
endTimeMs=0
getActivityStatusArray in interface GWESworkflowID - The workflow identifier.
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
RemoteException
public String[] getAvailableResources(String ofClass,
String userID)
throws DatabaseException,
RemoteException
GWES
String[] resources = getAvailableResources("urn:dgrdl:software");
resources[0]=
<resource>
<uri>software:cat-fhrg</uri> // Operation URI
<classUri>urn:dgrdl:software:cat</classUri> // Operation Class URI (workflow: operationClass name="...")
<name>cat</name> // Operation Name
<description>Program that concatenates two files<description> // Operation Description
</resource>
getAvailableResources in interface GWESofClass - The class which this resource should be part of. This method only checkes whether the class starts
with the given ofClass parameter, e.g., "urn:dgrdl:software" would match both classes: "urn:dgrdl:software:A"
as well as "urn:dgrdl:software:B". If ofClass is null then all classes of resources are
returned.
DatabaseException
RemoteException
public String getResourceDescription(String resourceUri,
String userID)
throws DatabaseException,
RemoteException
GWES
getResourceDescription in interface GWESresourceUri - The resource URI.
DatabaseException
RemoteException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||