зеркало из https://github.com/github/vitess-gh.git
93 строки
3.0 KiB
Protocol Buffer
93 строки
3.0 KiB
Protocol Buffer
// This file contains the Vitess workflow management related data
|
|
// structures. They are used to store / retrieve state from topology
|
|
// server.
|
|
|
|
syntax = "proto3";
|
|
|
|
package workflow;
|
|
|
|
// WorkflowState describes the state of a workflow.
|
|
// This constant should match the Node object described in
|
|
// web/vtctld2/src/app/workflows/node.ts as it is exposed as JSON to
|
|
// the Angular 2 web app.
|
|
enum WorkflowState {
|
|
NotStarted = 0;
|
|
Running = 1;
|
|
Done = 2;
|
|
}
|
|
|
|
// Workflow is the persisted state of a long-running workflow.
|
|
message Workflow {
|
|
// uuid is set when the workflow is created, and immutable after
|
|
// that.
|
|
string uuid = 1;
|
|
|
|
// factory_name is set with the name of the factory that created the
|
|
// job (and can also restart it). It is set at creation time, and
|
|
// immutable after that.
|
|
string factory_name = 2;
|
|
|
|
// name is the display name of the workflow.
|
|
string name = 3;
|
|
|
|
// state describes the state of the job. A job is created as
|
|
// NotStarted, then the Workflow Manager picks it up and starts it,
|
|
// switching it to Running (and populating 'start_time'). The
|
|
// workflow can then fail over to a new Workflow Manager is
|
|
// necessary, and still be in Running state. When done, it goes to
|
|
// Done, 'end_time' is populated, and 'error' is set if there was an
|
|
// error.
|
|
WorkflowState state = 4;
|
|
|
|
// data is workflow-specific stored data. It is usually a binary
|
|
// proto-encoded data structure. It can vary throughout the
|
|
// execution of the workflow. It will not change after the workflow
|
|
// is Done.
|
|
bytes data = 5;
|
|
|
|
// error is set if the job finished with an error. This field only
|
|
// makes sense if 'state' is Done.
|
|
string error = 6;
|
|
|
|
// start_time is set when the workflow manager starts a workflow for
|
|
// the first time. This field only makes sense if 'state' is Running
|
|
// or Done.
|
|
int64 start_time = 7;
|
|
|
|
// end_time is set when the workflow is finished.
|
|
// This field only makes sense if 'state' is Done.
|
|
int64 end_time = 8;
|
|
}
|
|
|
|
message WorkflowCheckpoint {
|
|
// code_version is used to detect incompabilities between the version of the
|
|
// running workflow and the one which wrote the checkpoint. If they don't
|
|
// match, the workflow must not continue. The author of workflow must update
|
|
// this variable in their implementation when incompabilities are introduced.
|
|
int32 code_version = 1;
|
|
// tasks stores all tasks of the workflow in a map. The key is a unique name
|
|
// to identify the task, e.g. clone/-80.
|
|
|
|
// Task is the data structure that stores the execution status and the
|
|
// attributes of a task.
|
|
map<string, Task> tasks = 2;
|
|
// settings includes workflow specific data, e.g. the resharding workflow
|
|
// would store the source shards and destination shards.
|
|
map<string, string> settings = 3;
|
|
}
|
|
|
|
enum TaskState {
|
|
TaskNotStarted = 0;
|
|
TaskRunning = 1;
|
|
TaskDone = 2;
|
|
}
|
|
|
|
message Task {
|
|
string id = 1;
|
|
TaskState state = 2;
|
|
// attributes includes the parameters the task needs.
|
|
map<string, string> attributes = 3;
|
|
string error = 4;
|
|
}
|
|
|