middleware

package
v2.0.7 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CoordinatingCheckService

type CoordinatingCheckService struct {
	influxdb.CheckService

	Now func() time.Time
	// contains filtered or unexported fields
}

CoordinatingCheckService acts as a CheckService decorator that handles coordinating the api request with the required task control actions asynchronously via a message dispatcher

func NewCheckService

func NewCheckService(cs influxdb.CheckService, ts influxdb.TaskService, coordinator Coordinator) *CoordinatingCheckService

NewCheckService constructs a new coordinating check service

func (*CoordinatingCheckService) CreateCheck

func (cs *CoordinatingCheckService) CreateCheck(ctx context.Context, c influxdb.CheckCreate, userID influxdb.ID) error

CreateCheck Creates a check and Publishes the change it can be scheduled.

func (*CoordinatingCheckService) DeleteCheck

func (cs *CoordinatingCheckService) DeleteCheck(ctx context.Context, id influxdb.ID) error

DeleteCheck delete the check and publishes the change, to allow the task owner to find out about this change faster.

func (*CoordinatingCheckService) PatchCheck

func (cs *CoordinatingCheckService) PatchCheck(ctx context.Context, id influxdb.ID, upd influxdb.CheckUpdate) (influxdb.Check, error)

PatchCheck Updates a check and publishes the change so the task owner can act on the update

func (*CoordinatingCheckService) UpdateCheck

func (cs *CoordinatingCheckService) UpdateCheck(ctx context.Context, id influxdb.ID, c influxdb.CheckCreate) (influxdb.Check, error)

UpdateCheck Updates a check and publishes the change so the task owner can act on the update

type CoordinatingNotificationRuleStore

type CoordinatingNotificationRuleStore struct {
	influxdb.NotificationRuleStore

	Now func() time.Time
	// contains filtered or unexported fields
}

CoordinatingNotificationRuleStore acts as a NotificationRuleStore decorator that handles coordinating the api request with the required task control actions asynchronously via a message dispatcher

func NewNotificationRuleStore

func NewNotificationRuleStore(ns influxdb.NotificationRuleStore, ts influxdb.TaskService, coordinator Coordinator) *CoordinatingNotificationRuleStore

NewNotificationRuleStore constructs a new coordinating notification service

func (*CoordinatingNotificationRuleStore) CreateNotificationRule

func (ns *CoordinatingNotificationRuleStore) CreateNotificationRule(ctx context.Context, nr influxdb.NotificationRuleCreate, userID influxdb.ID) error

CreateNotificationRule Creates a notification and Publishes the change it can be scheduled.

func (*CoordinatingNotificationRuleStore) DeleteNotificationRule

func (ns *CoordinatingNotificationRuleStore) DeleteNotificationRule(ctx context.Context, id influxdb.ID) error

DeleteNotificationRule delete the notification and publishes the change, to allow the task owner to find out about this change faster.

func (*CoordinatingNotificationRuleStore) PatchNotificationRule

func (ns *CoordinatingNotificationRuleStore) PatchNotificationRule(ctx context.Context, id influxdb.ID, upd influxdb.NotificationRuleUpdate) (influxdb.NotificationRule, error)

PatchNotificationRule Updates a notification and publishes the change so the task owner can act on the update

func (*CoordinatingNotificationRuleStore) UpdateNotificationRule

func (ns *CoordinatingNotificationRuleStore) UpdateNotificationRule(ctx context.Context, id influxdb.ID, nr influxdb.NotificationRuleCreate, uid influxdb.ID) (influxdb.NotificationRule, error)

UpdateNotificationRule Updates a notification and publishes the change so the task owner can act on the update

type CoordinatingTaskService

type CoordinatingTaskService struct {
	influxdb.TaskService
	// contains filtered or unexported fields
}

CoordinatingTaskService acts as a TaskService decorator that handles coordinating the api request with the required task control actions asynchronously via a message dispatcher

func New

func New(service influxdb.TaskService, coordinator Coordinator, opts ...Option) *CoordinatingTaskService

New constructs a new coordinating task service

func (*CoordinatingTaskService) CancelRun

func (s *CoordinatingTaskService) CancelRun(ctx context.Context, taskID, runID influxdb.ID) error

CancelRun Cancel the run and publish the cancellation.

func (*CoordinatingTaskService) CreateTask

func (s *CoordinatingTaskService) CreateTask(ctx context.Context, tc influxdb.TaskCreate) (*influxdb.Task, error)

CreateTask Creates a task in the existing task service and Publishes the change so any TaskD service can lease it.

func (*CoordinatingTaskService) DeleteTask

func (s *CoordinatingTaskService) DeleteTask(ctx context.Context, id influxdb.ID) error

DeleteTask delete the task and publishes the change, to allow the task owner to find out about this change faster.

func (*CoordinatingTaskService) ForceRun

func (s *CoordinatingTaskService) ForceRun(ctx context.Context, taskID influxdb.ID, scheduledFor int64) (*influxdb.Run, error)

ForceRun create the forced run in the task system and publish to the pubSub.

func (*CoordinatingTaskService) RetryRun

func (s *CoordinatingTaskService) RetryRun(ctx context.Context, taskID, runID influxdb.ID) (*influxdb.Run, error)

RetryRun calls retry on the task service and publishes the retry.

func (*CoordinatingTaskService) UpdateTask

func (s *CoordinatingTaskService) UpdateTask(ctx context.Context, id influxdb.ID, upd influxdb.TaskUpdate) (*influxdb.Task, error)

UpdateTask Updates a task and publishes the change so the task owner can act on the update

type Coordinator

type Coordinator interface {
	TaskCreated(context.Context, *influxdb.Task) error
	TaskUpdated(ctx context.Context, from, to *influxdb.Task) error
	TaskDeleted(context.Context, influxdb.ID) error
	RunCancelled(ctx context.Context, runID influxdb.ID) error
	RunRetried(ctx context.Context, task *influxdb.Task, run *influxdb.Run) error
	RunForced(ctx context.Context, task *influxdb.Task, run *influxdb.Run) error
}

Coordinator is a type which is used to react to task related actions

type Option

type Option func(*CoordinatingTaskService)

Option is a functional option for the coordinating task service

func WithNowFunc

func WithNowFunc(fn func() time.Time) Option

WithNowFunc sets the now func used to derive time

Jump to

Keyboard shortcuts

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