converge

package
v0.0.0-...-519bf1e Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrConvergeContextCanceled = fmt.Errorf("converger: context canceled")

Functions

This section is empty.

Types

type CompLocker

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

func NewCompLocker

func NewCompLocker(db db.Db, nodeId string) *CompLocker

func (*CompLocker) PostStartContainer

func (c *CompLocker) PostStartContainer(comp *v1.Component, releaseLock bool, success bool) error

func (*CompLocker) StartLockAcquire

func (c *CompLocker) StartLockAcquire(ctx context.Context, comp *v1.Component) (bool, error)

type ComponentTarget

type ComponentTarget struct {
	Component *v1.Component
	Count     int
}

type Container

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

func NewContainer

func NewContainer(dockerClient *docker.Client, component *v1.Component, maelstromUrl string,
	router *router.Router, id maelContainerId, bufferPool httputil.BufferPool, parentCtx context.Context) *Container

func (*Container) ComponentInfo

func (c *Container) ComponentInfo() v1.ComponentInfo

func (*Container) JoinAndStop

func (c *Container) JoinAndStop(reason string)

type ConvergeCreateContainer

type ConvergeCreateContainer func(ctx context.Context, c *v1.Component) *Container

type ConvergeNotifyContainersChanged

type ConvergeNotifyContainersChanged func()

side effect functions

type ConvergePostStartContainer

type ConvergePostStartContainer func(comp *v1.Component, releaseLock bool, success bool) error

type ConvergePullImage

type ConvergePullImage func(c *v1.Component) error

type ConvergeStartLockAcquire

type ConvergeStartLockAcquire func(ctx context.Context, comp *v1.Component) (bool, error)

type ConvergeStopContainer

type ConvergeStopContainer func(c *Container, reason string)

type Converger

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

func NewConverger

func NewConverger(currentTarget ComponentTarget) *Converger

func (*Converger) GetComponentInfo

func (c *Converger) GetComponentInfo() []v1.ComponentInfo

func (*Converger) GetTarget

func (c *Converger) GetTarget() (target ComponentTarget)

func (*Converger) OnDockerEvent

func (c *Converger) OnDockerEvent(event *common.DockerEvent)

func (*Converger) SetComponent

func (c *Converger) SetComponent(comp *v1.Component)

func (*Converger) SetTarget

func (c *Converger) SetTarget(target ComponentTarget) chan bool

func (*Converger) Start

func (c *Converger) Start()

func (*Converger) Stop

func (c *Converger) Stop()

func (*Converger) WithCreateContainer

func (c *Converger) WithCreateContainer(fx ConvergeCreateContainer) *Converger

func (*Converger) WithNotifyContainersChanged

func (c *Converger) WithNotifyContainersChanged(fx ConvergeNotifyContainersChanged) *Converger

func (*Converger) WithPostStartContainer

func (c *Converger) WithPostStartContainer(fx ConvergePostStartContainer) *Converger

func (*Converger) WithPullImage

func (c *Converger) WithPullImage(fx ConvergePullImage) *Converger

func (*Converger) WithStartLockAcquire

func (c *Converger) WithStartLockAcquire(fx ConvergeStartLockAcquire) *Converger

func (*Converger) WithStopContainer

func (c *Converger) WithStopContainer(fx ConvergeStopContainer) *Converger

func (*Converger) WithTarget

func (c *Converger) WithTarget(target ComponentTarget) *Converger

type Registry

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

func NewRegistry

func NewRegistry(dockerClient *docker.Client, routerReg *router.Registry, maelstromUrl string,
	pullImage ConvergePullImage,
	startLockAcquire ConvergeStartLockAcquire,
	postStartContainer ConvergePostStartContainer,
	notifyContainersChanged ConvergeNotifyContainersChanged) *Registry

func (*Registry) ByComponent

func (r *Registry) ByComponent(comp *v1.Component) (c *Converger)

func (*Registry) GetRouterRegistry

func (r *Registry) GetRouterRegistry() *router.Registry

func (*Registry) GetState

func (r *Registry) GetState() (version int64, compInfo []v1.ComponentInfo)

func (*Registry) OnComponentNotification

func (r *Registry) OnComponentNotification(change v1.DataChangedUnion)

func (*Registry) OnDockerEvent

func (r *Registry) OnDockerEvent(msg common.DockerEvent)

func (*Registry) RemoveStaleContainers

func (r *Registry) RemoveStaleContainers() error

func (*Registry) SetTargets

func (r *Registry) SetTargets(version int64, targets []ComponentTarget, block bool) bool

func (*Registry) Shutdown

func (r *Registry) Shutdown()

Jump to

Keyboard shortcuts

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