kubernetes: github.com/erimatnor/kubernetes/pkg/registry/generic Index | Files | Directories

package generic

import "github.com/erimatnor/kubernetes/pkg/registry/generic"

Package generic provides a generic object store interface and a generic label/field matching type.


Package Files

doc.go registry.go

func FilterList Uses

func FilterList(list runtime.Object, m Matcher, d DecoratorFunc) (filtered runtime.Object, err error)

FilterList filters any list object that conforms to the api conventions, provided that 'm' works with the concrete type of list. d is an optional decorator for the returned functions. Only matching items are decorated.

type AttrFunc Uses

type AttrFunc func(obj runtime.Object) (label labels.Set, field fields.Set, err error)

AttrFunc returns label and field sets for List or Watch to compare against, or an error.

type DecoratorFunc Uses

type DecoratorFunc func(obj runtime.Object) error

DecoratorFunc can mutate the provided object prior to being returned.

type Matcher Uses

type Matcher interface {
    // Matches should return true if obj matches this matcher's requirements.
    Matches(obj runtime.Object) (matchesThisObject bool, err error)

    // If this matcher matches a single object, return the key for that
    // object and true here. This will greatly increase efficiency. You
    // must still implement Matches(). Note that key does NOT need to
    // include the object's namespace.
    MatchesSingle() (key string, matchesSingleObject bool)

Matcher can return true if an object matches the Matcher's selection criteria. If it is known that the matcher will match only a single object then MatchesSingle should return the key of that object and true. This is an optimization only--Matches() should continue to work.

func MatchOnKey Uses

func MatchOnKey(key string, f func(obj runtime.Object) (bool, error)) Matcher

MatchOnKey returns a matcher that will send only the object matching key through the matching function f. For testing! Note: use SelectionPredicate above for real code!

func MatcherFunc Uses

func MatcherFunc(f func(obj runtime.Object) (bool, error)) Matcher

MatcherFunc makes a matcher from the provided function. For easy definition of matchers for testing. Note: use SelectionPredicate above for real code!

type Registry Uses

type Registry interface {
    ListPredicate(api.Context, Matcher) (runtime.Object, error)
    CreateWithName(ctx api.Context, id string, obj runtime.Object) error
    UpdateWithName(ctx api.Context, id string, obj runtime.Object) error
    Get(ctx api.Context, id string) (runtime.Object, error)
    Delete(ctx api.Context, id string, options *api.DeleteOptions) (runtime.Object, error)
    WatchPredicate(ctx api.Context, m Matcher, resourceVersion string) (watch.Interface, error)

Registry knows how to store & list any runtime.Object. Can be used for any object types which don't require special features from the storage layer. DEPRECATED: replace with direct implementation of RESTStorage

type SelectionPredicate Uses

type SelectionPredicate struct {
    Label    labels.Selector
    Field    fields.Selector
    GetAttrs AttrFunc

SelectionPredicate implements a generic predicate that can be passed to GenericRegistry's List or Watch methods. Implements the Matcher interface.

func (*SelectionPredicate) Matches Uses

func (s *SelectionPredicate) Matches(obj runtime.Object) (bool, error)

Matches returns true if the given object's labels and fields (as returned by s.GetAttrs) match s.Label and s.Field. An error is returned if s.GetAttrs fails.

func (*SelectionPredicate) MatchesSingle Uses

func (s *SelectionPredicate) MatchesSingle() (string, bool)

MatchesSingle will return (name, true) iff s.Field matches on the object's name.


etcdPackage etcd has a generic implementation of a registry that stores things in etcd.
restPackage rest has generic implementations of resources used for REST responses

Package generic imports 5 packages (graph). Updated 2017-05-11. Refresh now. Tools for package owners.