Files
tasks/chasm/lib/scheduler/gen/schedulerpb/v1/request_response.go-helpers.pb.go
Alex StanfieldandGitHub 223478bf8f V1 to CHASM scheduler migration RPC (#9261)
## 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
2026-03-12 10:18:02 -05:00

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)
}