agent

package
v0.0.0-...-298751d Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: AGPL-3.0 Imports: 85 Imported by: 15

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Should be an explicit dependency, can't do it cleanly yet.
	// Exported for testing.
	CaasOperatorManifolds = caasoperator.Manifolds
)

Functions

func ConnectAsAgent

func ConnectAsAgent(a agent.Agent) (io.Closer, error)

ConnectAsAgent really connects to the API specified in the agent config. It's extracted so tests can pass something else in.

func MachineAgentFactoryFn

func MachineAgentFactoryFn(
	agentConfWriter agentconf.AgentConfigWriter,
	bufferedLogger *logsender.BufferedLogWriter,
	newIntrospectionSocketName func(names.Tag) string,
	preUpgradeSteps upgrades.PreUpgradeStepsFunc,
	rootDir string,
) machineAgentFactoryFnType

MachineAgentFactoryFn returns a function which instantiates a MachineAgent given a machineId.

func NewCheckConnectionCommand

func NewCheckConnectionCommand(config agentconf.AgentConf, connect ConnectFunc) cmd.Command

NewCheckConnectionCommand returns a command that will test connecting to the API with details from the agent's config.

func NewMachineAgentCmd

func NewMachineAgentCmd(
	ctx *cmd.Context,
	machineAgentFactory machineAgentFactoryFnType,
	agentInitializer AgentInitializer,
	configFetcher agentconf.AgentConfigWriter,
) cmd.Command

NewMachineAgentCmd creates a Command which handles parsing command-line arguments and instantiating and running a MachineAgent.

Types

type AgentInitializer

type AgentInitializer interface {
	AddFlags(*gnuflag.FlagSet)
	CheckArgs([]string) error
	// DataDir returns the directory where this agent should store its data.
	DataDir() string
}

AgentInitializer handles initializing a type for use as a Jujud agent.

type CAASUnitInitCommand

type CAASUnitInitCommand struct {
	cmd.CommandBase

	Wait bool
	Send bool
	Args struct {
		Unit               string `json:"unit"`
		OperatorFile       string `json:"operator-file"`
		OperatorCACertFile string `json:"operator-ca-cert-file"`
		CharmDir           string `json:"charm-dir"`
		CallerPID          int    `json:"caller-pid"`
	}
	// contains filtered or unexported fields
}

CAASUnitInitCommand represents a jujud bootstrap command.

func NewCAASUnitInitCommand

func NewCAASUnitInitCommand() *CAASUnitInitCommand

NewCAASUnitInitCommand returns a new CAASUnitInitCommand that has been initialized.

func (*CAASUnitInitCommand) Info

func (c *CAASUnitInitCommand) Info() *cmd.Info

Info returns a description of the command.

func (*CAASUnitInitCommand) Init

func (c *CAASUnitInitCommand) Init(args []string) error

func (*CAASUnitInitCommand) Run

func (c *CAASUnitInitCommand) Run(ctx *cmd.Context) (errOut error)

func (*CAASUnitInitCommand) SetFlags

func (c *CAASUnitInitCommand) SetFlags(f *gnuflag.FlagSet)

type CaasOperatorAgent

type CaasOperatorAgent struct {
	cmd.CommandBase
	agentconf.AgentConf

	ApplicationName string
	// contains filtered or unexported fields
}

CaasOperatorAgent is a cmd.Command responsible for running a CAAS operator agent.

func NewCaasOperatorAgent

func NewCaasOperatorAgent(
	ctx *cmd.Context,
	bufferedLogger *logsender.BufferedLogWriter,
	configure func(*caasoperator.ManifoldsConfig) error,
) (*CaasOperatorAgent, error)

NewCaasOperatorAgent creates a new CAASOperatorAgent instance properly initialized.

func (*CaasOperatorAgent) ChangeConfig

func (op *CaasOperatorAgent) ChangeConfig(mutate agent.ConfigMutator) error

ChangeConfig implements Agent.

func (*CaasOperatorAgent) Done

func (op *CaasOperatorAgent) Done(err error)

Done signals the machine agent is finished

func (*CaasOperatorAgent) Info

func (op *CaasOperatorAgent) Info() *cmd.Info

Info implements Command.

func (*CaasOperatorAgent) Init

func (op *CaasOperatorAgent) Init(args []string) error

Init initializes the command for running.

func (*CaasOperatorAgent) Run

func (op *CaasOperatorAgent) Run(ctx *cmd.Context) (err error)

