Documentation ¶
Index ¶
- Variables
- func StartOperation(pa Interface) *portAllocationOperation
- type Interface
- type PortAllocator
- func (r *PortAllocator) Allocate(port int) error
- func (r *PortAllocator) AllocateNext() (int, error)
- func (r *PortAllocator) Free() int
- func (r *PortAllocator) Has(port int) bool
- func (r *PortAllocator) Release(port int) error
- func (r *PortAllocator) Restore(pr util.PortRange, data []byte) error
- func (r *PortAllocator) Snapshot(dst *api.RangeAllocation) error
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func StartOperation ¶
func StartOperation(pa Interface) *portAllocationOperation
Creates a portAllocationOperation, tracking a set of allocations & releases
Types ¶
type Interface ¶
Interface manages the allocation of ports out of a range. Interface should be threadsafe.
type PortAllocator ¶
type PortAllocator struct {
// contains filtered or unexported fields
}
func NewPortAllocator ¶
func NewPortAllocator(pr util.PortRange) *PortAllocator
Helper that wraps NewAllocatorCIDRRange, for creating a range backed by an in-memory store.
func NewPortAllocatorCustom ¶
func NewPortAllocatorCustom(pr util.PortRange, allocatorFactory allocator.AllocatorFactory) *PortAllocator
NewPortAllocatorCustom creates a PortAllocator over a util.PortRange, calling allocatorFactory to construct the backing store.
func (*PortAllocator) Allocate ¶
func (r *PortAllocator) Allocate(port int) error
Allocate attempts to reserve the provided port. ErrNotInRange or ErrAllocated will be returned if the port is not valid for this range or has already been reserved. ErrFull will be returned if there are no ports left.
func (*PortAllocator) AllocateNext ¶
func (r *PortAllocator) AllocateNext() (int, error)
AllocateNext reserves one of the ports from the pool. ErrFull may be returned if there are no ports left.
func (*PortAllocator) Free ¶
func (r *PortAllocator) Free() int
Free returns the count of port left in the range.
func (*PortAllocator) Has ¶
func (r *PortAllocator) Has(port int) bool
Has returns true if the provided port is already allocated and a call to Allocate(port) would fail with ErrAllocated.
func (*PortAllocator) Release ¶
func (r *PortAllocator) Release(port int) error
Release releases the port back to the pool. Releasing an unallocated port or a port out of the range is a no-op and returns no error.
func (*PortAllocator) Restore ¶
func (r *PortAllocator) Restore(pr util.PortRange, data []byte) error
Restore restores the pool to the previously captured state. ErrMismatchedNetwork is returned if the provided port range doesn't exactly match the previous range.
func (*PortAllocator) Snapshot ¶
func (r *PortAllocator) Snapshot(dst *api.RangeAllocation) error
Snapshot saves the current state of the pool.