JS API
Google Doc address: http://docs.google.com/Doc?id=dmxthpg_102fvp7vvhk
(1) Workflow:
Description:
This class represents a workflow. A workflow can contain more than one job. Note: a job in workflow can be another workflow.
Functions:
Workflow.addJob( jobname, job )
A new job is appended to this workflow.
Workflow.deleteJob( jobname )
The job with the name specified by parameter jobname is deleted. As a result, all related dependency is deleted as well.
Workflow.listJobs( )
List all jobs in a workflow.
Workflow.searchByName( jobname )
search job in terms of name.
Workflow.addDependency( jobparent, jobchild )
Add dependency which says that job jobparent should be executed before job jobchild.
Workflow.removeDependency( jobparent, jobchild )
Remove dependency between job jobparent and job jobchild.
Workflow.toggleDependency( jobparent, jobchild )
Toggle dependency. If there is a dependency, remove it. If there is not, create a new one.
(2) WFQueue
Description:
This class represents a workflow queue in which all workflows have no dependency on each other. In other words, workflows in WFQueue can be executed in arbitrary order.
Functions:
WFQueue.addWorkflow( name, workflow )
Append the workflow specified by parameter to a workflow queue.
WFQueue.removeWorkflowByIndex( index )
Remove a workflow according to parameter index.
WFQueue.removeWorkflowByName( name )
Remove a workflow with name specified by parameter name.
WFQueue.clearAll( )
Remove all workflows in the queue.
WFQueue.searchByName( name )
Return the index of the workflow with the name specified by parameter. If no
corresponding workflow exists, return -1.
(3) Executor
Description:
This class mainly submits workflow to remote server.
Functions:
Executor.Executor( serverURL )
Constructor of class Executor. The parameter specifies URL of remote server where following submissions will be sent.
Executor.submitWF( workflow );
Submit workflow to remote server.
Executor.submitWFQueue( workflow );
Submit workflow queue to remote server.
Executor.transfer( from, to )
Shortcut for transferring a file. Note: this task can be done by putting a corresponding job into a workflow, then submitting the workflow to remote server. However, job “transfer” is used so frequently that I decide to separate it.
(4) Queryer
Description:
This class is used to query state of workflows submitted by end users.
Functions:
Queryer.query( username );
Get state of all workflows submitted by a user.
Queryer.query( username, workflowid )
Get state of a specified workflow submitted by a user.
Queryer.query( username, workflowids )
Get state of specified workflows submitted by a user.
(5) Authenticator
Functions:
Authenticator.login( username, password )
Authenticator.logout( username, [ password ] )