Documentation ¶
Index ¶
- Variables
- type Allocator
- func (alloc *Allocator) AdminTakeoverRanges(peerNameOrNickname string) error
- func (alloc *Allocator) Allocate(ident string, cancelChan <-chan bool) (address.Address, error)
- func (alloc *Allocator) Claim(ident string, addr address.Address, cancelChan <-chan bool) error
- func (alloc *Allocator) ContainerDied(ident string) error
- func (alloc *Allocator) Encode() []byte
- func (alloc *Allocator) Free(ident string) error
- func (alloc *Allocator) Gossip() router.GossipData
- func (alloc *Allocator) HandleHTTP(router *mux.Router)
- func (alloc *Allocator) OnGossip(msg []byte) (router.GossipData, error)
- func (alloc *Allocator) OnGossipBroadcast(msg []byte) (router.GossipData, error)
- func (alloc *Allocator) OnGossipUnicast(sender router.PeerName, msg []byte) error
- func (alloc *Allocator) SetInterfaces(gossip router.Gossip)
- func (alloc *Allocator) Shutdown()
- func (alloc *Allocator) Start()
- func (alloc *Allocator) Stop()
- func (alloc *Allocator) String() string
- type DummyAllocator
- func (alloc *DummyAllocator) Encode() []byte
- func (alloc *DummyAllocator) Gossip() router.GossipData
- func (alloc *DummyAllocator) OnGossip(msg []byte) (router.GossipData, error)
- func (alloc *DummyAllocator) OnGossipBroadcast(msg []byte) (router.GossipData, error)
- func (alloc *DummyAllocator) OnGossipUnicast(sender router.PeerName, msg []byte) error
Constants ¶
This section is empty.
Variables ¶
var (
ErrMixedConfig = errors.New("Mixed IPAM/non-IPAM configuration not supported")
)
Functions ¶
This section is empty.
Types ¶
type Allocator ¶
type Allocator struct {
// contains filtered or unexported fields
}
Allocator brings together Ring and space.Set, and does the necessary plumbing. Runs as a single-threaded Actor, so no locks are used around data structures.
func NewAllocator ¶
func NewAllocator(ourName router.PeerName, ourUID router.PeerUID, ourNickname string, subnetCIDR string, quorum uint) (*Allocator, error)
NewAllocator creates and initialises a new Allocator
func (*Allocator) AdminTakeoverRanges ¶
AdminTakeoverRanges (Sync) - take over the ranges owned by a given peer. Only done on adminstrator command.
func (*Allocator) Allocate ¶
Allocate (Sync) - get IP address for container with given name if there isn't any space we block indefinitely
func (*Allocator) ContainerDied ¶
ContainerDied is provided to satisfy the updater interface; does a free underneath. Async.
func (*Allocator) Gossip ¶
func (alloc *Allocator) Gossip() router.GossipData
Gossip returns a GossipData implementation, which in this case always returns the latest ring state (and does nothing on merge)
func (*Allocator) HandleHTTP ¶
HandleHTTP wires up ipams HTTP endpoints to the provided mux.
func (*Allocator) OnGossip ¶
func (alloc *Allocator) OnGossip(msg []byte) (router.GossipData, error)
OnGossip (Sync)
func (*Allocator) OnGossipBroadcast ¶
func (alloc *Allocator) OnGossipBroadcast(msg []byte) (router.GossipData, error)
OnGossipBroadcast (Sync)
func (*Allocator) OnGossipUnicast ¶
OnGossipUnicast (Sync)
func (*Allocator) SetInterfaces ¶
SetInterfaces gives the allocator two interfaces for talking to the outside world
type DummyAllocator ¶
type DummyAllocator struct { }
Exists solely for the purpose of detecting a network in which some peers are configured with IPAM on and some with IPAM off.
func (*DummyAllocator) Encode ¶
func (alloc *DummyAllocator) Encode() []byte
func (*DummyAllocator) Gossip ¶
func (alloc *DummyAllocator) Gossip() router.GossipData
func (*DummyAllocator) OnGossip ¶
func (alloc *DummyAllocator) OnGossip(msg []byte) (router.GossipData, error)
func (*DummyAllocator) OnGossipBroadcast ¶
func (alloc *DummyAllocator) OnGossipBroadcast(msg []byte) (router.GossipData, error)
func (*DummyAllocator) OnGossipUnicast ¶
func (alloc *DummyAllocator) OnGossipUnicast(sender router.PeerName, msg []byte) error