Merge pull request #74260 from stafot/update-vendor-dependencies

Update vendor package github.com/hashicorp/golang-lru

Kubernetes-commit: a2592364be3f4f9943f841182b27d0c62050a84a
This commit is contained in:
Kubernetes Publisher 2019-02-20 21:41:46 -08:00
commit 5671c12f19
8 changed files with 190 additions and 124 deletions

172
Godeps/Godeps.json generated
View File

@ -148,11 +148,11 @@
}, },
{ {
"ImportPath": "github.com/hashicorp/golang-lru", "ImportPath": "github.com/hashicorp/golang-lru",
"Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" "Rev": "20f1fb78b0740ba8c3cb143a61e86ba5c8669768"
}, },
{ {
"ImportPath": "github.com/hashicorp/golang-lru/simplelru", "ImportPath": "github.com/hashicorp/golang-lru/simplelru",
"Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" "Rev": "20f1fb78b0740ba8c3cb143a61e86ba5c8669768"
}, },
{ {
"ImportPath": "github.com/imdario/mergo", "ImportPath": "github.com/imdario/mergo",
@ -272,339 +272,339 @@
}, },
{ {
"ImportPath": "k8s.io/api/admissionregistration/v1beta1", "ImportPath": "k8s.io/api/admissionregistration/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/apps/v1", "ImportPath": "k8s.io/api/apps/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/apps/v1beta1", "ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/apps/v1beta2", "ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/auditregistration/v1alpha1", "ImportPath": "k8s.io/api/auditregistration/v1alpha1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/authentication/v1", "ImportPath": "k8s.io/api/authentication/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/authentication/v1beta1", "ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/authorization/v1", "ImportPath": "k8s.io/api/authorization/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/authorization/v1beta1", "ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/autoscaling/v1", "ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/autoscaling/v2beta1", "ImportPath": "k8s.io/api/autoscaling/v2beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/autoscaling/v2beta2", "ImportPath": "k8s.io/api/autoscaling/v2beta2",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/batch/v1", "ImportPath": "k8s.io/api/batch/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/batch/v1beta1", "ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/batch/v2alpha1", "ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/certificates/v1beta1", "ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/coordination/v1", "ImportPath": "k8s.io/api/coordination/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/coordination/v1beta1", "ImportPath": "k8s.io/api/coordination/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/core/v1", "ImportPath": "k8s.io/api/core/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/events/v1beta1", "ImportPath": "k8s.io/api/events/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/extensions/v1beta1", "ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1", "ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/networking/v1", "ImportPath": "k8s.io/api/networking/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/policy/v1beta1", "ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/rbac/v1", "ImportPath": "k8s.io/api/rbac/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/rbac/v1alpha1", "ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/rbac/v1beta1", "ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/scheduling/v1alpha1", "ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/scheduling/v1beta1", "ImportPath": "k8s.io/api/scheduling/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/settings/v1alpha1", "ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/storage/v1", "ImportPath": "k8s.io/api/storage/v1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/storage/v1alpha1", "ImportPath": "k8s.io/api/storage/v1alpha1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/api/storage/v1beta1", "ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "ec944095a122f06d13993252f14ad507c9f85ae4" "Rev": "7644c54216e9135f91f6cb3c026a5705f60fdaaf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting", "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer", "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip", "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/api/equality", "ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/api/errors", "ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/api/meta", "ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/api/resource", "ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/conversion", "ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/fields", "ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/labels", "ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime", "ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/selection", "ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/types", "ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/cache", "ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/clock", "ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/diff", "ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/errors", "ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/framer", "ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr", "ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/json", "ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/naming", "ImportPath": "k8s.io/apimachinery/pkg/util/naming",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/net", "ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand", "ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime", "ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/sets", "ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/validation", "ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/wait", "ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml", "ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/version", "ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/pkg/watch", "ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "f05b8decd79cf55449e1e5b2cc9f14496ba6b942" "Rev": "450d01ad5771972f60ff23d8f7c6df3211cffbcf"
}, },
{ {
"ImportPath": "k8s.io/klog", "ImportPath": "k8s.io/klog",

View File

@ -30,9 +30,9 @@ type TwoQueueCache struct {
size int size int
recentSize int recentSize int
recent *simplelru.LRU recent simplelru.LRUCache
frequent *simplelru.LRU frequent simplelru.LRUCache
recentEvict *simplelru.LRU recentEvict simplelru.LRUCache
lock sync.RWMutex lock sync.RWMutex
} }
@ -84,7 +84,8 @@ func New2QParams(size int, recentRatio float64, ghostRatio float64) (*TwoQueueCa
return c, nil return c, nil
} }
func (c *TwoQueueCache) Get(key interface{}) (interface{}, bool) { // Get looks up a key's value from the cache.
func (c *TwoQueueCache) Get(key interface{}) (value interface{}, ok bool) {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
@ -105,6 +106,7 @@ func (c *TwoQueueCache) Get(key interface{}) (interface{}, bool) {
return nil, false return nil, false
} }
// Add adds a value to the cache.
func (c *TwoQueueCache) Add(key, value interface{}) { func (c *TwoQueueCache) Add(key, value interface{}) {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
@ -160,12 +162,15 @@ func (c *TwoQueueCache) ensureSpace(recentEvict bool) {
c.frequent.RemoveOldest() c.frequent.RemoveOldest()
} }
// Len returns the number of items in the cache.
func (c *TwoQueueCache) Len() int { func (c *TwoQueueCache) Len() int {
c.lock.RLock() c.lock.RLock()
defer c.lock.RUnlock() defer c.lock.RUnlock()
return c.recent.Len() + c.frequent.Len() return c.recent.Len() + c.frequent.Len()
} }
// Keys returns a slice of the keys in the cache.
// The frequently used keys are first in the returned slice.
func (c *TwoQueueCache) Keys() []interface{} { func (c *TwoQueueCache) Keys() []interface{} {
c.lock.RLock() c.lock.RLock()
defer c.lock.RUnlock() defer c.lock.RUnlock()
@ -174,6 +179,7 @@ func (c *TwoQueueCache) Keys() []interface{} {
return append(k1, k2...) return append(k1, k2...)
} }
// Remove removes the provided key from the cache.
func (c *TwoQueueCache) Remove(key interface{}) { func (c *TwoQueueCache) Remove(key interface{}) {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
@ -188,6 +194,7 @@ func (c *TwoQueueCache) Remove(key interface{}) {
} }
} }
// Purge is used to completely clear the cache.
func (c *TwoQueueCache) Purge() { func (c *TwoQueueCache) Purge() {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
@ -196,13 +203,17 @@ func (c *TwoQueueCache) Purge() {
c.recentEvict.Purge() c.recentEvict.Purge()
} }
// Contains is used to check if the cache contains a key
// without updating recency or frequency.
func (c *TwoQueueCache) Contains(key interface{}) bool { func (c *TwoQueueCache) Contains(key interface{}) bool {
c.lock.RLock() c.lock.RLock()
defer c.lock.RUnlock() defer c.lock.RUnlock()
return c.frequent.Contains(key) || c.recent.Contains(key) return c.frequent.Contains(key) || c.recent.Contains(key)
} }
func (c *TwoQueueCache) Peek(key interface{}) (interface{}, bool) { // Peek is used to inspect the cache value of a key
// without updating recency or frequency.
func (c *TwoQueueCache) Peek(key interface{}) (value interface{}, ok bool) {
c.lock.RLock() c.lock.RLock()
defer c.lock.RUnlock() defer c.lock.RUnlock()
if val, ok := c.frequent.Peek(key); ok { if val, ok := c.frequent.Peek(key); ok {

View File

@ -18,11 +18,11 @@ type ARCCache struct {
size int // Size is the total capacity of the cache size int // Size is the total capacity of the cache
p int // P is the dynamic preference towards T1 or T2 p int // P is the dynamic preference towards T1 or T2
t1 *simplelru.LRU // T1 is the LRU for recently accessed items t1 simplelru.LRUCache // T1 is the LRU for recently accessed items
b1 *simplelru.LRU // B1 is the LRU for evictions from t1 b1 simplelru.LRUCache // B1 is the LRU for evictions from t1
t2 *simplelru.LRU // T2 is the LRU for frequently accessed items t2 simplelru.LRUCache // T2 is the LRU for frequently accessed items
b2 *simplelru.LRU // B2 is the LRU for evictions from t2 b2 simplelru.LRUCache // B2 is the LRU for evictions from t2
lock sync.RWMutex lock sync.RWMutex
} }
@ -60,11 +60,11 @@ func NewARC(size int) (*ARCCache, error) {
} }
// Get looks up a key's value from the cache. // Get looks up a key's value from the cache.
func (c *ARCCache) Get(key interface{}) (interface{}, bool) { func (c *ARCCache) Get(key interface{}) (value interface{}, ok bool) {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
// Ff the value is contained in T1 (recent), then // If the value is contained in T1 (recent), then
// promote it to T2 (frequent) // promote it to T2 (frequent)
if val, ok := c.t1.Peek(key); ok { if val, ok := c.t1.Peek(key); ok {
c.t1.Remove(key) c.t1.Remove(key)
@ -153,7 +153,7 @@ func (c *ARCCache) Add(key, value interface{}) {
// Remove from B2 // Remove from B2
c.b2.Remove(key) c.b2.Remove(key)
// Add the key to the frequntly used list // Add the key to the frequently used list
c.t2.Add(key, value) c.t2.Add(key, value)
return return
} }
@ -247,7 +247,7 @@ func (c *ARCCache) Contains(key interface{}) bool {
// Peek is used to inspect the cache value of a key // Peek is used to inspect the cache value of a key
// without updating recency or frequency. // without updating recency or frequency.
func (c *ARCCache) Peek(key interface{}) (interface{}, bool) { func (c *ARCCache) Peek(key interface{}) (value interface{}, ok bool) {
c.lock.RLock() c.lock.RLock()
defer c.lock.RUnlock() defer c.lock.RUnlock()
if val, ok := c.t1.Peek(key); ok { if val, ok := c.t1.Peek(key); ok {

21
vendor/github.com/hashicorp/golang-lru/doc.go generated vendored Normal file
View File

@ -0,0 +1,21 @@
// Package lru provides three different LRU caches of varying sophistication.
//
// Cache is a simple LRU cache. It is based on the
// LRU implementation in groupcache:
// https://github.com/golang/groupcache/tree/master/lru
//
// TwoQueueCache tracks frequently used and recently used entries separately.
// This avoids a burst of accesses from taking out frequently used entries,
// at the cost of about 2x computational overhead and some extra bookkeeping.
//
// ARCCache is an adaptive replacement cache. It tracks recent evictions as
// well as recent usage in both the frequent and recent caches. Its
// computational overhead is comparable to TwoQueueCache, but the memory
// overhead is linear with the size of the cache.
//
// ARC has been patented by IBM, so do not use it if that is problematic for
// your program.
//
// All caches in this package take locks while operating, and are therefore
// thread-safe for consumers.
package lru

1
vendor/github.com/hashicorp/golang-lru/go.mod generated vendored Normal file
View File

@ -0,0 +1 @@
module github.com/hashicorp/golang-lru

View File

@ -1,6 +1,3 @@
// This package provides a simple LRU cache. It is based on the
// LRU implementation in groupcache:
// https://github.com/golang/groupcache/tree/master/lru
package lru package lru
import ( import (
@ -11,11 +8,11 @@ import (
// Cache is a thread-safe fixed size LRU cache. // Cache is a thread-safe fixed size LRU cache.
type Cache struct { type Cache struct {
lru *simplelru.LRU lru simplelru.LRUCache
lock sync.RWMutex lock sync.RWMutex
} }
// New creates an LRU of the given size // New creates an LRU of the given size.
func New(size int) (*Cache, error) { func New(size int) (*Cache, error) {
return NewWithEvict(size, nil) return NewWithEvict(size, nil)
} }
@ -33,7 +30,7 @@ func NewWithEvict(size int, onEvicted func(key interface{}, value interface{}))
return c, nil return c, nil
} }
// Purge is used to completely clear the cache // Purge is used to completely clear the cache.
func (c *Cache) Purge() { func (c *Cache) Purge() {
c.lock.Lock() c.lock.Lock()
c.lru.Purge() c.lru.Purge()
@ -41,30 +38,30 @@ func (c *Cache) Purge() {
} }
// Add adds a value to the cache. Returns true if an eviction occurred. // Add adds a value to the cache. Returns true if an eviction occurred.
func (c *Cache) Add(key, value interface{}) bool { func (c *Cache) Add(key, value interface{}) (evicted bool) {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
return c.lru.Add(key, value) return c.lru.Add(key, value)
} }
// Get looks up a key's value from the cache. // Get looks up a key's value from the cache.
func (c *Cache) Get(key interface{}) (interface{}, bool) { func (c *Cache) Get(key interface{}) (value interface{}, ok bool) {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
return c.lru.Get(key) return c.lru.Get(key)
} }
// Check if a key is in the cache, without updating the recent-ness // Contains checks if a key is in the cache, without updating the
// or deleting it for being stale. // recent-ness or deleting it for being stale.
func (c *Cache) Contains(key interface{}) bool { func (c *Cache) Contains(key interface{}) bool {
c.lock.RLock() c.lock.RLock()
defer c.lock.RUnlock() defer c.lock.RUnlock()
return c.lru.Contains(key) return c.lru.Contains(key)
} }
// Returns the key value (or undefined if not found) without updating // Peek returns the key value (or undefined if not found) without updating
// the "recently used"-ness of the key. // the "recently used"-ness of the key.
func (c *Cache) Peek(key interface{}) (interface{}, bool) { func (c *Cache) Peek(key interface{}) (value interface{}, ok bool) {
c.lock.RLock() c.lock.RLock()
defer c.lock.RUnlock() defer c.lock.RUnlock()
return c.lru.Peek(key) return c.lru.Peek(key)
@ -73,16 +70,15 @@ func (c *Cache) Peek(key interface{}) (interface{}, bool) {
// ContainsOrAdd checks if a key is in the cache without updating the // ContainsOrAdd checks if a key is in the cache without updating the
// recent-ness or deleting it for being stale, and if not, adds the value. // recent-ness or deleting it for being stale, and if not, adds the value.
// Returns whether found and whether an eviction occurred. // Returns whether found and whether an eviction occurred.
func (c *Cache) ContainsOrAdd(key, value interface{}) (ok, evict bool) { func (c *Cache) ContainsOrAdd(key, value interface{}) (ok, evicted bool) {
c.lock.Lock() c.lock.Lock()
defer c.lock.Unlock() defer c.lock.Unlock()
if c.lru.Contains(key) { if c.lru.Contains(key) {
return true, false return true, false
} else {
evict := c.lru.Add(key, value)
return false, evict
} }
evicted = c.lru.Add(key, value)
return false, evicted
} }
// Remove removes the provided key from the cache. // Remove removes the provided key from the cache.

View File

@ -36,7 +36,7 @@ func NewLRU(size int, onEvict EvictCallback) (*LRU, error) {
return c, nil return c, nil
} }
// Purge is used to completely clear the cache // Purge is used to completely clear the cache.
func (c *LRU) Purge() { func (c *LRU) Purge() {
for k, v := range c.items { for k, v := range c.items {
if c.onEvict != nil { if c.onEvict != nil {
@ -47,8 +47,8 @@ func (c *LRU) Purge() {
c.evictList.Init() c.evictList.Init()
} }
// Add adds a value to the cache. Returns true if an eviction occured. // Add adds a value to the cache. Returns true if an eviction occurred.
func (c *LRU) Add(key, value interface{}) bool { func (c *LRU) Add(key, value interface{}) (evicted bool) {
// Check for existing item // Check for existing item
if ent, ok := c.items[key]; ok { if ent, ok := c.items[key]; ok {
c.evictList.MoveToFront(ent) c.evictList.MoveToFront(ent)
@ -78,17 +78,18 @@ func (c *LRU) Get(key interface{}) (value interface{}, ok bool) {
return return
} }
// Check if a key is in the cache, without updating the recent-ness // Contains checks if a key is in the cache, without updating the recent-ness
// or deleting it for being stale. // or deleting it for being stale.
func (c *LRU) Contains(key interface{}) (ok bool) { func (c *LRU) Contains(key interface{}) (ok bool) {
_, ok = c.items[key] _, ok = c.items[key]
return ok return ok
} }
// Returns the key value (or undefined if not found) without updating // Peek returns the key value (or undefined if not found) without updating
// the "recently used"-ness of the key. // the "recently used"-ness of the key.
func (c *LRU) Peek(key interface{}) (value interface{}, ok bool) { func (c *LRU) Peek(key interface{}) (value interface{}, ok bool) {
if ent, ok := c.items[key]; ok { var ent *list.Element
if ent, ok = c.items[key]; ok {
return ent.Value.(*entry).value, true return ent.Value.(*entry).value, true
} }
return nil, ok return nil, ok
@ -96,7 +97,7 @@ func (c *LRU) Peek(key interface{}) (value interface{}, ok bool) {
// Remove removes the provided key from the cache, returning if the // Remove removes the provided key from the cache, returning if the
// key was contained. // key was contained.
func (c *LRU) Remove(key interface{}) bool { func (c *LRU) Remove(key interface{}) (present bool) {
if ent, ok := c.items[key]; ok { if ent, ok := c.items[key]; ok {
c.removeElement(ent) c.removeElement(ent)
return true return true
@ -105,7 +106,7 @@ func (c *LRU) Remove(key interface{}) bool {
} }
// RemoveOldest removes the oldest item from the cache. // RemoveOldest removes the oldest item from the cache.
func (c *LRU) RemoveOldest() (interface{}, interface{}, bool) { func (c *LRU) RemoveOldest() (key interface{}, value interface{}, ok bool) {
ent := c.evictList.Back() ent := c.evictList.Back()
if ent != nil { if ent != nil {
c.removeElement(ent) c.removeElement(ent)
@ -116,7 +117,7 @@ func (c *LRU) RemoveOldest() (interface{}, interface{}, bool) {
} }
// GetOldest returns the oldest entry // GetOldest returns the oldest entry
func (c *LRU) GetOldest() (interface{}, interface{}, bool) { func (c *LRU) GetOldest() (key interface{}, value interface{}, ok bool) {
ent := c.evictList.Back() ent := c.evictList.Back()
if ent != nil { if ent != nil {
kv := ent.Value.(*entry) kv := ent.Value.(*entry)

View File

@ -0,0 +1,36 @@
package simplelru
// LRUCache is the interface for simple LRU cache.
type LRUCache interface {
// Adds a value to the cache, returns true if an eviction occurred and
// updates the "recently used"-ness of the key.
Add(key, value interface{}) bool
// Returns key's value from the cache and
// updates the "recently used"-ness of the key. #value, isFound
Get(key interface{}) (value interface{}, ok bool)
// Check if a key exsists in cache without updating the recent-ness.
Contains(key interface{}) (ok bool)
// Returns key's value without updating the "recently used"-ness of the key.
Peek(key interface{}) (value interface{}, ok bool)
// Removes a key from the cache.
Remove(key interface{}) bool
// Removes the oldest entry from cache.
RemoveOldest() (interface{}, interface{}, bool)
// Returns the oldest entry from the cache. #key, value, isFound
GetOldest() (interface{}, interface{}, bool)
// Returns a slice of the keys in the cache, from oldest to newest.
Keys() []interface{}
// Returns the number of items in the cache.
Len() int
// Clear all cache entries
Purge()
}