pool

package
v0.0.0-...-b146d40 Latest Latest
Warning

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

Go to latest
Published: May 1, 2020 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BotConfigEnablesProvider

type BotConfigEnablesProvider interface {
	GetAllEnabledBotIDs() []string
}

type BotInfo

type BotInfo struct {
	BotID    string       `json:"botId"`
	Platform string       `json:"platform"`
	Healthy  bool         `json:"healthy"`
	Plugins  []PluginInfo `json:"plugins"`
}

BotInfo contains all information of a bot running on a Botter instance.

type Botter

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

Botter represents a Botter instance and provides management functions like the possibility to spawn or remove bots or get the running Bots.

func NewBotter

func NewBotter(httpClient httpClient, address string) *Botter

NewBotter creates a new Botter management instance for the Botter at the given address of the form host:port Currently the capacity of a Botter is by default 10 TODO: Get capacity dynamically from the managed BotterInstance

func (*Botter) Add

func (b *Botter) Add(botID string) error

Add a new bot to the Botter instance. Idempotent.

func (*Botter) BotInfo

func (b *Botter) BotInfo(id string) (BotInfo, error)

BotInfo returns configuration and health state of a bot identified by its ID.

func (*Botter) Bots

func (b *Botter) Bots() ([]string, error)

Bots returns the IDs of all the running bots.

func (*Botter) Capacity

func (b *Botter) Capacity() uint32

Capacity of the Botter instance

func (*Botter) Remove

func (b *Botter) Remove(botID string) error

Remove a bot from the Botter instance. Idempotent.

func (*Botter) Run

func (b *Botter) Run(ctx context.Context) error

Run the Botter (blocking)

func (*Botter) Status

func (b *Botter) Status() (StatusResponse, error)

Status of the Botter instance.

type BotterFactory

type BotterFactory struct{}

BotterFactory creates new Botter instances.

func (*BotterFactory) CreateBotter

func (b *BotterFactory) CreateBotter(address string) BotterIF

CreateBotter returns a new Botter instance for the given address.

type BotterIF

type BotterIF interface {
	// Run the Botter (blocking)
	Run(ctx context.Context) error

	Add(botID string) error
	Remove(botID string) error

	Bots() ([]string, error)

	BotInfo(id string) (BotInfo, error)

	Capacity() uint32
}

BotterIF describes the functionality of a Botter to use in the BotterPool.

type BotterPool

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

BotterPool holds various instances of Botters and can deploy new bots to them.

func NewBotterPool

func NewBotterPool(factory factory, bottersConfig map[string]config.Botter, enabledBots BotConfigEnablesProvider) *BotterPool

NewBotterPool returns a new BotterPool instance.

func (*BotterPool) AddBot

func (p *BotterPool) AddBot(botID string) error

AddBot adds a bot to the next free Botter instance. Returns an error if something goes wrong.

func (*BotterPool) AddBotter

func (p *BotterPool) AddBotter(address string)

AddBotter a new Botter to the pool. Idempotent.

func (*BotterPool) BotInfo

func (p *BotterPool) BotInfo(botID string) (BotInfo, error)

BotInfo returns information of a running bot. Automatically determines the Botter instance the bot is running on. Returns an error if something goes wrong.

func (*BotterPool) GetBotter

func (p *BotterPool) GetBotter(address string) BotterIF

GetBotter returns a reference to the requested botter or nil if it does not exist.

func (*BotterPool) RemoveAllBots

func (p *BotterPool) RemoveAllBots()

RemoveAllBots removes all bots from all Botter instances. Idempotent.

func (*BotterPool) RemoveAllBotters

func (p *BotterPool) RemoveAllBotters()

RemoveAllBotters removes all Botters from the pool. Idempotent

func (*BotterPool) RemoveBot

func (p *BotterPool) RemoveBot(botID string) error

RemoveBot removes a bot. Idempotent. Automatically determines the Botter instance the bot is running on. Returns an error if something goes wrong.

func (*BotterPool) RemoveBotter

func (p *BotterPool) RemoveBotter(address string)

RemoveBotter removes a Botter with a certain address from the pool. Idempotent.

func (*BotterPool) Run

func (p *BotterPool) Run(ctx context.Context) (err error)

Run the BotterPool. If a new bot is added to the pool, it will be automatically started.

type PluginInfo

type PluginInfo struct {
	Plugin string `json:"plugin"`
	Active bool   `json:"active"`
}

PluginInfo contains info about one plugin

type StatusResponse

type StatusResponse struct {
	Status  string `json:"status"`
	Version string `json:"version"`
}

StatusResponse contains all the information of a Status call.

Jump to

Keyboard shortcuts

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