This section is empty.


This section is empty.


This section is empty.


type Etcd

type Etcd struct {
	// contains filtered or unexported fields

    Etcd exposes a service.Allocator TODO: allow multiple allocations to be tried at once TODO: subdivide the keyspace to reduce conflicts TODO: investigate issuing a CAS without reading first

    func NewEtcd

    func NewEtcd(alloc allocator.Snapshottable, baseKey string, resource schema.GroupResource, config *storagebackend.Config) *Etcd

      NewEtcd returns an allocator that is backed by Etcd and can manage persisting the snapshot state of allocation after each allocation is made.

      func (*Etcd) Allocate

      func (e *Etcd) Allocate(offset int) (bool, error)

        Allocate attempts to allocate the item locally and then in etcd.

        func (*Etcd) AllocateNext

        func (e *Etcd) AllocateNext() (int, bool, error)

          AllocateNext attempts to allocate the next item locally and then in etcd.

          func (*Etcd) CreateOrUpdate

          func (e *Etcd) CreateOrUpdate(snapshot *api.RangeAllocation) error

            CreateOrUpdate attempts to update the current etcd state with the provided allocation.

            func (*Etcd) ForEach

            func (e *Etcd) ForEach(fn func(int))

            func (*Etcd) Free

            func (e *Etcd) Free() int

              Implements allocator.Interface::Free

              func (*Etcd) Get

              func (e *Etcd) Get() (*api.RangeAllocation, error)

                Get returns an api.RangeAllocation that represents the current state in etcd. If the key does not exist, the object will have an empty ResourceVersion.

                func (*Etcd) Has

                func (e *Etcd) Has(item int) bool

                  Implements allocator.Interface::Has

                  func (*Etcd) Release

                  func (e *Etcd) Release(item int) error

                    Release attempts to release the provided item locally and then in etcd.

                    Source Files