From 1ec4b74c7bda7c885cedf29fb8f7e28ba7af2f68 Mon Sep 17 00:00:00 2001 From: Mike Spreitzer Date: Wed, 26 Jun 2019 00:03:15 -0400 Subject: [PATCH] Fixed and clarified comments and parameter names in index.go (#77633) * Fixed and clarified comments and parameter names in index.go Fixed the comment on IndexFunc to say that it returns multiple indexed values. Clarified the comments and parameter names in the Indexer interface to consistently use a dichotomy between "storage keys" and "indexed values". * Updated comments in index.go based on review by Liggitt Kubernetes-commit: 4160909495626262ae514bab30fe81a3ff869d39 --- Godeps/Godeps.json | 2 +- go.mod | 4 ++-- go.sum | 2 +- tools/cache/index.go | 26 ++++++++++++++++++-------- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 328f87fb..ddfbc657 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -192,7 +192,7 @@ }, { "ImportPath": "k8s.io/api", - "Rev": "95846d7ef82a" + "Rev": "b178a738ed00" }, { "ImportPath": "k8s.io/apimachinery", diff --git a/go.mod b/go.mod index 6a3d860e..69bcff77 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a golang.org/x/time v0.0.0-20161028155119-f51c12702a4d google.golang.org/appengine v1.5.0 // indirect - k8s.io/api v0.0.0-20190624085159-95846d7ef82a + k8s.io/api v0.0.0-20190626000116-b178a738ed00 k8s.io/apimachinery v0.0.0-20190624085041-961b39a1baa0 k8s.io/klog v0.3.1 k8s.io/utils v0.0.0-20190221042446-c2654d5206da @@ -39,6 +39,6 @@ replace ( golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503 golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 - k8s.io/api => k8s.io/api v0.0.0-20190624085159-95846d7ef82a + k8s.io/api => k8s.io/api v0.0.0-20190626000116-b178a738ed00 k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190624085041-961b39a1baa0 ) diff --git a/go.sum b/go.sum index 32ac8518..7d1732b0 100644 --- a/go.sum +++ b/go.sum @@ -93,7 +93,7 @@ gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -k8s.io/api v0.0.0-20190624085159-95846d7ef82a/go.mod h1:O6YAz5STgv7S1/c/XtBULGhSltH7yWEHpWvnA1mmFRg= +k8s.io/api v0.0.0-20190626000116-b178a738ed00/go.mod h1:O6YAz5STgv7S1/c/XtBULGhSltH7yWEHpWvnA1mmFRg= k8s.io/apimachinery v0.0.0-20190624085041-961b39a1baa0/go.mod h1:48PVecD7ubRgJmMRGIQfsqYu6OucVH5DzFNtACHZH8k= k8s.io/klog v0.3.1 h1:RVgyDHY/kFKtLqh67NvEWIgkMneNoIrdkN0CxDSQc68= k8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= diff --git a/tools/cache/index.go b/tools/cache/index.go index 15acb168..2a4bcbc4 100644 --- a/tools/cache/index.go +++ b/tools/cache/index.go @@ -23,17 +23,27 @@ import ( "k8s.io/apimachinery/pkg/util/sets" ) -// Indexer is a storage interface that lets you list objects using multiple indexing functions +// Indexer is a storage interface that lets you list objects using multiple indexing functions. +// There are three kinds of strings here. +// One is a storage key, as defined in the Store interface. +// Another kind is a name of an index. +// The third kind of string is an "indexed value", which is produced by an +// IndexFunc and can be a field value or any other string computed from the object. type Indexer interface { Store - // Retrieve list of objects that match on the named indexing function + // Index returns the stored objects whose set of indexed values + // intersects the set of indexed values of the given object, for + // the named index Index(indexName string, obj interface{}) ([]interface{}, error) - // IndexKeys returns the set of keys that match on the named indexing function. - IndexKeys(indexName, indexKey string) ([]string, error) - // ListIndexFuncValues returns the list of generated values of an Index func + // IndexKeys returns the storage keys of the stored objects whose + // set of indexed values for the named index includes the given + // indexed value + IndexKeys(indexName, indexedValue string) ([]string, error) + // ListIndexFuncValues returns all the indexed values of the given index ListIndexFuncValues(indexName string) []string - // ByIndex lists object that match on the named indexing function with the exact key - ByIndex(indexName, indexKey string) ([]interface{}, error) + // ByIndex returns the stored objects whose set of indexed values + // for the named index includes the given indexed value + ByIndex(indexName, indexedValue string) ([]interface{}, error) // GetIndexer return the indexers GetIndexers() Indexers @@ -42,7 +52,7 @@ type Indexer interface { AddIndexers(newIndexers Indexers) error } -// IndexFunc knows how to provide an indexed value for an object. +// IndexFunc knows how to compute the set of indexed values for an object. type IndexFunc func(obj interface{}) ([]string, error) // IndexFuncToKeyFuncAdapter adapts an indexFunc to a keyFunc. This is only useful if your index function returns