Defining New Workflows
There are front end and back end requirements for workflows.
Workflow definition on the front end
At the core of workflows is a JSON structured file. The file defines components and labels of a workflow. Below is the definition for the Visualizer workflow segmented for annotation.
import rootNewSimulation from './components/root/NewSimulation'; |
Imported views for the workflow. These are all referenced in the object that’s exported from this file.
export default { |
In the components object, NewSimulation is a view which goes below the “Name” and “Description” fields in a new simulation view. They’re often where you’ll see file upload inputs. ViewSimulation is the root component for containing the workflow. It’s usually an ActiveList panel with the Workflow’s steps and the views corresponding to the Workflow step.
logo it not required but helps visually distinguish projects in the projects list.
config: { |
Extra config options which are appended to the run simulaiton view.
steps: { |
Workflow step definition. _order determines the step order in the ActiveList the strings here must match the keys of the steps. _initial_state defines if the step is enabled or disabled. #FIXME type isn’t used for anything?
Introduction and Visualization are the step definitions. Within them you can define multiple views. default is the default view the user will see when they first open that step, here it’s stepStartViz which is imported above. Here the run step defines the view which you see when the simulation is running.
taskFlows: { |
The keys in taskFlows correspond to step names and the value corresponds to a python path class which the backend of HPCCloud uses to run the step’s taskflow on a target machine.
primaryJobs: { |
The keys in ‘primaryJobs’ are the step names, the value is the name of the job which runs on the target machine.
labels: { |
Labels for the steps and step subviews.