// TaskContainer are processed sequentially, one at a time.
repeatedTaskContainerserial_tasks=2;
// Cached value. This has to be re-evaluated e.g. after a checkpoint load because running tasks may have already finished.
ClusterOperationStatestate=3;
// Error of the first task which failed. Set after state advanced to CLUSTER_OPERATION_DONE. If empty, all tasks succeeded. Cached value, see state above.
stringerror=4;
}
// TaskContainer holds one or more task which may be executed in parallel.
// "concurrency", if > 0, limits the amount of concurrently executed tasks.
messageTaskContainer{
repeatedTaskparallel_tasks=1;
int32concurrency=2;
}
enumTaskState{
UNKNOWN_TASK_STATE=0;
NOT_STARTED=1;
RUNNING=2;
DONE=3;
}
// Task represents a specific task which should be automatically executed.
messageTask{
// Task specification.
stringname=1;
map<string,string>parameters=2;
// Runtime data.
stringid=3;
TaskStatestate=4;
// Set after state advanced to DONE.
stringoutput=5;
// Set after state advanced to DONE. If empty, the task did succeed.
stringerror=6;
}
messageEnqueueClusterOperationRequest{
stringname=1;
map<string,string>parameters=2;
}
messageEnqueueClusterOperationResponse{
stringid=1;
}
messageGetClusterOperationStateRequest{
stringid=1;
}
messageGetClusterOperationStateResponse{
ClusterOperationStatestate=1;
}
messageGetClusterOperationDetailsRequest{
stringid=1;
}
messageGetClusterOperationDetailsResponse{
// Full snapshot of the execution e.g. including output of each task.