Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Manifold ¶
func Manifold(config ManifoldConfig) dependency.Manifold
Manifold returns a dependency manifold that runs an API address updater worker, using the resource names defined in the supplied config.
func NewAPIAddressUpdater ¶
func NewAPIAddressUpdater(addresser APIAddresser, setter APIAddressSetter) (worker.Worker, error)
NewAPIAddressUpdater returns a worker.Worker that watches for changes to API addresses and then sets them on the APIAddressSetter. TODO(fwereade): this should have a config struct, and some validation.
Types ¶
type APIAddressSetter ¶
APIAddressSetter is an interface that is provided to NewAPIAddressUpdater whose SetAPIHostPorts method will be invoked whenever address changes occur.
type APIAddressUpdater ¶
type APIAddressUpdater struct {
// contains filtered or unexported fields
}
APIAddressUpdater is responsible for propagating API addresses.
In practice, APIAddressUpdater is used by a machine agent to watch API addresses in state and write the changes to the agent's config file.
func (*APIAddressUpdater) Handle ¶
func (c *APIAddressUpdater) Handle(_ <-chan struct{}) error
Handle is part of the watcher.NotifyHandler interface.
func (*APIAddressUpdater) SetUp ¶
func (c *APIAddressUpdater) SetUp() (watcher.NotifyWatcher, error)
SetUp is part of the watcher.NotifyHandler interface.
func (*APIAddressUpdater) TearDown ¶
func (c *APIAddressUpdater) TearDown() error
TearDown is part of the watcher.NotifyHandler interface.
type APIAddresser ¶
type APIAddresser interface { APIHostPorts() ([][]network.HostPort, error) WatchAPIHostPorts() (watcher.NotifyWatcher, error) }
APIAddresser is an interface that is provided to NewAPIAddressUpdater which can be used to watch for API address changes.
type ManifoldConfig ¶
type ManifoldConfig util.AgentApiManifoldConfig
ManifoldConfig defines the names of the manifolds on which a Manifold will depend.