Help us shape the future of Go! Take the 2026 Go Developer Survey

operation

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DisableBehaviorCancel = "cancel"
	DisableBehaviorOrphan = "orphan"
	DisableBehaviorWait   = "wait"

	UninstallBehaviorCancelThenBlockDelete = "cancel_then_block_delete"
	UninstallBehaviorForceCleanupAllowed   = "force_cleanup_allowed"
)

Variables

View Source
var (
	ErrNotFound         = errors.New("operation not found")
	ErrInvalidOperation = errors.New("operation is invalid")
	ErrAlreadyExists    = errors.New("operation already exists")
	ErrDeleteBlocked    = errors.New("operation blocks data deletion")
	ErrNotCancelable    = errors.New("operation is not cancelable")
)

Functions

This section is empty.

Types

type CancelRequest

type CancelRequest struct {
	OperationID string    `json:"operation_id"`
	Reason      string    `json:"reason,omitempty"`
	Now         time.Time `json:"now,omitempty"`
}

type FinishRequest

type FinishRequest struct {
	OperationID string    `json:"operation_id"`
	Status      Status    `json:"status"`
	Reason      string    `json:"reason,omitempty"`
	Now         time.Time `json:"now,omitempty"`
}

type ListRequest

type ListRequest struct {
	PluginInstanceID string `json:"plugin_instance_id,omitempty"`
}

type MemoryStore

type MemoryStore struct {
	// contains filtered or unexported fields
}

func NewMemoryStore

func NewMemoryStore() *MemoryStore

func (*MemoryStore) Finish

func (s *MemoryStore) Finish(_ context.Context, req FinishRequest) (Record, error)

func (*MemoryStore) Get

func (s *MemoryStore) Get(_ context.Context, operationID string) (Record, error)

func (*MemoryStore) List

func (s *MemoryStore) List(_ context.Context, req ListRequest) ([]Record, error)

func (*MemoryStore) MarkPluginDisabled

func (s *MemoryStore) MarkPluginDisabled(_ context.Context, req PluginTransitionRequest) ([]Record, error)

func (*MemoryStore) MarkPluginUninstalled

func (s *MemoryStore) MarkPluginUninstalled(_ context.Context, req PluginTransitionRequest) ([]Record, error)

func (*MemoryStore) Register

func (s *MemoryStore) Register(_ context.Context, req RegisterRequest) (Record, error)

func (*MemoryStore) RequestCancel

func (s *MemoryStore) RequestCancel(_ context.Context, req CancelRequest) (Record, error)

type PluginTransitionRequest

type PluginTransitionRequest struct {
	PluginInstanceID string    `json:"plugin_instance_id"`
	Reason           string    `json:"reason,omitempty"`
	Now              time.Time `json:"now,omitempty"`
}

type Record

type Record struct {
	OperationID string `json:"operation_id"`
	capability.ExecutionBinding
	Status             Status     `json:"status"`
	Cancelable         bool       `json:"cancelable"`
	CancelAckTimeoutMS int        `json:"cancel_ack_timeout_ms,omitempty"`
	DisableBehavior    string     `json:"disable_behavior,omitempty"`
	UninstallBehavior  string     `json:"uninstall_behavior,omitempty"`
	Reason             string     `json:"reason,omitempty"`
	CreatedAt          time.Time  `json:"created_at"`
	UpdatedAt          time.Time  `json:"updated_at"`
	CancelRequestedAt  *time.Time `json:"cancel_requested_at,omitempty"`
	OrphanedAt         *time.Time `json:"orphaned_at,omitempty"`
}

type RegisterRequest

type RegisterRequest struct {
	OperationID        string                      `json:"operation_id"`
	ExecutionBinding   capability.ExecutionBinding `json:"execution_binding"`
	Cancelable         *bool                       `json:"cancelable,omitempty"`
	CancelAckTimeoutMS int                         `json:"cancel_ack_timeout_ms,omitempty"`
	DisableBehavior    string                      `json:"disable_behavior,omitempty"`
	UninstallBehavior  string                      `json:"uninstall_behavior,omitempty"`
	Now                time.Time                   `json:"now,omitempty"`
}

type SQLiteStore

type SQLiteStore struct {
	// contains filtered or unexported fields
}

func NewSQLiteStore

func NewSQLiteStore(ctx context.Context, path string) (*SQLiteStore, error)

func (*SQLiteStore) Close

func (s *SQLiteStore) Close() error

func (*SQLiteStore) Finish

func (s *SQLiteStore) Finish(ctx context.Context, req FinishRequest) (Record, error)

func (*SQLiteStore) Get

func (s *SQLiteStore) Get(ctx context.Context, operationID string) (Record, error)

func (*SQLiteStore) List

func (s *SQLiteStore) List(ctx context.Context, req ListRequest) ([]Record, error)

func (*SQLiteStore) MarkPluginDisabled

func (s *SQLiteStore) MarkPluginDisabled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)

func (*SQLiteStore) MarkPluginUninstalled

func (s *SQLiteStore) MarkPluginUninstalled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)

func (*SQLiteStore) Register

func (s *SQLiteStore) Register(ctx context.Context, req RegisterRequest) (Record, error)

func (*SQLiteStore) RequestCancel

func (s *SQLiteStore) RequestCancel(ctx context.Context, req CancelRequest) (Record, error)

type Status

type Status string
const (
	StatusRunning                Status = "running"
	StatusCancelRequested        Status = "cancel_requested"
	StatusCanceled               Status = "canceled"
	StatusCompleted              Status = "completed"
	StatusFailed                 Status = "failed"
	StatusOrphanedAfterDisable   Status = "orphaned_after_disable"
	StatusOrphanedAfterUninstall Status = "orphaned_after_uninstall"
)

type Store

type Store interface {
	Register(ctx context.Context, req RegisterRequest) (Record, error)
	List(ctx context.Context, req ListRequest) ([]Record, error)
	Get(ctx context.Context, operationID string) (Record, error)
	RequestCancel(ctx context.Context, req CancelRequest) (Record, error)
	Finish(ctx context.Context, req FinishRequest) (Record, error)
	MarkPluginDisabled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)
	MarkPluginUninstalled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL