mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2025-12-21 08:40:10 -06:00
feat: refresh timeout (#495)
* feat: show timeout on step run * feat: refresh timeout * fix: increment timeout from last time * feat: add step run event for timeout refresh * chore: generate * feat: add refreshing timeouts docs section * chore: linting * feat: go client * chore: generate * chore: generate * fix: test context * chore: generate * fix: rm txn * fix: validator * chore: lint --------- Co-authored-by: Alexander Belanger <alexander@hatchet.run>
This commit is contained in:
@@ -28,6 +28,8 @@ service Dispatcher {
|
||||
|
||||
rpc Unsubscribe(WorkerUnsubscribeRequest) returns (WorkerUnsubscribeResponse) {}
|
||||
|
||||
rpc RefreshTimeout(RefreshTimeoutRequest) returns (RefreshTimeoutResponse) {}
|
||||
|
||||
rpc ReleaseSlot(ReleaseSlotRequest) returns (ReleaseSlotResponse) {}
|
||||
}
|
||||
|
||||
@@ -294,6 +296,17 @@ message HeartbeatRequest {
|
||||
|
||||
message HeartbeatResponse {}
|
||||
|
||||
message RefreshTimeoutRequest {
|
||||
// the id of the step run to release
|
||||
string stepRunId = 1;
|
||||
|
||||
string incrementTimeoutBy = 2;
|
||||
}
|
||||
|
||||
message RefreshTimeoutResponse {
|
||||
google.protobuf.Timestamp timeoutAt = 1;
|
||||
|
||||
}
|
||||
message ReleaseSlotRequest {
|
||||
// the id of the step run to release
|
||||
string stepRunId = 1;
|
||||
|
||||
@@ -283,6 +283,7 @@ StepRunEventReason:
|
||||
- FAILED
|
||||
- RETRYING
|
||||
- CANCELLED
|
||||
- TIMEOUT_REFRESHED
|
||||
- REASSIGNED
|
||||
- TIMED_OUT
|
||||
- SLOT_RELEASED
|
||||
|
||||
@@ -274,7 +274,7 @@ triggerWorkflow:
|
||||
tags:
|
||||
- Workflow Run
|
||||
|
||||
cancelWorkflowRuns:
|
||||
cancelWorkflowRuns:
|
||||
post:
|
||||
x-resources: ["tenant"]
|
||||
description: Cancel a batch of workflow runs
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/hashicorp/go-multierror"
|
||||
|
||||
"github.com/hatchet-dev/hatchet/api/v1/server/oas/gen"
|
||||
"github.com/hatchet-dev/hatchet/internal/msgqueue"
|
||||
"github.com/hatchet-dev/hatchet/internal/repository/prisma/db"
|
||||
|
||||
@@ -85,6 +85,7 @@ const (
|
||||
StepRunEventReasonSLOTRELEASED StepRunEventReason = "SLOT_RELEASED"
|
||||
StepRunEventReasonSTARTED StepRunEventReason = "STARTED"
|
||||
StepRunEventReasonTIMEDOUT StepRunEventReason = "TIMED_OUT"
|
||||
StepRunEventReasonTIMEOUTREFRESHED StepRunEventReason = "TIMEOUT_REFRESHED"
|
||||
)
|
||||
|
||||
// Defines values for StepRunEventSeverity.
|
||||
@@ -7997,107 +7998,107 @@ var swaggerSpec = []string{
|
||||
"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",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React from 'react';
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import TimeAgo from 'timeago-react';
|
||||
import {
|
||||
Tooltip,
|
||||
@@ -9,16 +9,71 @@ import {
|
||||
|
||||
interface RelativeDateProps {
|
||||
date: Date | string;
|
||||
future?: boolean;
|
||||
}
|
||||
|
||||
const RelativeDate: React.FC<RelativeDateProps> = ({ date }) => {
|
||||
const formattedDate = typeof date === 'string' ? new Date(date) : date;
|
||||
const RelativeDate: React.FC<RelativeDateProps> = ({
|
||||
date,
|
||||
future = false,
|
||||
}) => {
|
||||
const formattedDate = useMemo(
|
||||
() => (typeof date === 'string' ? new Date(date) : date),
|
||||
[date],
|
||||
);
|
||||
|
||||
const [countdown, setCountdown] = useState('');
|
||||
|
||||
useEffect(() => {
|
||||
if (future) {
|
||||
const updateCountdown = () => {
|
||||
const currentDate = new Date();
|
||||
const timeDiff = formattedDate.getTime() - currentDate.getTime();
|
||||
|
||||
if (timeDiff <= 0) {
|
||||
setCountdown('');
|
||||
return;
|
||||
}
|
||||
|
||||
const days = Math.floor(timeDiff / (1000 * 3600 * 24));
|
||||
const hours = Math.floor(
|
||||
(timeDiff % (1000 * 3600 * 24)) / (1000 * 3600),
|
||||
);
|
||||
const minutes = Math.floor((timeDiff % (1000 * 3600)) / (1000 * 60));
|
||||
const seconds = Math.floor((timeDiff % (1000 * 60)) / 1000);
|
||||
|
||||
const countdownParts = [];
|
||||
if (days > 0) {
|
||||
countdownParts.push(`${days}d`);
|
||||
}
|
||||
if (hours > 0 || days > 0) {
|
||||
countdownParts.push(`${hours}h`);
|
||||
}
|
||||
if (minutes > 0 || hours > 0 || days > 0) {
|
||||
countdownParts.push(`${minutes}m`);
|
||||
}
|
||||
countdownParts.push(`${seconds}s`);
|
||||
|
||||
setCountdown(countdownParts.join(' '));
|
||||
};
|
||||
|
||||
updateCountdown();
|
||||
const countdownInterval = setInterval(updateCountdown, 1000);
|
||||
|
||||
return () => {
|
||||
clearInterval(countdownInterval);
|
||||
};
|
||||
}
|
||||
}, [formattedDate, future]);
|
||||
|
||||
return (
|
||||
<TooltipProvider>
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TimeAgo datetime={formattedDate} />
|
||||
{future && countdown ? (
|
||||
<>{countdown}</>
|
||||
) : (
|
||||
<TimeAgo datetime={formattedDate} />
|
||||
)}
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>{formattedDate.toLocaleString()}</TooltipContent>
|
||||
</Tooltip>
|
||||
|
||||
@@ -687,6 +687,7 @@ export enum StepRunEventReason {
|
||||
FAILED = "FAILED",
|
||||
RETRYING = "RETRYING",
|
||||
CANCELLED = "CANCELLED",
|
||||
TIMEOUT_REFRESHED = "TIMEOUT_REFRESHED",
|
||||
REASSIGNED = "REASSIGNED",
|
||||
TIMED_OUT = "TIMED_OUT",
|
||||
SLOT_RELEASED = "SLOT_RELEASED",
|
||||
|
||||
@@ -89,6 +89,7 @@ const REASON_TO_TITLE: Record<StepRunEventReason, string> = {
|
||||
[StepRunEventReason.REQUEUED_NO_WORKER]: 'Requeueing (no worker available)',
|
||||
[StepRunEventReason.REQUEUED_RATE_LIMIT]: 'Requeueing (rate limit)',
|
||||
[StepRunEventReason.SCHEDULING_TIMED_OUT]: 'Scheduling timed out',
|
||||
[StepRunEventReason.TIMEOUT_REFRESHED]: 'Timeout refreshed',
|
||||
[StepRunEventReason.REASSIGNED]: 'Reassigned',
|
||||
[StepRunEventReason.TIMED_OUT]: 'Execution timed out',
|
||||
[StepRunEventReason.SLOT_RELEASED]: 'Slot released',
|
||||
|
||||
@@ -32,6 +32,7 @@ import { RunStatus } from '../../components/run-statuses';
|
||||
import { QuestionMarkCircleIcon, XMarkIcon } from '@heroicons/react/24/outline';
|
||||
import { WorkflowRunsTable } from '../../components/workflow-runs-table';
|
||||
import { StepRunEvents } from './step-run-events';
|
||||
import RelativeDate from '@/components/molecules/relative-date';
|
||||
|
||||
export function StepRunPlayground({
|
||||
stepRun,
|
||||
@@ -453,6 +454,12 @@ export function StepRunPlayground({
|
||||
|
||||
{isLoading && disabled && (
|
||||
<>
|
||||
{stepRun.timeoutAt && (
|
||||
<div>
|
||||
Timeout in{' '}
|
||||
<RelativeDate date={stepRun.timeoutAt} future />
|
||||
</div>
|
||||
)}
|
||||
<Button className="w-fit" onClick={handleOnCancel}>
|
||||
<>
|
||||
<XMarkIcon className={cn('h-4 w-4 mr-2')} />
|
||||
|
||||
@@ -122,6 +122,29 @@ This would set a timeout of 30 seconds for this specific step. If the step takes
|
||||
[cancellation](/features/cancellation) for more information.
|
||||
</Callout>
|
||||
|
||||
## Refreshing Timeouts
|
||||
|
||||
In some cases, you may need to extend the timeout for a step while it is running. This can be done using the `refreshTimeout` function provided by the step context (`ctx`).
|
||||
|
||||
For example:
|
||||
|
||||
```typescript
|
||||
const myStep: CreateStep<any, any> = {
|
||||
name: "my-step",
|
||||
timeout: "30s",
|
||||
run: async (ctx) => {
|
||||
await sleep(20 * 1000);
|
||||
ctx.refreshTimeout("15s");
|
||||
await sleep(10 * 1000);
|
||||
return { step1: "step1 results!" };
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
In this example, the step initially has a timeout of 30 seconds. After 19 seconds, the `refreshTimeout` function is called with an argument of `'15s'`, which extends the timeout by an additional 15 seconds. This allows the step to continue running for a total of 45 seconds (30 seconds initial timeout + 15 seconds refreshed timeout).
|
||||
|
||||
The `refreshTimeout` function can be called multiple times within a step to further extend the timeout as needed.
|
||||
|
||||
## Use Cases
|
||||
|
||||
Timeouts are useful in a variety of scenarios:
|
||||
|
||||
@@ -244,6 +244,7 @@ const (
|
||||
StepRunEventReasonTIMEDOUT StepRunEventReason = "TIMED_OUT"
|
||||
StepRunEventReasonREASSIGNED StepRunEventReason = "REASSIGNED"
|
||||
StepRunEventReasonSLOTRELEASED StepRunEventReason = "SLOT_RELEASED"
|
||||
StepRunEventReasonTIMEOUTREFRESHED StepRunEventReason = "TIMEOUT_REFRESHED"
|
||||
)
|
||||
|
||||
func (e *StepRunEventReason) Scan(src interface{}) error {
|
||||
|
||||
@@ -14,7 +14,7 @@ CREATE TYPE "JobRunStatus" AS ENUM ('PENDING', 'RUNNING', 'SUCCEEDED', 'FAILED',
|
||||
CREATE TYPE "LogLineLevel" AS ENUM ('DEBUG', 'INFO', 'WARN', 'ERROR');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "StepRunEventReason" AS ENUM ('REQUEUED_NO_WORKER', 'REQUEUED_RATE_LIMIT', 'SCHEDULING_TIMED_OUT', 'ASSIGNED', 'STARTED', 'FINISHED', 'FAILED', 'RETRYING', 'CANCELLED', 'TIMED_OUT', 'REASSIGNED', 'SLOT_RELEASED');
|
||||
CREATE TYPE "StepRunEventReason" AS ENUM ('REQUEUED_NO_WORKER', 'REQUEUED_RATE_LIMIT', 'SCHEDULING_TIMED_OUT', 'ASSIGNED', 'STARTED', 'FINISHED', 'FAILED', 'RETRYING', 'CANCELLED', 'TIMED_OUT', 'REASSIGNED', 'SLOT_RELEASED', 'TIMEOUT_REFRESHED');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "StepRunEventSeverity" AS ENUM ('INFO', 'WARNING', 'CRITICAL');
|
||||
|
||||
@@ -565,6 +565,22 @@ SELECT ts."totalSlots"::int, usr."id", usr."workerId", usr."dispatcherId"
|
||||
FROM total_slots ts
|
||||
LEFT JOIN update_step_run usr ON true;
|
||||
|
||||
-- name: RefreshTimeoutBy :one
|
||||
UPDATE
|
||||
"StepRun" sr
|
||||
SET
|
||||
"timeoutAt" = CASE
|
||||
-- Only update timeoutAt if the step run is currently in RUNNING status
|
||||
WHEN sr."status" = 'RUNNING' THEN
|
||||
COALESCE(sr."timeoutAt", CURRENT_TIMESTAMP) + convert_duration_to_interval(sqlc.narg('incrementTimeoutBy')::text)
|
||||
ELSE sr."timeoutAt"
|
||||
END,
|
||||
"updatedAt" = CURRENT_TIMESTAMP
|
||||
WHERE
|
||||
"id" = @stepRunId::uuid AND
|
||||
"tenantId" = @tenantId::uuid
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateWorkerSemaphore :one
|
||||
WITH step_run AS (
|
||||
SELECT
|
||||
|
||||
@@ -925,6 +925,64 @@ func (q *Queries) ListStepRunsToRequeue(ctx context.Context, db DBTX, tenantid p
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const refreshTimeoutBy = `-- name: RefreshTimeoutBy :one
|
||||
UPDATE
|
||||
"StepRun" sr
|
||||
SET
|
||||
"timeoutAt" = CASE
|
||||
-- Only update timeoutAt if the step run is currently in RUNNING status
|
||||
WHEN sr."status" = 'RUNNING' THEN
|
||||
COALESCE(sr."timeoutAt", CURRENT_TIMESTAMP) + convert_duration_to_interval($1::text)
|
||||
ELSE sr."timeoutAt"
|
||||
END,
|
||||
"updatedAt" = CURRENT_TIMESTAMP
|
||||
WHERE
|
||||
"id" = $2::uuid AND
|
||||
"tenantId" = $3::uuid
|
||||
RETURNING id, "createdAt", "updatedAt", "deletedAt", "tenantId", "jobRunId", "stepId", "order", "workerId", "tickerId", status, input, output, "requeueAfter", "scheduleTimeoutAt", error, "startedAt", "finishedAt", "timeoutAt", "cancelledAt", "cancelledReason", "cancelledError", "inputSchema", "callerFiles", "gitRepoBranch", "retryCount", "semaphoreReleased"
|
||||
`
|
||||
|
||||
type RefreshTimeoutByParams struct {
|
||||
IncrementTimeoutBy pgtype.Text `json:"incrementTimeoutBy"`
|
||||
Steprunid pgtype.UUID `json:"steprunid"`
|
||||
Tenantid pgtype.UUID `json:"tenantid"`
|
||||
}
|
||||
|
||||
func (q *Queries) RefreshTimeoutBy(ctx context.Context, db DBTX, arg RefreshTimeoutByParams) (*StepRun, error) {
|
||||
row := db.QueryRow(ctx, refreshTimeoutBy, arg.IncrementTimeoutBy, arg.Steprunid, arg.Tenantid)
|
||||
var i StepRun
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
&i.DeletedAt,
|
||||
&i.TenantId,
|
||||
&i.JobRunId,
|
||||
&i.StepId,
|
||||
&i.Order,
|
||||
&i.WorkerId,
|
||||
&i.TickerId,
|
||||
&i.Status,
|
||||
&i.Input,
|
||||
&i.Output,
|
||||
&i.RequeueAfter,
|
||||
&i.ScheduleTimeoutAt,
|
||||
&i.Error,
|
||||
&i.StartedAt,
|
||||
&i.FinishedAt,
|
||||
&i.TimeoutAt,
|
||||
&i.CancelledAt,
|
||||
&i.CancelledReason,
|
||||
&i.CancelledError,
|
||||
&i.InputSchema,
|
||||
&i.CallerFiles,
|
||||
&i.GitRepoBranch,
|
||||
&i.RetryCount,
|
||||
&i.SemaphoreReleased,
|
||||
)
|
||||
return &i, err
|
||||
}
|
||||
|
||||
const resolveLaterStepRuns = `-- name: ResolveLaterStepRuns :many
|
||||
WITH RECURSIVE currStepRun AS (
|
||||
SELECT id, "createdAt", "updatedAt", "deletedAt", "tenantId", "jobRunId", "stepId", "order", "workerId", "tickerId", status, input, output, "requeueAfter", "scheduleTimeoutAt", error, "startedAt", "finishedAt", "timeoutAt", "cancelledAt", "cancelledReason", "cancelledError", "inputSchema", "callerFiles", "gitRepoBranch", "retryCount", "semaphoreReleased"
|
||||
|
||||
@@ -1336,3 +1336,35 @@ func sleepWithJitter(min, max time.Duration) {
|
||||
time.Sleep(min) // Sleep for min duration if jitter is not positive
|
||||
}
|
||||
}
|
||||
|
||||
func (s *stepRunEngineRepository) RefreshTimeoutBy(ctx context.Context, tenantId, stepRunId string, opts repository.RefreshTimeoutBy) (*dbsqlc.StepRun, error) {
|
||||
stepRunUUID := sqlchelpers.UUIDFromStr(stepRunId)
|
||||
tenantUUID := sqlchelpers.UUIDFromStr(tenantId)
|
||||
|
||||
incrementTimeoutBy := opts.IncrementTimeoutBy
|
||||
|
||||
err := s.v.Validate(opts)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res, err := s.queries.RefreshTimeoutBy(ctx, s.pool, dbsqlc.RefreshTimeoutByParams{
|
||||
Steprunid: stepRunUUID,
|
||||
Tenantid: tenantUUID,
|
||||
IncrementTimeoutBy: sqlchelpers.TextFromStr(incrementTimeoutBy),
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defer s.deferredStepRunEvent(
|
||||
stepRunUUID,
|
||||
dbsqlc.StepRunEventReasonTIMEOUTREFRESHED,
|
||||
dbsqlc.StepRunEventSeverityINFO,
|
||||
fmt.Sprintf("Timeout refreshed by %s", incrementTimeoutBy),
|
||||
nil)
|
||||
|
||||
return res, nil
|
||||
}
|
||||
|
||||
@@ -114,6 +114,10 @@ type ListStepRunEventResult struct {
|
||||
Count int
|
||||
}
|
||||
|
||||
type RefreshTimeoutBy struct {
|
||||
IncrementTimeoutBy string `validate:"required,duration"`
|
||||
}
|
||||
|
||||
type StepRunAPIRepository interface {
|
||||
GetStepRunById(tenantId, stepRunId string) (*db.StepRunModel, error)
|
||||
|
||||
@@ -157,4 +161,6 @@ type StepRunEngineRepository interface {
|
||||
ListStartableStepRuns(ctx context.Context, tenantId, jobRunId string, parentStepRunId *string) ([]*dbsqlc.GetStepRunForEngineRow, error)
|
||||
|
||||
ArchiveStepRunResult(ctx context.Context, tenantId, stepRunId string) error
|
||||
|
||||
RefreshTimeoutBy(ctx context.Context, tenantId, stepRunId string, opts RefreshTimeoutBy) (*dbsqlc.StepRun, error)
|
||||
}
|
||||
|
||||
@@ -1616,6 +1616,109 @@ func (*HeartbeatResponse) Descriptor() ([]byte, []int) {
|
||||
return file_dispatcher_proto_rawDescGZIP(), []int{17}
|
||||
}
|
||||
|
||||
type RefreshTimeoutRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// the id of the step run to release
|
||||
StepRunId string `protobuf:"bytes,1,opt,name=stepRunId,proto3" json:"stepRunId,omitempty"`
|
||||
IncrementTimeoutBy string `protobuf:"bytes,2,opt,name=incrementTimeoutBy,proto3" json:"incrementTimeoutBy,omitempty"`
|
||||
}
|
||||
|
||||
func (x *RefreshTimeoutRequest) Reset() {
|
||||
*x = RefreshTimeoutRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dispatcher_proto_msgTypes[18]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *RefreshTimeoutRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*RefreshTimeoutRequest) ProtoMessage() {}
|
||||
|
||||
func (x *RefreshTimeoutRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dispatcher_proto_msgTypes[18]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use RefreshTimeoutRequest.ProtoReflect.Descriptor instead.
|
||||
func (*RefreshTimeoutRequest) Descriptor() ([]byte, []int) {
|
||||
return file_dispatcher_proto_rawDescGZIP(), []int{18}
|
||||
}
|
||||
|
||||
func (x *RefreshTimeoutRequest) GetStepRunId() string {
|
||||
if x != nil {
|
||||
return x.StepRunId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *RefreshTimeoutRequest) GetIncrementTimeoutBy() string {
|
||||
if x != nil {
|
||||
return x.IncrementTimeoutBy
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type RefreshTimeoutResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
TimeoutAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timeoutAt,proto3" json:"timeoutAt,omitempty"`
|
||||
}
|
||||
|
||||
func (x *RefreshTimeoutResponse) Reset() {
|
||||
*x = RefreshTimeoutResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dispatcher_proto_msgTypes[19]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *RefreshTimeoutResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*RefreshTimeoutResponse) ProtoMessage() {}
|
||||
|
||||
func (x *RefreshTimeoutResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dispatcher_proto_msgTypes[19]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use RefreshTimeoutResponse.ProtoReflect.Descriptor instead.
|
||||
func (*RefreshTimeoutResponse) Descriptor() ([]byte, []int) {
|
||||
return file_dispatcher_proto_rawDescGZIP(), []int{19}
|
||||
}
|
||||
|
||||
func (x *RefreshTimeoutResponse) GetTimeoutAt() *timestamppb.Timestamp {
|
||||
if x != nil {
|
||||
return x.TimeoutAt
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type ReleaseSlotRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@@ -1628,7 +1731,7 @@ type ReleaseSlotRequest struct {
|
||||
func (x *ReleaseSlotRequest) Reset() {
|
||||
*x = ReleaseSlotRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dispatcher_proto_msgTypes[18]
|
||||
mi := &file_dispatcher_proto_msgTypes[20]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -1641,7 +1744,7 @@ func (x *ReleaseSlotRequest) String() string {
|
||||
func (*ReleaseSlotRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ReleaseSlotRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dispatcher_proto_msgTypes[18]
|
||||
mi := &file_dispatcher_proto_msgTypes[20]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -1654,7 +1757,7 @@ func (x *ReleaseSlotRequest) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use ReleaseSlotRequest.ProtoReflect.Descriptor instead.
|
||||
func (*ReleaseSlotRequest) Descriptor() ([]byte, []int) {
|
||||
return file_dispatcher_proto_rawDescGZIP(), []int{18}
|
||||
return file_dispatcher_proto_rawDescGZIP(), []int{20}
|
||||
}
|
||||
|
||||
func (x *ReleaseSlotRequest) GetStepRunId() string {
|
||||
@@ -1673,7 +1776,7 @@ type ReleaseSlotResponse struct {
|
||||
func (x *ReleaseSlotResponse) Reset() {
|
||||
*x = ReleaseSlotResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_dispatcher_proto_msgTypes[19]
|
||||
mi := &file_dispatcher_proto_msgTypes[21]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -1686,7 +1789,7 @@ func (x *ReleaseSlotResponse) String() string {
|
||||
func (*ReleaseSlotResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ReleaseSlotResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_dispatcher_proto_msgTypes[19]
|
||||
mi := &file_dispatcher_proto_msgTypes[21]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -1699,7 +1802,7 @@ func (x *ReleaseSlotResponse) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use ReleaseSlotResponse.ProtoReflect.Descriptor instead.
|
||||
func (*ReleaseSlotResponse) Descriptor() ([]byte, []int) {
|
||||
return file_dispatcher_proto_rawDescGZIP(), []int{19}
|
||||
return file_dispatcher_proto_rawDescGZIP(), []int{21}
|
||||
}
|
||||
|
||||
var File_dispatcher_proto protoreflect.FileDescriptor
|
||||
@@ -1887,104 +1990,120 @@ var file_dispatcher_proto_rawDesc = []byte{
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
|
||||
0x61, 0x6d, 0x70, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x41, 0x74,
|
||||
0x22, 0x13, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x12, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65,
|
||||
0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73,
|
||||
0x74, 0x65, 0x70, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
||||
0x73, 0x74, 0x65, 0x70, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6c,
|
||||
0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x2a, 0x4e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12,
|
||||
0x0a, 0x0e, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x52, 0x55, 0x4e,
|
||||
0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x45,
|
||||
0x50, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x52, 0x54,
|
||||
0x5f, 0x47, 0x45, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x02,
|
||||
0x2a, 0xa2, 0x01, 0x0a, 0x17, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c,
|
||||
0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
|
||||
0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x20,
|
||||
0x0a, 0x1c, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e,
|
||||
0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01,
|
||||
0x12, 0x22, 0x0a, 0x1e, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56,
|
||||
0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
|
||||
0x45, 0x44, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45,
|
||||
0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x49,
|
||||
0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x8a, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x65, 0x70, 0x41, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a,
|
||||
0x17, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45,
|
||||
0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54,
|
||||
0x45, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54,
|
||||
0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x45, 0x50, 0x5f,
|
||||
0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c,
|
||||
0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45,
|
||||
0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
|
||||
0x10, 0x03, 0x2a, 0x65, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79,
|
||||
0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54,
|
||||
0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a,
|
||||
0x16, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53,
|
||||
0x54, 0x45, 0x50, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53,
|
||||
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x46,
|
||||
0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x02, 0x2a, 0xfe, 0x01, 0x0a, 0x11, 0x52, 0x65,
|
||||
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
|
||||
0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e,
|
||||
0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
|
||||
0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45,
|
||||
0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10,
|
||||
0x01, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56,
|
||||
0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
|
||||
0x45, 0x44, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
|
||||
0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c,
|
||||
0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
|
||||
0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43,
|
||||
0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55,
|
||||
0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54,
|
||||
0x49, 0x4d, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45,
|
||||
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50,
|
||||
0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x06, 0x2a, 0x3c, 0x0a, 0x14, 0x57, 0x6f,
|
||||
0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79,
|
||||
0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x52,
|
||||
0x55, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49,
|
||||
0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x00, 0x32, 0xe2, 0x05, 0x0a, 0x0a, 0x44, 0x69, 0x73,
|
||||
0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73,
|
||||
0x74, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69,
|
||||
0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x57, 0x6f,
|
||||
0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
|
||||
0x12, 0x14, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65,
|
||||
0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x30, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x65, 0x6e, 0x56, 0x32, 0x12, 0x14, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e,
|
||||
0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00,
|
||||
0x30, 0x01, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12,
|
||||
0x11, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x1a, 0x12, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x73,
|
||||
0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45,
|
||||
0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
|
||||
0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74,
|
||||
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
|
||||
0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x17,
|
||||
0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66,
|
||||
0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x1f, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
|
||||
0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e,
|
||||
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
|
||||
0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x28, 0x01, 0x30,
|
||||
0x01, 0x12, 0x3f, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x41,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a, 0x14, 0x2e, 0x41, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x00, 0x12, 0x47, 0x0a, 0x17, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b,
|
||||
0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x2e,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x15, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c,
|
||||
0x0a, 0x09, 0x73, 0x74, 0x65, 0x70, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12,
|
||||
0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
|
||||
0x42, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d,
|
||||
0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x79, 0x22, 0x52, 0x0a, 0x16,
|
||||
0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
|
||||
0x74, 0x41, 0x74, 0x18, 0x01, 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, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x41, 0x74,
|
||||
0x22, 0x32, 0x0a, 0x12, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x65, 0x70, 0x52, 0x75,
|
||||
0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x52,
|
||||
0x75, 0x6e, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53,
|
||||
0x6c, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x4e, 0x0a, 0x0a, 0x41,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41,
|
||||
0x52, 0x54, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a,
|
||||
0x0f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x52, 0x55, 0x4e,
|
||||
0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x47, 0x45, 0x54, 0x5f,
|
||||
0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x02, 0x2a, 0xa2, 0x01, 0x0a, 0x17,
|
||||
0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76,
|
||||
0x65, 0x6e, 0x74, 0x1a, 0x14, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x10, 0x50,
|
||||
0x75, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12,
|
||||
0x0e, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a,
|
||||
0x16, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0b, 0x55, 0x6e, 0x73,
|
||||
0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x19, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65,
|
||||
0x72, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x75,
|
||||
0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x52, 0x4f, 0x55, 0x50,
|
||||
0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
|
||||
0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x52, 0x4f,
|
||||
0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50,
|
||||
0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x47,
|
||||
0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54,
|
||||
0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12,
|
||||
0x1f, 0x0a, 0x1b, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45,
|
||||
0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03,
|
||||
0x2a, 0x8a, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45,
|
||||
0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x45, 0x50,
|
||||
0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
|
||||
0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45, 0x56,
|
||||
0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44,
|
||||
0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54,
|
||||
0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10,
|
||||
0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
|
||||
0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x65, 0x0a,
|
||||
0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a,
|
||||
0x15, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55,
|
||||
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x45, 0x53, 0x4f,
|
||||
0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x52,
|
||||
0x55, 0x4e, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
|
||||
0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x52,
|
||||
0x55, 0x4e, 0x10, 0x02, 0x2a, 0xfe, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
|
||||
0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45,
|
||||
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50,
|
||||
0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x52,
|
||||
0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59,
|
||||
0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d,
|
||||
0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54,
|
||||
0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12,
|
||||
0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e,
|
||||
0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12,
|
||||
0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e,
|
||||
0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44,
|
||||
0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45,
|
||||
0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x5f,
|
||||
0x4f, 0x55, 0x54, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43,
|
||||
0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52,
|
||||
0x45, 0x41, 0x4d, 0x10, 0x06, 0x2a, 0x3c, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
|
||||
0x77, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a,
|
||||
0x20, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x45, 0x56,
|
||||
0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45,
|
||||
0x44, 0x10, 0x00, 0x32, 0xa7, 0x06, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68,
|
||||
0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16,
|
||||
0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52,
|
||||
0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x00, 0x12, 0x33, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x12, 0x14, 0x2e, 0x57, 0x6f,
|
||||
0x72, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x0f, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x22, 0x00, 0x30, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
|
||||
0x56, 0x32, 0x12, 0x14, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65,
|
||||
0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67,
|
||||
0x6e, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x30, 0x01, 0x12, 0x34, 0x0a,
|
||||
0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x11, 0x2e, 0x48, 0x65, 0x61,
|
||||
0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e,
|
||||
0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
|
||||
0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
|
||||
0x12, 0x21, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f,
|
||||
0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76,
|
||||
0x65, 0x6e, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x73, 0x63,
|
||||
0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75,
|
||||
0x6e, 0x73, 0x12, 0x1f, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f,
|
||||
0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75,
|
||||
0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x13,
|
||||
0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76,
|
||||
0x65, 0x6e, 0x74, 0x12, 0x10, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a, 0x14, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76,
|
||||
0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a,
|
||||
0x17, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a, 0x14,
|
||||
0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x4f, 0x76, 0x65,
|
||||
0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x2e, 0x4f, 0x76, 0x65,
|
||||
0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x4f, 0x76, 0x65,
|
||||
0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0b, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
|
||||
0x69, 0x62, 0x65, 0x12, 0x19, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x75,
|
||||
0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a,
|
||||
0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
|
||||
0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e,
|
||||
0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16,
|
||||
0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74,
|
||||
0x12, 0x13, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53,
|
||||
@@ -2009,7 +2128,7 @@ func file_dispatcher_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_dispatcher_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
|
||||
var file_dispatcher_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
|
||||
var file_dispatcher_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
|
||||
var file_dispatcher_proto_goTypes = []interface{}{
|
||||
(ActionType)(0), // 0: ActionType
|
||||
(GroupKeyActionEventType)(0), // 1: GroupKeyActionEventType
|
||||
@@ -2035,50 +2154,55 @@ var file_dispatcher_proto_goTypes = []interface{}{
|
||||
(*OverridesDataResponse)(nil), // 21: OverridesDataResponse
|
||||
(*HeartbeatRequest)(nil), // 22: HeartbeatRequest
|
||||
(*HeartbeatResponse)(nil), // 23: HeartbeatResponse
|
||||
(*ReleaseSlotRequest)(nil), // 24: ReleaseSlotRequest
|
||||
(*ReleaseSlotResponse)(nil), // 25: ReleaseSlotResponse
|
||||
(*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp
|
||||
(*RefreshTimeoutRequest)(nil), // 24: RefreshTimeoutRequest
|
||||
(*RefreshTimeoutResponse)(nil), // 25: RefreshTimeoutResponse
|
||||
(*ReleaseSlotRequest)(nil), // 26: ReleaseSlotRequest
|
||||
(*ReleaseSlotResponse)(nil), // 27: ReleaseSlotResponse
|
||||
(*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp
|
||||
}
|
||||
var file_dispatcher_proto_depIdxs = []int32{
|
||||
0, // 0: AssignedAction.actionType:type_name -> ActionType
|
||||
26, // 1: GroupKeyActionEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
28, // 1: GroupKeyActionEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
1, // 2: GroupKeyActionEvent.eventType:type_name -> GroupKeyActionEventType
|
||||
26, // 3: StepActionEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
28, // 3: StepActionEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
2, // 4: StepActionEvent.eventType:type_name -> StepActionEventType
|
||||
3, // 5: WorkflowEvent.resourceType:type_name -> ResourceType
|
||||
4, // 6: WorkflowEvent.eventType:type_name -> ResourceEventType
|
||||
26, // 7: WorkflowEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
28, // 7: WorkflowEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
5, // 8: WorkflowRunEvent.eventType:type_name -> WorkflowRunEventType
|
||||
26, // 9: WorkflowRunEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
28, // 9: WorkflowRunEvent.eventTimestamp:type_name -> google.protobuf.Timestamp
|
||||
19, // 10: WorkflowRunEvent.results:type_name -> StepRunResult
|
||||
26, // 11: HeartbeatRequest.heartbeatAt:type_name -> google.protobuf.Timestamp
|
||||
6, // 12: Dispatcher.Register:input_type -> WorkerRegisterRequest
|
||||
9, // 13: Dispatcher.Listen:input_type -> WorkerListenRequest
|
||||
9, // 14: Dispatcher.ListenV2:input_type -> WorkerListenRequest
|
||||
22, // 15: Dispatcher.Heartbeat:input_type -> HeartbeatRequest
|
||||
15, // 16: Dispatcher.SubscribeToWorkflowEvents:input_type -> SubscribeToWorkflowEventsRequest
|
||||
16, // 17: Dispatcher.SubscribeToWorkflowRuns:input_type -> SubscribeToWorkflowRunsRequest
|
||||
13, // 18: Dispatcher.SendStepActionEvent:input_type -> StepActionEvent
|
||||
12, // 19: Dispatcher.SendGroupKeyActionEvent:input_type -> GroupKeyActionEvent
|
||||
20, // 20: Dispatcher.PutOverridesData:input_type -> OverridesData
|
||||
10, // 21: Dispatcher.Unsubscribe:input_type -> WorkerUnsubscribeRequest
|
||||
24, // 22: Dispatcher.ReleaseSlot:input_type -> ReleaseSlotRequest
|
||||
7, // 23: Dispatcher.Register:output_type -> WorkerRegisterResponse
|
||||
8, // 24: Dispatcher.Listen:output_type -> AssignedAction
|
||||
8, // 25: Dispatcher.ListenV2:output_type -> AssignedAction
|
||||
23, // 26: Dispatcher.Heartbeat:output_type -> HeartbeatResponse
|
||||
17, // 27: Dispatcher.SubscribeToWorkflowEvents:output_type -> WorkflowEvent
|
||||
18, // 28: Dispatcher.SubscribeToWorkflowRuns:output_type -> WorkflowRunEvent
|
||||
14, // 29: Dispatcher.SendStepActionEvent:output_type -> ActionEventResponse
|
||||
14, // 30: Dispatcher.SendGroupKeyActionEvent:output_type -> ActionEventResponse
|
||||
21, // 31: Dispatcher.PutOverridesData:output_type -> OverridesDataResponse
|
||||
11, // 32: Dispatcher.Unsubscribe:output_type -> WorkerUnsubscribeResponse
|
||||
25, // 33: Dispatcher.ReleaseSlot:output_type -> ReleaseSlotResponse
|
||||
23, // [23:34] is the sub-list for method output_type
|
||||
12, // [12:23] is the sub-list for method input_type
|
||||
12, // [12:12] is the sub-list for extension type_name
|
||||
12, // [12:12] is the sub-list for extension extendee
|
||||
0, // [0:12] is the sub-list for field type_name
|
||||
28, // 11: HeartbeatRequest.heartbeatAt:type_name -> google.protobuf.Timestamp
|
||||
28, // 12: RefreshTimeoutResponse.timeoutAt:type_name -> google.protobuf.Timestamp
|
||||
6, // 13: Dispatcher.Register:input_type -> WorkerRegisterRequest
|
||||
9, // 14: Dispatcher.Listen:input_type -> WorkerListenRequest
|
||||
9, // 15: Dispatcher.ListenV2:input_type -> WorkerListenRequest
|
||||
22, // 16: Dispatcher.Heartbeat:input_type -> HeartbeatRequest
|
||||
15, // 17: Dispatcher.SubscribeToWorkflowEvents:input_type -> SubscribeToWorkflowEventsRequest
|
||||
16, // 18: Dispatcher.SubscribeToWorkflowRuns:input_type -> SubscribeToWorkflowRunsRequest
|
||||
13, // 19: Dispatcher.SendStepActionEvent:input_type -> StepActionEvent
|
||||
12, // 20: Dispatcher.SendGroupKeyActionEvent:input_type -> GroupKeyActionEvent
|
||||
20, // 21: Dispatcher.PutOverridesData:input_type -> OverridesData
|
||||
10, // 22: Dispatcher.Unsubscribe:input_type -> WorkerUnsubscribeRequest
|
||||
24, // 23: Dispatcher.RefreshTimeout:input_type -> RefreshTimeoutRequest
|
||||
26, // 24: Dispatcher.ReleaseSlot:input_type -> ReleaseSlotRequest
|
||||
7, // 25: Dispatcher.Register:output_type -> WorkerRegisterResponse
|
||||
8, // 26: Dispatcher.Listen:output_type -> AssignedAction
|
||||
8, // 27: Dispatcher.ListenV2:output_type -> AssignedAction
|
||||
23, // 28: Dispatcher.Heartbeat:output_type -> HeartbeatResponse
|
||||
17, // 29: Dispatcher.SubscribeToWorkflowEvents:output_type -> WorkflowEvent
|
||||
18, // 30: Dispatcher.SubscribeToWorkflowRuns:output_type -> WorkflowRunEvent
|
||||
14, // 31: Dispatcher.SendStepActionEvent:output_type -> ActionEventResponse
|
||||
14, // 32: Dispatcher.SendGroupKeyActionEvent:output_type -> ActionEventResponse
|
||||
21, // 33: Dispatcher.PutOverridesData:output_type -> OverridesDataResponse
|
||||
11, // 34: Dispatcher.Unsubscribe:output_type -> WorkerUnsubscribeResponse
|
||||
25, // 35: Dispatcher.RefreshTimeout:output_type -> RefreshTimeoutResponse
|
||||
27, // 36: Dispatcher.ReleaseSlot:output_type -> ReleaseSlotResponse
|
||||
25, // [25:37] is the sub-list for method output_type
|
||||
13, // [13:25] is the sub-list for method input_type
|
||||
13, // [13:13] is the sub-list for extension type_name
|
||||
13, // [13:13] is the sub-list for extension extendee
|
||||
0, // [0:13] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_dispatcher_proto_init() }
|
||||
@@ -2304,7 +2428,7 @@ func file_dispatcher_proto_init() {
|
||||
}
|
||||
}
|
||||
file_dispatcher_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ReleaseSlotRequest); i {
|
||||
switch v := v.(*RefreshTimeoutRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
@@ -2316,6 +2440,30 @@ func file_dispatcher_proto_init() {
|
||||
}
|
||||
}
|
||||
file_dispatcher_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*RefreshTimeoutResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_dispatcher_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ReleaseSlotRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_dispatcher_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ReleaseSlotResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@@ -2337,7 +2485,7 @@ func file_dispatcher_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_dispatcher_proto_rawDesc,
|
||||
NumEnums: 6,
|
||||
NumMessages: 20,
|
||||
NumMessages: 22,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
|
||||
@@ -35,6 +35,7 @@ type DispatcherClient interface {
|
||||
SendGroupKeyActionEvent(ctx context.Context, in *GroupKeyActionEvent, opts ...grpc.CallOption) (*ActionEventResponse, error)
|
||||
PutOverridesData(ctx context.Context, in *OverridesData, opts ...grpc.CallOption) (*OverridesDataResponse, error)
|
||||
Unsubscribe(ctx context.Context, in *WorkerUnsubscribeRequest, opts ...grpc.CallOption) (*WorkerUnsubscribeResponse, error)
|
||||
RefreshTimeout(ctx context.Context, in *RefreshTimeoutRequest, opts ...grpc.CallOption) (*RefreshTimeoutResponse, error)
|
||||
ReleaseSlot(ctx context.Context, in *ReleaseSlotRequest, opts ...grpc.CallOption) (*ReleaseSlotResponse, error)
|
||||
}
|
||||
|
||||
@@ -227,6 +228,15 @@ func (c *dispatcherClient) Unsubscribe(ctx context.Context, in *WorkerUnsubscrib
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *dispatcherClient) RefreshTimeout(ctx context.Context, in *RefreshTimeoutRequest, opts ...grpc.CallOption) (*RefreshTimeoutResponse, error) {
|
||||
out := new(RefreshTimeoutResponse)
|
||||
err := c.cc.Invoke(ctx, "/Dispatcher/RefreshTimeout", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *dispatcherClient) ReleaseSlot(ctx context.Context, in *ReleaseSlotRequest, opts ...grpc.CallOption) (*ReleaseSlotResponse, error) {
|
||||
out := new(ReleaseSlotResponse)
|
||||
err := c.cc.Invoke(ctx, "/Dispatcher/ReleaseSlot", in, out, opts...)
|
||||
@@ -253,6 +263,7 @@ type DispatcherServer interface {
|
||||
SendGroupKeyActionEvent(context.Context, *GroupKeyActionEvent) (*ActionEventResponse, error)
|
||||
PutOverridesData(context.Context, *OverridesData) (*OverridesDataResponse, error)
|
||||
Unsubscribe(context.Context, *WorkerUnsubscribeRequest) (*WorkerUnsubscribeResponse, error)
|
||||
RefreshTimeout(context.Context, *RefreshTimeoutRequest) (*RefreshTimeoutResponse, error)
|
||||
ReleaseSlot(context.Context, *ReleaseSlotRequest) (*ReleaseSlotResponse, error)
|
||||
mustEmbedUnimplementedDispatcherServer()
|
||||
}
|
||||
@@ -291,6 +302,9 @@ func (UnimplementedDispatcherServer) PutOverridesData(context.Context, *Override
|
||||
func (UnimplementedDispatcherServer) Unsubscribe(context.Context, *WorkerUnsubscribeRequest) (*WorkerUnsubscribeResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Unsubscribe not implemented")
|
||||
}
|
||||
func (UnimplementedDispatcherServer) RefreshTimeout(context.Context, *RefreshTimeoutRequest) (*RefreshTimeoutResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method RefreshTimeout not implemented")
|
||||
}
|
||||
func (UnimplementedDispatcherServer) ReleaseSlot(context.Context, *ReleaseSlotRequest) (*ReleaseSlotResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ReleaseSlot not implemented")
|
||||
}
|
||||
@@ -504,6 +518,24 @@ func _Dispatcher_Unsubscribe_Handler(srv interface{}, ctx context.Context, dec f
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Dispatcher_RefreshTimeout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(RefreshTimeoutRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(DispatcherServer).RefreshTimeout(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/Dispatcher/RefreshTimeout",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(DispatcherServer).RefreshTimeout(ctx, req.(*RefreshTimeoutRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Dispatcher_ReleaseSlot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ReleaseSlotRequest)
|
||||
if err := dec(in); err != nil {
|
||||
@@ -553,6 +585,10 @@ var Dispatcher_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "Unsubscribe",
|
||||
Handler: _Dispatcher_Unsubscribe_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "RefreshTimeout",
|
||||
Handler: _Dispatcher_RefreshTimeout_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ReleaseSlot",
|
||||
Handler: _Dispatcher_ReleaseSlot_Handler,
|
||||
|
||||
@@ -706,6 +706,29 @@ func (s *DispatcherImpl) Unsubscribe(ctx context.Context, request *contracts.Wor
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (d *DispatcherImpl) RefreshTimeout(ctx context.Context, request *contracts.RefreshTimeoutRequest) (*contracts.RefreshTimeoutResponse, error) {
|
||||
tenant := ctx.Value("tenant").(*dbsqlc.Tenant)
|
||||
tenantId := sqlchelpers.UUIDToStr(tenant.ID)
|
||||
|
||||
stepRun, err := d.repo.StepRun().RefreshTimeoutBy(ctx, tenantId, request.StepRunId, repository.RefreshTimeoutBy{
|
||||
IncrementTimeoutBy: request.IncrementTimeoutBy,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
timeoutAt := ×tamppb.Timestamp{
|
||||
Seconds: stepRun.TimeoutAt.Time.Unix(),
|
||||
Nanos: int32(stepRun.TimeoutAt.Time.Nanosecond()),
|
||||
}
|
||||
|
||||
return &contracts.RefreshTimeoutResponse{
|
||||
TimeoutAt: timeoutAt,
|
||||
}, nil
|
||||
|
||||
}
|
||||
|
||||
func (s *DispatcherImpl) handleStepRunStarted(ctx context.Context, request *contracts.StepActionEvent) (*contracts.ActionEventResponse, error) {
|
||||
tenant := ctx.Value("tenant").(*dbsqlc.Tenant)
|
||||
tenantId := sqlchelpers.UUIDToStr(tenant.ID)
|
||||
|
||||
@@ -24,6 +24,8 @@ type DispatcherClient interface {
|
||||
SendGroupKeyActionEvent(ctx context.Context, in *ActionEvent) (*ActionEventResponse, error)
|
||||
|
||||
ReleaseSlot(ctx context.Context, stepRunId string) error
|
||||
|
||||
RefreshTimeout(ctx context.Context, stepRunId string, incrementTimeoutBy string) error
|
||||
}
|
||||
|
||||
const (
|
||||
@@ -492,3 +494,16 @@ func (a *dispatcherClientImpl) ReleaseSlot(ctx context.Context, stepRunId string
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *dispatcherClientImpl) RefreshTimeout(ctx context.Context, stepRunId string, incrementTimeoutBy string) error {
|
||||
_, err := a.client.RefreshTimeout(a.ctx.newContext(ctx), &dispatchercontracts.RefreshTimeoutRequest{
|
||||
StepRunId: stepRunId,
|
||||
IncrementTimeoutBy: incrementTimeoutBy,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@ const (
|
||||
StepRunEventReasonSLOTRELEASED StepRunEventReason = "SLOT_RELEASED"
|
||||
StepRunEventReasonSTARTED StepRunEventReason = "STARTED"
|
||||
StepRunEventReasonTIMEDOUT StepRunEventReason = "TIMED_OUT"
|
||||
StepRunEventReasonTIMEOUTREFRESHED StepRunEventReason = "TIMEOUT_REFRESHED"
|
||||
)
|
||||
|
||||
// Defines values for StepRunEventSeverity.
|
||||
|
||||
@@ -38,6 +38,8 @@ type HatchetContext interface {
|
||||
|
||||
ReleaseSlot() error
|
||||
|
||||
RefreshTimeout(incrementTimeoutBy string) error
|
||||
|
||||
client() client.Client
|
||||
|
||||
action() *client.Action
|
||||
@@ -174,6 +176,16 @@ func (h *hatchetContext) ReleaseSlot() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *hatchetContext) RefreshTimeout(incrementTimeoutBy string) error {
|
||||
err := h.c.Dispatcher().RefreshTimeout(h, h.a.StepRunId, incrementTimeoutBy)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to refresh timeout: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *hatchetContext) StreamEvent(message []byte) {
|
||||
err := h.c.Event().PutStreamEvent(h, h.a.StepRunId, message)
|
||||
|
||||
|
||||
@@ -56,6 +56,10 @@ func (c *testHatchetContext) ReleaseSlot() error {
|
||||
panic("not implemented")
|
||||
}
|
||||
|
||||
func (c *testHatchetContext) RefreshTimeout(incrementIntervalBy string) error {
|
||||
panic("not implemented")
|
||||
}
|
||||
|
||||
func (c *testHatchetContext) StreamEvent(message []byte) {
|
||||
panic("not implemented")
|
||||
}
|
||||
|
||||
2
prisma/migrations/20240514203126_v0_28_0/migration.sql
Normal file
2
prisma/migrations/20240514203126_v0_28_0/migration.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "StepRunEventReason" ADD VALUE 'TIMEOUT_REFRESHED';
|
||||
@@ -1043,6 +1043,7 @@ enum StepRunEventReason {
|
||||
FAILED
|
||||
RETRYING
|
||||
CANCELLED
|
||||
TIMEOUT_REFRESHED
|
||||
SLOT_RELEASED
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user