mirror of
https://github.com/hanzoai/tasks.git
synced 2026-11-03 03:56:04 +00:00
## What changed Adds an admin RPC (`MigrateSchedule`) that migrates workflow-backed (V1) schedulers to CHASM (V2) schedulers. The flow: 1. Admin API signals the V1 scheduler workflow with `migrate-to-chasm` 2. V1 workflow runs a local activity that snapshots state and calls `CreateFromMigrationState` on the CHASM scheduler service 3. On success, the V1 workflow closes. On failure, a `PendingMigration` flag persists so the next run loop iteration retries automatically Key details: - `CreateSchedulerFromMigration` initializes the full CHASM scheduler tree (generator, invoker, backfillers, visibility) from V1 state - Running/completed workflows are converted to buffered starts; ongoing backfills are preserved - Migration is idempotent -- if the CHASM schedule already exists, it's treated as success - Metrics: `schedule_migration_started`, `schedule_migration_completed`, `schedule_migration_failed` (with direction tag) - Local activity uses 10m schedule-to-close timeout; retries happen at the workflow level via the persistent flag ## Why Needed for migrating existing V1 schedulers to CHASM without downtime or data loss. ## Follow-up items - V2 to V1 migration (rollback path) - Sentinel key handling when `EnableCHASMSchedulerCreation` was previously enabled - Attach completion callbacks to running workflows after migration
525 lines
15 KiB
Go
525 lines
15 KiB
Go
// Code generated by protoc-gen-go-helpers. DO NOT EDIT.
|
|
package schedulerpb
|
|
|
|
import (
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
// Marshal an object of type CreateScheduleRequest to the protobuf v3 wire format
|
|
func (val *CreateScheduleRequest) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type CreateScheduleRequest from the protobuf v3 wire format
|
|
func (val *CreateScheduleRequest) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *CreateScheduleRequest) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two CreateScheduleRequest values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *CreateScheduleRequest) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *CreateScheduleRequest
|
|
switch t := that.(type) {
|
|
case *CreateScheduleRequest:
|
|
that1 = t
|
|
case CreateScheduleRequest:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type CreateScheduleResponse to the protobuf v3 wire format
|
|
func (val *CreateScheduleResponse) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type CreateScheduleResponse from the protobuf v3 wire format
|
|
func (val *CreateScheduleResponse) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *CreateScheduleResponse) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two CreateScheduleResponse values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *CreateScheduleResponse) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *CreateScheduleResponse
|
|
switch t := that.(type) {
|
|
case *CreateScheduleResponse:
|
|
that1 = t
|
|
case CreateScheduleResponse:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type UpdateScheduleRequest to the protobuf v3 wire format
|
|
func (val *UpdateScheduleRequest) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type UpdateScheduleRequest from the protobuf v3 wire format
|
|
func (val *UpdateScheduleRequest) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *UpdateScheduleRequest) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two UpdateScheduleRequest values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *UpdateScheduleRequest) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *UpdateScheduleRequest
|
|
switch t := that.(type) {
|
|
case *UpdateScheduleRequest:
|
|
that1 = t
|
|
case UpdateScheduleRequest:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type UpdateScheduleResponse to the protobuf v3 wire format
|
|
func (val *UpdateScheduleResponse) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type UpdateScheduleResponse from the protobuf v3 wire format
|
|
func (val *UpdateScheduleResponse) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *UpdateScheduleResponse) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two UpdateScheduleResponse values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *UpdateScheduleResponse) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *UpdateScheduleResponse
|
|
switch t := that.(type) {
|
|
case *UpdateScheduleResponse:
|
|
that1 = t
|
|
case UpdateScheduleResponse:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type PatchScheduleRequest to the protobuf v3 wire format
|
|
func (val *PatchScheduleRequest) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type PatchScheduleRequest from the protobuf v3 wire format
|
|
func (val *PatchScheduleRequest) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *PatchScheduleRequest) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two PatchScheduleRequest values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *PatchScheduleRequest) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *PatchScheduleRequest
|
|
switch t := that.(type) {
|
|
case *PatchScheduleRequest:
|
|
that1 = t
|
|
case PatchScheduleRequest:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type PatchScheduleResponse to the protobuf v3 wire format
|
|
func (val *PatchScheduleResponse) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type PatchScheduleResponse from the protobuf v3 wire format
|
|
func (val *PatchScheduleResponse) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *PatchScheduleResponse) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two PatchScheduleResponse values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *PatchScheduleResponse) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *PatchScheduleResponse
|
|
switch t := that.(type) {
|
|
case *PatchScheduleResponse:
|
|
that1 = t
|
|
case PatchScheduleResponse:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type DeleteScheduleRequest to the protobuf v3 wire format
|
|
func (val *DeleteScheduleRequest) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type DeleteScheduleRequest from the protobuf v3 wire format
|
|
func (val *DeleteScheduleRequest) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *DeleteScheduleRequest) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two DeleteScheduleRequest values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *DeleteScheduleRequest) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *DeleteScheduleRequest
|
|
switch t := that.(type) {
|
|
case *DeleteScheduleRequest:
|
|
that1 = t
|
|
case DeleteScheduleRequest:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type DeleteScheduleResponse to the protobuf v3 wire format
|
|
func (val *DeleteScheduleResponse) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type DeleteScheduleResponse from the protobuf v3 wire format
|
|
func (val *DeleteScheduleResponse) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *DeleteScheduleResponse) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two DeleteScheduleResponse values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *DeleteScheduleResponse) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *DeleteScheduleResponse
|
|
switch t := that.(type) {
|
|
case *DeleteScheduleResponse:
|
|
that1 = t
|
|
case DeleteScheduleResponse:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type DescribeScheduleRequest to the protobuf v3 wire format
|
|
func (val *DescribeScheduleRequest) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type DescribeScheduleRequest from the protobuf v3 wire format
|
|
func (val *DescribeScheduleRequest) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *DescribeScheduleRequest) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two DescribeScheduleRequest values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *DescribeScheduleRequest) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *DescribeScheduleRequest
|
|
switch t := that.(type) {
|
|
case *DescribeScheduleRequest:
|
|
that1 = t
|
|
case DescribeScheduleRequest:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type DescribeScheduleResponse to the protobuf v3 wire format
|
|
func (val *DescribeScheduleResponse) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type DescribeScheduleResponse from the protobuf v3 wire format
|
|
func (val *DescribeScheduleResponse) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *DescribeScheduleResponse) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two DescribeScheduleResponse values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *DescribeScheduleResponse) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *DescribeScheduleResponse
|
|
switch t := that.(type) {
|
|
case *DescribeScheduleResponse:
|
|
that1 = t
|
|
case DescribeScheduleResponse:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ListScheduleMatchingTimesRequest to the protobuf v3 wire format
|
|
func (val *ListScheduleMatchingTimesRequest) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ListScheduleMatchingTimesRequest from the protobuf v3 wire format
|
|
func (val *ListScheduleMatchingTimesRequest) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ListScheduleMatchingTimesRequest) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ListScheduleMatchingTimesRequest values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ListScheduleMatchingTimesRequest) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ListScheduleMatchingTimesRequest
|
|
switch t := that.(type) {
|
|
case *ListScheduleMatchingTimesRequest:
|
|
that1 = t
|
|
case ListScheduleMatchingTimesRequest:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ListScheduleMatchingTimesResponse to the protobuf v3 wire format
|
|
func (val *ListScheduleMatchingTimesResponse) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ListScheduleMatchingTimesResponse from the protobuf v3 wire format
|
|
func (val *ListScheduleMatchingTimesResponse) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ListScheduleMatchingTimesResponse) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ListScheduleMatchingTimesResponse values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ListScheduleMatchingTimesResponse) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ListScheduleMatchingTimesResponse
|
|
switch t := that.(type) {
|
|
case *ListScheduleMatchingTimesResponse:
|
|
that1 = t
|
|
case ListScheduleMatchingTimesResponse:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type CreateFromMigrationStateRequest to the protobuf v3 wire format
|
|
func (val *CreateFromMigrationStateRequest) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type CreateFromMigrationStateRequest from the protobuf v3 wire format
|
|
func (val *CreateFromMigrationStateRequest) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *CreateFromMigrationStateRequest) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two CreateFromMigrationStateRequest values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *CreateFromMigrationStateRequest) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *CreateFromMigrationStateRequest
|
|
switch t := that.(type) {
|
|
case *CreateFromMigrationStateRequest:
|
|
that1 = t
|
|
case CreateFromMigrationStateRequest:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type CreateFromMigrationStateResponse to the protobuf v3 wire format
|
|
func (val *CreateFromMigrationStateResponse) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type CreateFromMigrationStateResponse from the protobuf v3 wire format
|
|
func (val *CreateFromMigrationStateResponse) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *CreateFromMigrationStateResponse) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two CreateFromMigrationStateResponse values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *CreateFromMigrationStateResponse) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *CreateFromMigrationStateResponse
|
|
switch t := that.(type) {
|
|
case *CreateFromMigrationStateResponse:
|
|
that1 = t
|
|
case CreateFromMigrationStateResponse:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|