diff --git a/cmd/tink-cli/cmd/workflow/state.go b/cmd/tink-cli/cmd/workflow/state.go index 51d28f9cb..ec8e5b327 100644 --- a/cmd/tink-cli/cmd/workflow/state.go +++ b/cmd/tink-cli/cmd/workflow/state.go @@ -48,12 +48,12 @@ var stateCmd = &cobra.Command{ }, } -func calWorkflowProgress(cur int64, total int64, state workflow.ActionState) string { - if total == 0 || (cur == 0 && state != workflow.ActionState_ACTION_STATE_SUCCESS) { +func calWorkflowProgress(cur int64, total int64, state workflow.State) string { + if total == 0 || (cur == 0 && state != workflow.State_STATE_SUCCESS) { return "0%" } var taskCompleted int64 - if state == workflow.ActionState_ACTION_STATE_SUCCESS { + if state == workflow.State_STATE_SUCCESS { taskCompleted = cur + 1 } else { taskCompleted = cur diff --git a/cmd/tink-worker/internal/action.go b/cmd/tink-worker/internal/action.go index 2139856ea..a0110f987 100644 --- a/cmd/tink-worker/internal/action.go +++ b/cmd/tink-worker/internal/action.go @@ -51,10 +51,10 @@ func startContainer(ctx context.Context, l log.Logger, cli *client.Client, id st return errors.Wrap(cli.ContainerStart(ctx, id, types.ContainerStartOptions{}), "DOCKER START") } -func waitContainer(ctx context.Context, cli *client.Client, id string) (pb.ActionState, error) { +func waitContainer(ctx context.Context, cli *client.Client, id string) (pb.State, error) { // Inspect whether the container is in running state if _, err := cli.ContainerInspect(ctx, id); err != nil { - return pb.ActionState_ACTION_STATE_FAILED, nil + return pb.State_STATE_FAILED, nil } // send API call to wait for the container completion @@ -63,32 +63,32 @@ func waitContainer(ctx context.Context, cli *client.Client, id string) (pb.Actio select { case status := <-wait: if status.StatusCode == 0 { - return pb.ActionState_ACTION_STATE_SUCCESS, nil + return pb.State_STATE_SUCCESS, nil } - return pb.ActionState_ACTION_STATE_FAILED, nil + return pb.State_STATE_FAILED, nil case err := <-errC: - return pb.ActionState_ACTION_STATE_FAILED, err + return pb.State_STATE_FAILED, err case <-ctx.Done(): - return pb.ActionState_ACTION_STATE_TIMEOUT, ctx.Err() + return pb.State_STATE_TIMEOUT, ctx.Err() } } -func waitFailedContainer(ctx context.Context, l log.Logger, cli *client.Client, id string, failedActionStatus chan pb.ActionState) { +func waitFailedContainer(ctx context.Context, l log.Logger, cli *client.Client, id string, failedActionStatus chan pb.State) { // send API call to wait for the container completion wait, errC := cli.ContainerWait(ctx, id, container.WaitConditionNotRunning) select { case status := <-wait: if status.StatusCode == 0 { - failedActionStatus <- pb.ActionState_ACTION_STATE_SUCCESS + failedActionStatus <- pb.State_STATE_SUCCESS } - failedActionStatus <- pb.ActionState_ACTION_STATE_FAILED + failedActionStatus <- pb.State_STATE_FAILED case err := <-errC: l.Error(err) - failedActionStatus <- pb.ActionState_ACTION_STATE_FAILED + failedActionStatus <- pb.State_STATE_FAILED case <-ctx.Done(): l.Error(ctx.Err()) - failedActionStatus <- pb.ActionState_ACTION_STATE_TIMEOUT + failedActionStatus <- pb.State_STATE_TIMEOUT } } diff --git a/cmd/tink-worker/internal/worker.go b/cmd/tink-worker/internal/worker.go index bac4d19a5..65c35ec6c 100644 --- a/cmd/tink-worker/internal/worker.go +++ b/cmd/tink-worker/internal/worker.go @@ -94,16 +94,16 @@ func (w *Worker) captureLogs(ctx context.Context, id string) { } } -func (w *Worker) execute(ctx context.Context, wfID string, action *pb.WorkflowAction) (pb.ActionState, error) { +func (w *Worker) execute(ctx context.Context, wfID string, action *pb.WorkflowAction) (pb.State, error) { l := w.logger.With("workflowID", wfID, "workerID", action.GetWorkerId(), "actionName", action.GetName(), "actionImage", action.GetImage()) cli := w.registryClient if err := w.regConn.pullImage(ctx, cli, action.GetImage()); err != nil { - return pb.ActionState_ACTION_STATE_IN_PROGRESS, errors.Wrap(err, "DOCKER PULL") + return pb.State_STATE_RUNNING, errors.Wrap(err, "DOCKER PULL") } id, err := w.createContainer(ctx, action.Command, wfID, action) if err != nil { - return pb.ActionState_ACTION_STATE_IN_PROGRESS, errors.Wrap(err, "DOCKER CREATE") + return pb.State_STATE_RUNNING, errors.Wrap(err, "DOCKER CREATE") } l.With("containerID", id, "command", action.GetOnTimeout()).Info("container created") @@ -119,10 +119,10 @@ func (w *Worker) execute(ctx context.Context, wfID string, action *pb.WorkflowAc err = startContainer(timeCtx, l, cli, id) if err != nil { - return pb.ActionState_ACTION_STATE_IN_PROGRESS, errors.Wrap(err, "DOCKER RUN") + return pb.State_STATE_RUNNING, errors.Wrap(err, "DOCKER RUN") } - failedActionStatus := make(chan pb.ActionState) + failedActionStatus := make(chan pb.State) // capturing logs of action container in a go-routine go w.captureLogs(ctx, id) @@ -139,14 +139,14 @@ func (w *Worker) execute(ctx context.Context, wfID string, action *pb.WorkflowAc } l.With("status", status.String()).Info("container removed") - if status != pb.ActionState_ACTION_STATE_SUCCESS { - if status == pb.ActionState_ACTION_STATE_TIMEOUT && action.OnTimeout != nil { + if status != pb.State_STATE_SUCCESS { + if status == pb.State_STATE_TIMEOUT && action.OnTimeout != nil { id, err = w.createContainer(ctx, action.OnTimeout, wfID, action) if err != nil { l.Error(errors.Wrap(err, errCreateContainer)) } l.With("containerID", id, "status", status.String(), "command", action.GetOnTimeout()).Info("container created") - failedActionStatus := make(chan pb.ActionState) + failedActionStatus := make(chan pb.State) go w.captureLogs(ctx, id) go waitFailedContainer(ctx, l, cli, id, failedActionStatus) err = startContainer(ctx, l, cli, id) @@ -208,15 +208,15 @@ func (w *Worker) ProcessWorkflowActions(ctx context.Context, workerID string) er } } else { switch wfContext.GetCurrentActionState() { - case pb.ActionState_ACTION_STATE_SUCCESS: + case pb.State_STATE_SUCCESS: if isLastAction(wfContext, actions) { continue } nextAction = actions.GetActionList()[wfContext.GetCurrentActionIndex()+1] actionIndex = int(wfContext.GetCurrentActionIndex()) + 1 - case pb.ActionState_ACTION_STATE_FAILED: + case pb.State_STATE_FAILED: continue - case pb.ActionState_ACTION_STATE_TIMEOUT: + case pb.State_STATE_TIMEOUT: continue default: nextAction = actions.GetActionList()[wfContext.GetCurrentActionIndex()] @@ -269,12 +269,12 @@ func (w *Worker) ProcessWorkflowActions(ctx context.Context, workerID string) er l := l.With("actionName", action.GetName(), "taskName", action.GetTaskName(), ) - if wfContext.GetCurrentActionState() != pb.ActionState_ACTION_STATE_IN_PROGRESS { + if wfContext.GetCurrentActionState() != pb.State_STATE_RUNNING { actionStatus := &pb.WorkflowActionStatus{ WorkflowId: wfID, TaskName: action.GetTaskName(), ActionName: action.GetName(), - ActionStatus: pb.ActionState_ACTION_STATE_IN_PROGRESS, + ActionStatus: pb.State_STATE_RUNNING, Seconds: 0, Message: "Started execution", WorkerId: action.GetWorkerId(), @@ -303,11 +303,11 @@ func (w *Worker) ProcessWorkflowActions(ctx context.Context, workerID string) er WorkerId: action.GetWorkerId(), } - if err != nil || status != pb.ActionState_ACTION_STATE_SUCCESS { - if status == pb.ActionState_ACTION_STATE_TIMEOUT { - actionStatus.ActionStatus = pb.ActionState_ACTION_STATE_TIMEOUT + if err != nil || status != pb.State_STATE_SUCCESS { + if status == pb.State_STATE_TIMEOUT { + actionStatus.ActionStatus = pb.State_STATE_TIMEOUT } else { - actionStatus.ActionStatus = pb.ActionState_ACTION_STATE_FAILED + actionStatus.ActionStatus = pb.State_STATE_FAILED } l.With("actionStatus", actionStatus.ActionStatus.String()) l.Error(err) @@ -318,7 +318,7 @@ func (w *Worker) ProcessWorkflowActions(ctx context.Context, workerID string) er return err } - actionStatus.ActionStatus = pb.ActionState_ACTION_STATE_SUCCESS + actionStatus.ActionStatus = pb.State_STATE_SUCCESS actionStatus.Message = "finished execution successfully" err = w.reportActionStatus(ctx, actionStatus) diff --git a/db/workflow.go b/db/workflow.go index 72e33a652..64d68baae 100644 --- a/db/workflow.go +++ b/db/workflow.go @@ -529,7 +529,7 @@ func (d TinkDB) GetWorkflowContexts(ctx context.Context, wfID string) (*pb.Workf row := d.instance.QueryRowContext(ctx, query, wfID) var cw, ct, ca string var cai, tact int64 - var cas pb.ActionState + var cas pb.State err := row.Scan(&cw, &ct, &ca, &cai, &cas, &tact) if err == nil { return &pb.WorkflowContext{ @@ -635,7 +635,7 @@ func (d TinkDB) ShowWorkflowEvents(wfID string, fn func(wfs *pb.WorkflowActionSt ActionName: aName, Seconds: secs, Message: msg, - ActionStatus: pb.ActionState(status), + ActionStatus: pb.State(status), CreatedAt: createdAt, } err = fn(wfs) diff --git a/grpc-server/tinkerbell.go b/grpc-server/tinkerbell.go index 008818a19..97a61efad 100644 --- a/grpc-server/tinkerbell.go +++ b/grpc-server/tinkerbell.go @@ -105,7 +105,7 @@ func (s *server) ReportActionStatus(context context.Context, req *pb.WorkflowAct } actionIndex := wfContext.GetCurrentActionIndex() - if req.GetActionStatus() == pb.ActionState_ACTION_STATE_IN_PROGRESS { + if req.GetActionStatus() == pb.State_STATE_RUNNING { if wfContext.GetCurrentAction() != "" { actionIndex = actionIndex + 1 } @@ -217,15 +217,15 @@ func getWorkflowActions(context context.Context, db db.Database, wfID string) (* // isApplicableToSend checks if a particular workflow context is applicable or if it is needed to // be sent to a worker based on the state of the current action and the targeted workerID func isApplicableToSend(context context.Context, wfContext *pb.WorkflowContext, workerID string, db db.Database) bool { - if wfContext.GetCurrentActionState() == pb.ActionState_ACTION_STATE_FAILED || - wfContext.GetCurrentActionState() == pb.ActionState_ACTION_STATE_TIMEOUT { + if wfContext.GetCurrentActionState() == pb.State_STATE_FAILED || + wfContext.GetCurrentActionState() == pb.State_STATE_TIMEOUT { return false } actions, err := getWorkflowActions(context, db, wfContext.GetWorkflowId()) if err != nil { return false } - if wfContext.GetCurrentActionState() == pb.ActionState_ACTION_STATE_SUCCESS { + if wfContext.GetCurrentActionState() == pb.State_STATE_SUCCESS { if isLastAction(wfContext, actions) { return false } diff --git a/grpc-server/tinkerbell_test.go b/grpc-server/tinkerbell_test.go index c8068c364..ad370f379 100644 --- a/grpc-server/tinkerbell_test.go +++ b/grpc-server/tinkerbell_test.go @@ -104,7 +104,7 @@ func TestGetWorkflowContextList(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, }, @@ -221,7 +221,7 @@ func TestReportActionStatus(t *testing.T) { args struct { db mock.DB workflowID, taskName, actionName, workerID string - actionState pb.ActionState + actionState pb.State } want struct { expectedError bool @@ -272,7 +272,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: taskName, actionName: actionName, - actionState: pb.ActionState_ACTION_STATE_PENDING, + actionState: pb.State_STATE_PENDING, }, want: want{ expectedError: true, @@ -285,7 +285,7 @@ func TestReportActionStatus(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -296,7 +296,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: taskName, actionName: actionName, - actionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + actionState: pb.State_STATE_RUNNING, }, want: want{ expectedError: true, @@ -309,7 +309,7 @@ func TestReportActionStatus(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -336,7 +336,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: taskName, actionName: actionName, - actionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + actionState: pb.State_STATE_RUNNING, }, want: want{ expectedError: false, @@ -351,7 +351,7 @@ func TestReportActionStatus(t *testing.T) { TotalNumberOfActions: 1, CurrentActionIndex: 0, CurrentAction: "disk-wipe", - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -385,7 +385,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: taskName, actionName: actionName, - actionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + actionState: pb.State_STATE_RUNNING, }, want: want{ expectedError: false, @@ -398,7 +398,7 @@ func TestReportActionStatus(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -419,7 +419,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: taskName, actionName: "different-action-name", - actionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + actionState: pb.State_STATE_RUNNING, }, want: want{ expectedError: true, @@ -432,7 +432,7 @@ func TestReportActionStatus(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -453,7 +453,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: "different-task-name", actionName: taskName, - actionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + actionState: pb.State_STATE_RUNNING, }, want: want{ expectedError: true, @@ -466,7 +466,7 @@ func TestReportActionStatus(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -490,7 +490,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: taskName, actionName: actionName, - actionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + actionState: pb.State_STATE_RUNNING, }, want: want{ expectedError: true, @@ -503,7 +503,7 @@ func TestReportActionStatus(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -530,7 +530,7 @@ func TestReportActionStatus(t *testing.T) { workerID: workerID, taskName: taskName, actionName: actionName, - actionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + actionState: pb.State_STATE_RUNNING, }, want: want{ expectedError: true, @@ -977,7 +977,7 @@ func TestIsApplicableToSend(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_FAILED, + CurrentActionState: pb.State_STATE_FAILED, }, nil }, }, @@ -993,7 +993,7 @@ func TestIsApplicableToSend(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_FAILED, + CurrentActionState: pb.State_STATE_FAILED, }, nil }, }, @@ -1009,7 +1009,7 @@ func TestIsApplicableToSend(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_PENDING, + CurrentActionState: pb.State_STATE_PENDING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -1028,7 +1028,7 @@ func TestIsApplicableToSend(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_SUCCESS, + CurrentActionState: pb.State_STATE_SUCCESS, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -1057,7 +1057,7 @@ func TestIsApplicableToSend(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + CurrentActionState: pb.State_STATE_RUNNING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -1086,7 +1086,7 @@ func TestIsApplicableToSend(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_SUCCESS, + CurrentActionState: pb.State_STATE_SUCCESS, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -1122,7 +1122,7 @@ func TestIsApplicableToSend(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_IN_PROGRESS, + CurrentActionState: pb.State_STATE_RUNNING, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -1184,7 +1184,7 @@ func TestIsLastAction(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_SUCCESS, + CurrentActionState: pb.State_STATE_SUCCESS, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { @@ -1220,7 +1220,7 @@ func TestIsLastAction(t *testing.T) { return &pb.WorkflowContext{ WorkflowId: workflowID, TotalNumberOfActions: 1, - CurrentActionState: pb.ActionState_ACTION_STATE_SUCCESS, + CurrentActionState: pb.State_STATE_SUCCESS, }, nil }, GetWorkflowActionsFunc: func(ctx context.Context, wfID string) (*pb.WorkflowActionList, error) { diff --git a/grpc-server/workflow.go b/grpc-server/workflow.go index 9974ce91d..b97c55278 100644 --- a/grpc-server/workflow.go +++ b/grpc-server/workflow.go @@ -214,7 +214,7 @@ func (s *server) GetWorkflowContext(ctx context.Context, in *workflow.GetRequest CurrentTask: w.CurrentTask, CurrentAction: w.CurrentAction, CurrentActionIndex: w.CurrentActionIndex, - CurrentActionState: workflow.ActionState(w.CurrentActionState), + CurrentActionState: workflow.State(w.CurrentActionState), TotalNumberOfActions: w.TotalNumberOfActions, } l := logger.With( @@ -253,7 +253,7 @@ func (s *server) ShowWorkflowEvents(req *workflow.GetRequest, stream workflow.Wo WorkerId: w.WorkerId, TaskName: w.TaskName, ActionName: w.ActionName, - ActionStatus: workflow.ActionState(w.ActionStatus), + ActionStatus: workflow.State(w.ActionStatus), Seconds: w.Seconds, Message: w.Message, CreatedAt: w.CreatedAt, diff --git a/protos/workflow/workflow.pb.go b/protos/workflow/workflow.pb.go index 27eb2d0c0..04666742c 100644 --- a/protos/workflow/workflow.pb.go +++ b/protos/workflow/workflow.pb.go @@ -87,61 +87,6 @@ func (State) EnumDescriptor() ([]byte, []int) { return file_workflow_workflow_proto_rawDescGZIP(), []int{0} } -type ActionState int32 - -const ( - ActionState_ACTION_STATE_PENDING ActionState = 0 - ActionState_ACTION_STATE_IN_PROGRESS ActionState = 1 - ActionState_ACTION_STATE_SUCCESS ActionState = 2 - ActionState_ACTION_STATE_FAILED ActionState = 3 - ActionState_ACTION_STATE_TIMEOUT ActionState = 4 -) - -// Enum value maps for ActionState. -var ( - ActionState_name = map[int32]string{ - 0: "ACTION_STATE_PENDING", - 1: "ACTION_STATE_IN_PROGRESS", - 2: "ACTION_STATE_SUCCESS", - 3: "ACTION_STATE_FAILED", - 4: "ACTION_STATE_TIMEOUT", - } - ActionState_value = map[string]int32{ - "ACTION_STATE_PENDING": 0, - "ACTION_STATE_IN_PROGRESS": 1, - "ACTION_STATE_SUCCESS": 2, - "ACTION_STATE_FAILED": 3, - "ACTION_STATE_TIMEOUT": 4, - } -) - -func (x ActionState) Enum() *ActionState { - p := new(ActionState) - *p = x - return p -} - -func (x ActionState) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ActionState) Descriptor() protoreflect.EnumDescriptor { - return file_workflow_workflow_proto_enumTypes[1].Descriptor() -} - -func (ActionState) Type() protoreflect.EnumType { - return &file_workflow_workflow_proto_enumTypes[1] -} - -func (x ActionState) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ActionState.Descriptor instead. -func (ActionState) EnumDescriptor() ([]byte, []int) { - return file_workflow_workflow_proto_rawDescGZIP(), []int{1} -} - type Empty struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -437,13 +382,13 @@ type WorkflowContext struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkflowId string `protobuf:"bytes,1,opt,name=workflow_id,json=workflowId,proto3" json:"workflow_id,omitempty"` - CurrentWorker string `protobuf:"bytes,2,opt,name=current_worker,json=currentWorker,proto3" json:"current_worker,omitempty"` - CurrentTask string `protobuf:"bytes,3,opt,name=current_task,json=currentTask,proto3" json:"current_task,omitempty"` - CurrentAction string `protobuf:"bytes,4,opt,name=current_action,json=currentAction,proto3" json:"current_action,omitempty"` - CurrentActionIndex int64 `protobuf:"varint,5,opt,name=current_action_index,json=currentActionIndex,proto3" json:"current_action_index,omitempty"` - CurrentActionState ActionState `protobuf:"varint,6,opt,name=current_action_state,json=currentActionState,proto3,enum=github.com.tinkerbell.tink.protos.workflow.ActionState" json:"current_action_state,omitempty"` - TotalNumberOfActions int64 `protobuf:"varint,7,opt,name=total_number_of_actions,json=totalNumberOfActions,proto3" json:"total_number_of_actions,omitempty"` + WorkflowId string `protobuf:"bytes,1,opt,name=workflow_id,json=workflowId,proto3" json:"workflow_id,omitempty"` + CurrentWorker string `protobuf:"bytes,2,opt,name=current_worker,json=currentWorker,proto3" json:"current_worker,omitempty"` + CurrentTask string `protobuf:"bytes,3,opt,name=current_task,json=currentTask,proto3" json:"current_task,omitempty"` + CurrentAction string `protobuf:"bytes,4,opt,name=current_action,json=currentAction,proto3" json:"current_action,omitempty"` + CurrentActionIndex int64 `protobuf:"varint,5,opt,name=current_action_index,json=currentActionIndex,proto3" json:"current_action_index,omitempty"` + CurrentActionState State `protobuf:"varint,6,opt,name=current_action_state,json=currentActionState,proto3,enum=github.com.tinkerbell.tink.protos.workflow.State" json:"current_action_state,omitempty"` + TotalNumberOfActions int64 `protobuf:"varint,7,opt,name=total_number_of_actions,json=totalNumberOfActions,proto3" json:"total_number_of_actions,omitempty"` } func (x *WorkflowContext) Reset() { @@ -513,11 +458,11 @@ func (x *WorkflowContext) GetCurrentActionIndex() int64 { return 0 } -func (x *WorkflowContext) GetCurrentActionState() ActionState { +func (x *WorkflowContext) GetCurrentActionState() State { if x != nil { return x.CurrentActionState } - return ActionState_ACTION_STATE_PENDING + return State_STATE_PENDING } func (x *WorkflowContext) GetTotalNumberOfActions() int64 { @@ -535,7 +480,7 @@ type WorkflowActionStatus struct { WorkflowId string `protobuf:"bytes,1,opt,name=workflow_id,json=workflowId,proto3" json:"workflow_id,omitempty"` TaskName string `protobuf:"bytes,2,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"` ActionName string `protobuf:"bytes,3,opt,name=action_name,json=actionName,proto3" json:"action_name,omitempty"` - ActionStatus ActionState `protobuf:"varint,4,opt,name=action_status,json=actionStatus,proto3,enum=github.com.tinkerbell.tink.protos.workflow.ActionState" json:"action_status,omitempty"` + ActionStatus State `protobuf:"varint,4,opt,name=action_status,json=actionStatus,proto3,enum=github.com.tinkerbell.tink.protos.workflow.State" json:"action_status,omitempty"` Seconds int64 `protobuf:"varint,5,opt,name=seconds,proto3" json:"seconds,omitempty"` Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"` CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` @@ -595,11 +540,11 @@ func (x *WorkflowActionStatus) GetActionName() string { return "" } -func (x *WorkflowActionStatus) GetActionStatus() ActionState { +func (x *WorkflowActionStatus) GetActionStatus() State { if x != nil { return x.ActionStatus } - return ActionState_ACTION_STATE_PENDING + return State_STATE_PENDING } func (x *WorkflowActionStatus) GetSeconds() int64 { @@ -1152,7 +1097,7 @@ var file_workflow_workflow_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xf7, 0x02, 0x0a, 0x0f, 0x57, 0x6f, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xf1, 0x02, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x25, @@ -1166,254 +1111,243 @@ var file_workflow_workflow_proto_rawDesc = []byte{ 0x30, 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x69, 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x78, 0x12, 0x63, 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x37, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, + 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0xdf, 0x02, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x0d, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd9, 0x02, + 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, + 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x35, 0x0a, 0x16, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x7f, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x68, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x35, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x7f, 0x0a, 0x13, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x68, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, - 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, - 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x22, 0x39, 0x0a, - 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0xa2, 0x02, 0x0a, 0x0e, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x46, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x71, 0x0a, - 0x12, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, - 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x22, 0x53, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6c, - 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x77, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, + 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x73, 0x22, 0x39, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x65, 0x0a, 0x05, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, - 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, - 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x03, - 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, - 0x53, 0x10, 0x04, 0x2a, 0x92, 0x01, 0x0a, 0x0b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x1c, 0x0a, - 0x18, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, - 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, - 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, - 0x0a, 0x14, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x04, 0x32, 0xc2, 0x11, 0x0a, 0x0b, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x76, 0x63, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x39, 0x2e, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, - 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, - 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x97, 0x01, 0x0a, - 0x0b, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x36, 0x2e, 0x67, + 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0xa2, 0x02, 0x0a, + 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x5f, + 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6f, + 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x71, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, - 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, - 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, - 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, - 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x76, - 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, - 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x2a, 0x65, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, + 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x04, 0x32, 0xc2, 0x11, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x76, 0x63, 0x12, 0xa1, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x39, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, + 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x15, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x73, 0x30, 0x01, 0x12, 0xab, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x69, + 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x97, 0x01, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x77, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, - 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, + 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, + 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x76, 0x31, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, + 0x91, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x12, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31, - 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x30, 0x01, 0x12, 0x9f, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, - 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x73, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x30, 0x01, 0x12, 0xab, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, + 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, + 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x77, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, + 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x40, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, + 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x30, 0x01, 0x12, 0x9f, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x9a, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, - 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, - 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, - 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x31, 0x2e, + 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x73, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, + 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x9a, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, - 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x67, 0x69, 0x74, + 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0xa0, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x31, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, + 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x9c, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, + 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, - 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0xa3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, - 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x12, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x45, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, - 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0xa0, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x42, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x0a, 0x5a, - 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, + 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0xa3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, + 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x12, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x45, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, + 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x6c, 0x6c, 0x2e, + 0x74, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1428,66 +1362,65 @@ func file_workflow_workflow_proto_rawDescGZIP() []byte { return file_workflow_workflow_proto_rawDescData } -var file_workflow_workflow_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_workflow_workflow_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_workflow_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_workflow_workflow_proto_goTypes = []interface{}{ (State)(0), // 0: github.com.tinkerbell.tink.protos.workflow.State - (ActionState)(0), // 1: github.com.tinkerbell.tink.protos.workflow.ActionState - (*Empty)(nil), // 2: github.com.tinkerbell.tink.protos.workflow.Empty - (*Workflow)(nil), // 3: github.com.tinkerbell.tink.protos.workflow.Workflow - (*CreateRequest)(nil), // 4: github.com.tinkerbell.tink.protos.workflow.CreateRequest - (*CreateResponse)(nil), // 5: github.com.tinkerbell.tink.protos.workflow.CreateResponse - (*GetRequest)(nil), // 6: github.com.tinkerbell.tink.protos.workflow.GetRequest - (*WorkflowContext)(nil), // 7: github.com.tinkerbell.tink.protos.workflow.WorkflowContext - (*WorkflowActionStatus)(nil), // 8: github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus - (*WorkflowContextRequest)(nil), // 9: github.com.tinkerbell.tink.protos.workflow.WorkflowContextRequest - (*WorkflowContextList)(nil), // 10: github.com.tinkerbell.tink.protos.workflow.WorkflowContextList - (*WorkflowActionsRequest)(nil), // 11: github.com.tinkerbell.tink.protos.workflow.WorkflowActionsRequest - (*WorkflowAction)(nil), // 12: github.com.tinkerbell.tink.protos.workflow.WorkflowAction - (*WorkflowActionList)(nil), // 13: github.com.tinkerbell.tink.protos.workflow.WorkflowActionList - (*GetWorkflowDataRequest)(nil), // 14: github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest - (*GetWorkflowDataResponse)(nil), // 15: github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse - (*UpdateWorkflowDataRequest)(nil), // 16: github.com.tinkerbell.tink.protos.workflow.UpdateWorkflowDataRequest - (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp + (*Empty)(nil), // 1: github.com.tinkerbell.tink.protos.workflow.Empty + (*Workflow)(nil), // 2: github.com.tinkerbell.tink.protos.workflow.Workflow + (*CreateRequest)(nil), // 3: github.com.tinkerbell.tink.protos.workflow.CreateRequest + (*CreateResponse)(nil), // 4: github.com.tinkerbell.tink.protos.workflow.CreateResponse + (*GetRequest)(nil), // 5: github.com.tinkerbell.tink.protos.workflow.GetRequest + (*WorkflowContext)(nil), // 6: github.com.tinkerbell.tink.protos.workflow.WorkflowContext + (*WorkflowActionStatus)(nil), // 7: github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus + (*WorkflowContextRequest)(nil), // 8: github.com.tinkerbell.tink.protos.workflow.WorkflowContextRequest + (*WorkflowContextList)(nil), // 9: github.com.tinkerbell.tink.protos.workflow.WorkflowContextList + (*WorkflowActionsRequest)(nil), // 10: github.com.tinkerbell.tink.protos.workflow.WorkflowActionsRequest + (*WorkflowAction)(nil), // 11: github.com.tinkerbell.tink.protos.workflow.WorkflowAction + (*WorkflowActionList)(nil), // 12: github.com.tinkerbell.tink.protos.workflow.WorkflowActionList + (*GetWorkflowDataRequest)(nil), // 13: github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest + (*GetWorkflowDataResponse)(nil), // 14: github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse + (*UpdateWorkflowDataRequest)(nil), // 15: github.com.tinkerbell.tink.protos.workflow.UpdateWorkflowDataRequest + (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp } var file_workflow_workflow_proto_depIdxs = []int32{ 0, // 0: github.com.tinkerbell.tink.protos.workflow.Workflow.state:type_name -> github.com.tinkerbell.tink.protos.workflow.State - 17, // 1: github.com.tinkerbell.tink.protos.workflow.Workflow.created_at:type_name -> google.protobuf.Timestamp - 17, // 2: github.com.tinkerbell.tink.protos.workflow.Workflow.updated_at:type_name -> google.protobuf.Timestamp - 17, // 3: github.com.tinkerbell.tink.protos.workflow.Workflow.deleted_at:type_name -> google.protobuf.Timestamp - 1, // 4: github.com.tinkerbell.tink.protos.workflow.WorkflowContext.current_action_state:type_name -> github.com.tinkerbell.tink.protos.workflow.ActionState - 1, // 5: github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus.action_status:type_name -> github.com.tinkerbell.tink.protos.workflow.ActionState - 17, // 6: github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus.created_at:type_name -> google.protobuf.Timestamp - 7, // 7: github.com.tinkerbell.tink.protos.workflow.WorkflowContextList.workflow_contexts:type_name -> github.com.tinkerbell.tink.protos.workflow.WorkflowContext - 12, // 8: github.com.tinkerbell.tink.protos.workflow.WorkflowActionList.action_list:type_name -> github.com.tinkerbell.tink.protos.workflow.WorkflowAction - 4, // 9: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.CreateWorkflow:input_type -> github.com.tinkerbell.tink.protos.workflow.CreateRequest - 6, // 10: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflow:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest - 6, // 11: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.DeleteWorkflow:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest - 2, // 12: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ListWorkflows:input_type -> github.com.tinkerbell.tink.protos.workflow.Empty - 6, // 13: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContext:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest - 6, // 14: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ShowWorkflowEvents:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest - 9, // 15: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContextList:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContextRequest - 9, // 16: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContexts:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContextRequest - 11, // 17: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowActions:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionsRequest - 8, // 18: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ReportActionStatus:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus - 14, // 19: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowData:input_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest - 14, // 20: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowMetadata:input_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest - 14, // 21: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowDataVersion:input_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest - 16, // 22: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.UpdateWorkflowData:input_type -> github.com.tinkerbell.tink.protos.workflow.UpdateWorkflowDataRequest - 5, // 23: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.CreateWorkflow:output_type -> github.com.tinkerbell.tink.protos.workflow.CreateResponse - 3, // 24: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflow:output_type -> github.com.tinkerbell.tink.protos.workflow.Workflow - 2, // 25: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.DeleteWorkflow:output_type -> github.com.tinkerbell.tink.protos.workflow.Empty - 3, // 26: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ListWorkflows:output_type -> github.com.tinkerbell.tink.protos.workflow.Workflow - 7, // 27: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContext:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContext - 8, // 28: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ShowWorkflowEvents:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus - 10, // 29: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContextList:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContextList - 7, // 30: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContexts:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContext - 13, // 31: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowActions:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionList - 2, // 32: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ReportActionStatus:output_type -> github.com.tinkerbell.tink.protos.workflow.Empty - 15, // 33: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowData:output_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse - 15, // 34: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowMetadata:output_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse - 15, // 35: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowDataVersion:output_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse - 2, // 36: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.UpdateWorkflowData:output_type -> github.com.tinkerbell.tink.protos.workflow.Empty + 16, // 1: github.com.tinkerbell.tink.protos.workflow.Workflow.created_at:type_name -> google.protobuf.Timestamp + 16, // 2: github.com.tinkerbell.tink.protos.workflow.Workflow.updated_at:type_name -> google.protobuf.Timestamp + 16, // 3: github.com.tinkerbell.tink.protos.workflow.Workflow.deleted_at:type_name -> google.protobuf.Timestamp + 0, // 4: github.com.tinkerbell.tink.protos.workflow.WorkflowContext.current_action_state:type_name -> github.com.tinkerbell.tink.protos.workflow.State + 0, // 5: github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus.action_status:type_name -> github.com.tinkerbell.tink.protos.workflow.State + 16, // 6: github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus.created_at:type_name -> google.protobuf.Timestamp + 6, // 7: github.com.tinkerbell.tink.protos.workflow.WorkflowContextList.workflow_contexts:type_name -> github.com.tinkerbell.tink.protos.workflow.WorkflowContext + 11, // 8: github.com.tinkerbell.tink.protos.workflow.WorkflowActionList.action_list:type_name -> github.com.tinkerbell.tink.protos.workflow.WorkflowAction + 3, // 9: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.CreateWorkflow:input_type -> github.com.tinkerbell.tink.protos.workflow.CreateRequest + 5, // 10: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflow:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest + 5, // 11: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.DeleteWorkflow:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest + 1, // 12: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ListWorkflows:input_type -> github.com.tinkerbell.tink.protos.workflow.Empty + 5, // 13: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContext:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest + 5, // 14: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ShowWorkflowEvents:input_type -> github.com.tinkerbell.tink.protos.workflow.GetRequest + 8, // 15: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContextList:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContextRequest + 8, // 16: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContexts:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContextRequest + 10, // 17: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowActions:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionsRequest + 7, // 18: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ReportActionStatus:input_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus + 13, // 19: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowData:input_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest + 13, // 20: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowMetadata:input_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest + 13, // 21: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowDataVersion:input_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataRequest + 15, // 22: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.UpdateWorkflowData:input_type -> github.com.tinkerbell.tink.protos.workflow.UpdateWorkflowDataRequest + 4, // 23: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.CreateWorkflow:output_type -> github.com.tinkerbell.tink.protos.workflow.CreateResponse + 2, // 24: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflow:output_type -> github.com.tinkerbell.tink.protos.workflow.Workflow + 1, // 25: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.DeleteWorkflow:output_type -> github.com.tinkerbell.tink.protos.workflow.Empty + 2, // 26: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ListWorkflows:output_type -> github.com.tinkerbell.tink.protos.workflow.Workflow + 6, // 27: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContext:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContext + 7, // 28: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ShowWorkflowEvents:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionStatus + 9, // 29: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContextList:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContextList + 6, // 30: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowContexts:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowContext + 12, // 31: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowActions:output_type -> github.com.tinkerbell.tink.protos.workflow.WorkflowActionList + 1, // 32: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.ReportActionStatus:output_type -> github.com.tinkerbell.tink.protos.workflow.Empty + 14, // 33: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowData:output_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse + 14, // 34: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowMetadata:output_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse + 14, // 35: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.GetWorkflowDataVersion:output_type -> github.com.tinkerbell.tink.protos.workflow.GetWorkflowDataResponse + 1, // 36: github.com.tinkerbell.tink.protos.workflow.WorkflowSvc.UpdateWorkflowData:output_type -> github.com.tinkerbell.tink.protos.workflow.Empty 23, // [23:37] is the sub-list for method output_type 9, // [9:23] is the sub-list for method input_type 9, // [9:9] is the sub-list for extension type_name @@ -1687,7 +1620,7 @@ func file_workflow_workflow_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_workflow_workflow_proto_rawDesc, - NumEnums: 2, + NumEnums: 1, NumMessages: 15, NumExtensions: 0, NumServices: 1, diff --git a/protos/workflow/workflow.proto b/protos/workflow/workflow.proto index fab1c7b01..11df1daf5 100644 --- a/protos/workflow/workflow.proto +++ b/protos/workflow/workflow.proto @@ -85,21 +85,13 @@ message GetRequest { string id = 1; } -enum ActionState { - ACTION_STATE_PENDING = 0; - ACTION_STATE_IN_PROGRESS = 1; - ACTION_STATE_SUCCESS = 2; - ACTION_STATE_FAILED = 3; - ACTION_STATE_TIMEOUT = 4; -} - message WorkflowContext { string workflow_id = 1; string current_worker = 2; string current_task = 3; string current_action = 4; int64 current_action_index = 5; - ActionState current_action_state = 6; + State current_action_state = 6; int64 total_number_of_actions = 7; } @@ -107,7 +99,7 @@ message WorkflowActionStatus { string workflow_id = 1; string task_name = 2; string action_name = 3; - ActionState action_status = 4; + State action_status = 4; int64 seconds = 5; string message = 6; google.protobuf.Timestamp created_at = 7; diff --git a/test/framework/worker.go b/test/framework/worker.go index 13b2162d8..38e6d7d94 100644 --- a/test/framework/worker.go +++ b/test/framework/worker.go @@ -84,7 +84,7 @@ func removeContainer(ctx context.Context, cli *dc.Client, id string) error { log.Println("Worker Container removed : ", id) return nil } -func checkCurrentStatus(ctx context.Context, wfID string, workflowStatus chan workflow.ActionState) { +func checkCurrentStatus(ctx context.Context, wfID string, workflowStatus chan workflow.State) { for len(workflowStatus) == 0 { GetCurrentStatus(ctx, wfID, workflowStatus) } @@ -110,14 +110,14 @@ func captureLogs(ctx context.Context, cli *dc.Client, id string) { } // StartWorkers starts the dummy workers -func StartWorkers(workers int64, workerStatus chan<- int64, wfID string) (workflow.ActionState, error) { +func StartWorkers(workers int64, workerStatus chan<- int64, wfID string) (workflow.State, error) { log = logger.WithField("workflow_id", wfID) var wg sync.WaitGroup failedWorkers := make(chan string, workers) - workflowStatus := make(chan workflow.ActionState, 1) + workflowStatus := make(chan workflow.State, 1) cli, err := initializeDockerClient() if err != nil { - return workflow.ActionState_ACTION_STATE_FAILED, err + return workflow.State_STATE_FAILED, err } workerContainer := make([]string, workers) var i int64 @@ -151,7 +151,7 @@ func StartWorkers(workers int64, workerStatus chan<- int64, wfID string) (workfl } if err != nil { - return workflow.ActionState_ACTION_STATE_FAILED, err + return workflow.State_STATE_FAILED, err } status := <-workflowStatus diff --git a/test/framework/workflow.go b/test/framework/workflow.go index 7f3902e3e..0cdfd0044 100644 --- a/test/framework/workflow.go +++ b/test/framework/workflow.go @@ -18,30 +18,30 @@ func CreateWorkflow(template string, hardware string) (string, error) { } // GetCurrentStatus : get the current status of workflow from server -func GetCurrentStatus(ctx context.Context, wfID string, status chan workflow.ActionState) { +func GetCurrentStatus(ctx context.Context, wfID string, status chan workflow.State) { req := workflow.GetRequest{Id: wfID} wf, err := client.WorkflowClient.GetWorkflowContext(ctx, &req) if err != nil { log.Errorln("This is in Getting status ERROR: ", err) - status <- workflow.ActionState_ACTION_STATE_FAILED + status <- workflow.State_STATE_FAILED } - if wf.CurrentActionState == workflow.ActionState_ACTION_STATE_FAILED { - status <- workflow.ActionState_ACTION_STATE_FAILED - } else if wf.CurrentActionState == workflow.ActionState_ACTION_STATE_TIMEOUT { - status <- workflow.ActionState_ACTION_STATE_TIMEOUT + if wf.CurrentActionState == workflow.State_STATE_FAILED { + status <- workflow.State_STATE_FAILED + } else if wf.CurrentActionState == workflow.State_STATE_TIMEOUT { + status <- workflow.State_STATE_TIMEOUT } currProgress := calWorkflowProgress(wf.CurrentActionIndex, wf.TotalNumberOfActions, wf.CurrentActionState) - if currProgress == 100 && wf.CurrentActionState == workflow.ActionState_ACTION_STATE_SUCCESS { - status <- workflow.ActionState_ACTION_STATE_SUCCESS + if currProgress == 100 && wf.CurrentActionState == workflow.State_STATE_SUCCESS { + status <- workflow.State_STATE_SUCCESS } } -func calWorkflowProgress(cur int64, total int64, state workflow.ActionState) int64 { - if total == 0 || (cur == 0 && state != workflow.ActionState_ACTION_STATE_SUCCESS) { +func calWorkflowProgress(cur int64, total int64, state workflow.State) int64 { + if total == 0 || (cur == 0 && state != workflow.State_STATE_SUCCESS) { return 0 } var taskCompleted int64 - if state == workflow.ActionState_ACTION_STATE_SUCCESS { + if state == workflow.State_STATE_SUCCESS { taskCompleted = cur + 1 } else { taskCompleted = cur