Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Machine ¶
type Machine interface { Name() string State() string Directory() string Transition(t string, args ...interface{}) error NotifyWatcherState(string, interface{}) Watchers() []*WatcherDef Identity() string InstanceID() string Version() string TimeStampSeconds() int64 Debugf(name string, format string, args ...interface{}) Infof(name string, format string, args ...interface{}) Errorf(name string, format string, args ...interface{}) }
Machine is a Choria Machine
type Manager ¶
Manager manages all the defined watchers in a specific machine implements machine.WatcherManager
func (*Manager) AddWatcher ¶
AddWatcher adds a watcher to a managed machine
func (*Manager) NotifyStateChance ¶
func (m *Manager) NotifyStateChance()
NotifyStateChance implements machine.WatcherManager
func (*Manager) Run ¶
Run starts all the defined watchers and periodically announce their state based on AnnounceInterval
func (*Manager) SetMachine ¶
SetMachine supplies the machine this manager will manage
type Watcher ¶
type Watcher interface { Name() string Type() string Run(context.Context, *sync.WaitGroup) NotifyStateChance() CurrentState() interface{} AnnounceInterval() time.Duration }
Watcher is anything that can be used to watch the system for events
type WatcherDef ¶
type WatcherDef struct { Name string `json:"name" yaml:"name"` Type string `json:"type" yaml:"type"` StateMatch []string `json:"state_match" yaml:"state_match"` FailTransition string `json:"fail_transition" yaml:"fail_transition"` SuccessTransition string `json:"success_transition" yaml:"success_transition"` Interval string `json:"interval" yaml:"interval"` AnnounceInterval string `json:"announce_interval" yaml:"announce_interval"` Properties map[string]interface{} `json:"properties" yaml:"properties"` // contains filtered or unexported fields }
WatcherDef is the core definition of a watcher, watcher type specific properties get stored in Properties and parsed by each watcher type
func (*WatcherDef) ParseAnnounceInterval ¶
func (w *WatcherDef) ParseAnnounceInterval() (err error)
ParseAnnounceInterval parses the announce interval and ensures its not too small
func (*WatcherDef) ValidateStates ¶
func (w *WatcherDef) ValidateStates(valid []string) (err error)
ValidateStates makes sure that all the states mentioned are valid
func (*WatcherDef) ValidateTransitions ¶
func (w *WatcherDef) ValidateTransitions(valid []string) (err error)
ValidateTransitions checks that all stated transitions are valid