Run implements Command.

func (*CaasOperatorAgent) SetFlags

func (op *CaasOperatorAgent) SetFlags(f *gnuflag.FlagSet)

SetFlags implements Command.

func (*CaasOperatorAgent) Stop

func (op *CaasOperatorAgent) Stop() error

Stop implements Worker.

func (*CaasOperatorAgent) Tag

func (op *CaasOperatorAgent) Tag() names.Tag

Tag implements Agent.

func (*CaasOperatorAgent) Wait

func (op *CaasOperatorAgent) Wait() error

Wait waits for the CaasOperator agent to finish.

func (*CaasOperatorAgent) Workers

func (op *CaasOperatorAgent) Workers() (worker.Worker, error)

Workers returns a dependency.Engine running the operator's responsibilities.

type CommandRunner

type CommandRunner interface {
	RunCommands(run exec.RunParams) (*exec.ExecResponse, error)
}

CommandRunner allows to run commands on the underlying system

type ConnectFunc

type ConnectFunc func(agent.Agent) (io.Closer, error)

ConnectFunc connects to the API as the given agent.

type MachineAgent

type MachineAgent struct {
	agentconf.AgentConfigWriter
	// contains filtered or unexported fields
}

MachineAgent is responsible for tying together all functionality needed to orchestrate a Jujud instance which controls a machine.

func NewMachineAgent

func NewMachineAgent(
	agentTag names.Tag,
	agentConfWriter agentconf.AgentConfigWriter,
	bufferedLogger *logsender.BufferedLogWriter,
	runner *worker.Runner,
	loopDeviceManager looputil.LoopDeviceManager,
	newIntrospectionSocketName func(names.Tag) string,
	preUpgradeSteps upgrades.PreUpgradeStepsFunc,
	rootDir string,
	isCaasAgent bool,
) (*MachineAgent, error)

NewMachineAgent instantiates a new MachineAgent.

func (*MachineAgent) ChangeConfig

func (a *MachineAgent) ChangeConfig(mutate agent.ConfigMutator) error

func (*MachineAgent) Done

func (a *MachineAgent) Done(err error)

Done signals the machine agent is finished

func (*MachineAgent) Restart

func (a *MachineAgent) Restart() error

Restart restarts the agent's service.

func (*MachineAgent) Run

func (a *MachineAgent) Run(ctx *cmd.Context) (err error)

Run runs a machine agent.

func (*MachineAgent) Stop

func (a *MachineAgent) Stop() error

Stop stops the machine agent.

func (*MachineAgent) Tag

func (a *MachineAgent) Tag() names.Tag

func (*MachineAgent) Wait

func (a *MachineAgent) Wait() error

Wait waits for the machine agent to finish.

func (*MachineAgent) WorkersStarted

func (a *MachineAgent) WorkersStarted() <-chan struct{}

WorkersStarted returns a channel that's closed once all top level workers have been started. This is provided for testing purposes.

type ModelCommand

type ModelCommand struct {
	agentconf.AgentConf
	cmd.CommandBase

	ModelUUID string
	// contains filtered or unexported fields
}

ModelCommand is a cmd.Command responsible for running a model agent.

func NewModelCommand

func NewModelCommand(
	bufferedLogger *logsender.BufferedLogWriter,
) *ModelCommand

NewModelCommand creates a new ModelCommand instance properly initialized

func (*ModelCommand) Done

func (m *ModelCommand) Done(err error)

Done signals the model agent is finished

func (*ModelCommand) Info

func (m *ModelCommand) Info() *cmd.Info

Info implements Command

func (*ModelCommand) Init

func (m *ModelCommand) Init(args []string) error

Init initializers the command for running

func (*ModelCommand) Run

func (m *ModelCommand) Run(ctx *cmd.Context) error

Run implements Command

func (*ModelCommand) SetFlags

func (m *ModelCommand) SetFlags(f *gnuflag.FlagSet)

SetFlags implements Command

func (*ModelCommand) Stop

func (m *ModelCommand) Stop() error

Stop implements worker

func (*ModelCommand) Tag

func (m *ModelCommand) Tag() names.Tag

func (*ModelCommand) Wait

func (m *ModelCommand) Wait() error

func (*ModelCommand) Workers

func (m *ModelCommand) Workers() (worker.Worker, error)

type ModelMetrics

type ModelMetrics interface {
	ForModel(model names.ModelTag) dependency.Metrics
}

ModelMetrics defines a type for creating metrics for a given model.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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