multiwatcher

package
v0.0.0-...-be26699 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2015 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AnyJobNeedsState

func AnyJobNeedsState(jobs ...MachineJob) bool

AnyJobNeedsState returns true if any of the provided jobs require a state connection.

Types

type ActionInfo

type ActionInfo struct {
	Id         string                 `bson:"_id"`
	Receiver   string                 `bson:"receiver"`
	Name       string                 `bson:"name"`
	Parameters map[string]interface{} `bson:"parameters"`
	Status     string                 `bson:"status"`
	Message    string                 `bson:"message"`
	Results    map[string]interface{} `bson:"results"`
	Enqueued   time.Time              `bson:"enqueued"`
	Started    time.Time              `bson:"started"`
	Completed  time.Time              `bson:"completed"`
}

func (*ActionInfo) EntityId

func (i *ActionInfo) EntityId() EntityId

type AnnotationInfo

type AnnotationInfo struct {
	Tag         string
	Annotations map[string]string
}

func (*AnnotationInfo) EntityId

func (i *AnnotationInfo) EntityId() EntityId

type BlockInfo

type BlockInfo struct {
	Id      string    `bson:"_id"`
	Type    BlockType `bson:"type"`
	Message string    `bson:"message,omitempty"`
	Tag     string    `bson:"tag"`
}

BlockInfo holds the information about blocks in this environment that are watched.

func (*BlockInfo) EntityId

func (i *BlockInfo) EntityId() EntityId

EntityId returns block id.

type BlockType

type BlockType string

BlockType values define environment block type.

const (
	// BlockDestroy type identifies destroy blocks.
	BlockDestroy BlockType = "BlockDestroy"

	// BlockRemove type identifies remove blocks.
	BlockRemove BlockType = "BlockRemove"

	// BlockChange type identifies change blocks.
	BlockChange BlockType = "BlockChange"
)

type Delta

type Delta struct {
	// If Removed is true, the entity has been removed;
	// otherwise it has been created or changed.
	Removed bool
	// Entity holds data about the entity that has changed.
	Entity EntityInfo
}

Delta holds details of a change to the environment.

func (*Delta) MarshalJSON

func (d *Delta) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*Delta) UnmarshalJSON

func (d *Delta) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Endpoint

type Endpoint struct {
	ServiceName string
	Relation    charm.Relation
}

type EntityId

type EntityId struct {
	Kind string
	Id   interface{}
}

type EntityInfo

type EntityInfo interface {
	// EntityId returns an identifier that will uniquely
	// identify the entity within its kind
	EntityId() EntityId
}

EntityInfo is implemented by all entity Info types.

type Life

type Life string

Life describes the lifecycle state of an entity ("alive", "dying" or "dead").

type MachineInfo

type MachineInfo struct {
	Id                       string `bson:"_id"`
	InstanceId               string
	Status                   Status
	StatusInfo               string
	StatusData               map[string]interface{}
	Life                     Life
	Series                   string
	SupportedContainers      []instance.ContainerType
	SupportedContainersKnown bool
	HardwareCharacteristics  *instance.HardwareCharacteristics `json:",omitempty"`
	Jobs                     []MachineJob
	Addresses                []network.Address
	HasVote                  bool
	WantsVote                bool
}

MachineInfo holds the information about a Machine that is watched by StateMultiwatcher.

func (*MachineInfo) EntityId

func (i *MachineInfo) EntityId() EntityId

type MachineJob

type MachineJob string

MachineJob values define responsibilities that machines may be expected to fulfil.

const (
	JobHostUnits        MachineJob = "JobHostUnits"
	JobManageEnviron    MachineJob = "JobManageEnviron"
	JobManageNetworking MachineJob = "JobManageNetworking"

	// Deprecated in 1.18
	JobManageStateDeprecated MachineJob = "JobManageState"
)

func (MachineJob) NeedsState

func (job MachineJob) NeedsState() bool

NeedsState returns true if the job requires a state connection.

type RelationInfo

type RelationInfo struct {
	Key       string `bson:"_id"`
	Id        int
	Endpoints []Endpoint
}

func (*RelationInfo) EntityId

func (i *RelationInfo) EntityId() EntityId

type RelationUnitsChange

type RelationUnitsChange struct {
	Changed  map[string]UnitSettings
	Departed []string
}

When remote units leave scope, their ids will be noted in the Departed field, and no further events will be sent for those units.

type ServiceInfo

type ServiceInfo struct {
	Name        string `bson:"_id"`
	Exposed     bool
	CharmURL    string
	OwnerTag    string
	Life        Life
	MinUnits    int
	Constraints constraints.Value
	Config      map[string]interface{}
	Subordinate bool
	Status      StatusInfo
}

func (*ServiceInfo) EntityId

func (i *ServiceInfo) EntityId() EntityId

type Status

type Status string

Status represents the status of an entity. It could be a service, unit, machine or its agent.

type StatusInfo

type StatusInfo struct {
	Err     error
	Current Status
	Message string
	Since   *time.Time
	Version string
	Data    map[string]interface{}
}

type UnitInfo

type UnitInfo struct {
	Name           string `bson:"_id"`
	Service        string
	Series         string
	CharmURL       string
	PublicAddress  string
	PrivateAddress string
	MachineId      string
	Ports          []network.Port
	PortRanges     []network.PortRange
	Subordinate    bool
	// The following 3 status values are deprecated.
	Status     Status
	StatusInfo string
	StatusData map[string]interface{}
	// Workload and agent state are modelled separately.
	WorkloadStatus StatusInfo
	AgentStatus    StatusInfo
}

func (*UnitInfo) EntityId

func (i *UnitInfo) EntityId() EntityId

type UnitSettings

type UnitSettings struct {
	Version int64
}

UnitSettings holds information about a service unit's settings within a relation.

Jump to

Keyboard shortcuts

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