operation

package
v0.3.1 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