mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 02:08:13 +00:00 
			
		
		
		
	bump gengo version
This commit is contained in:
		
							
								
								
									
										4
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.mod
									
									
									
									
									
								
							| @@ -148,7 +148,7 @@ require ( | |||||||
| 	k8s.io/component-base v0.0.0 | 	k8s.io/component-base v0.0.0 | ||||||
| 	k8s.io/cri-api v0.0.0 | 	k8s.io/cri-api v0.0.0 | ||||||
| 	k8s.io/csi-translation-lib v0.0.0 | 	k8s.io/csi-translation-lib v0.0.0 | ||||||
| 	k8s.io/gengo v0.0.0-20190822140433-26a664648505 | 	k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 | ||||||
| 	k8s.io/heapster v1.2.0-beta.1 | 	k8s.io/heapster v1.2.0-beta.1 | ||||||
| 	k8s.io/klog v1.0.0 | 	k8s.io/klog v1.0.0 | ||||||
| 	k8s.io/kube-aggregator v0.0.0 | 	k8s.io/kube-aggregator v0.0.0 | ||||||
| @@ -544,7 +544,7 @@ replace ( | |||||||
| 	k8s.io/component-base => ./staging/src/k8s.io/component-base | 	k8s.io/component-base => ./staging/src/k8s.io/component-base | ||||||
| 	k8s.io/cri-api => ./staging/src/k8s.io/cri-api | 	k8s.io/cri-api => ./staging/src/k8s.io/cri-api | ||||||
| 	k8s.io/csi-translation-lib => ./staging/src/k8s.io/csi-translation-lib | 	k8s.io/csi-translation-lib => ./staging/src/k8s.io/csi-translation-lib | ||||||
| 	k8s.io/gengo => k8s.io/gengo v0.0.0-20190822140433-26a664648505 | 	k8s.io/gengo => k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 | ||||||
| 	k8s.io/heapster => k8s.io/heapster v1.2.0-beta.1 | 	k8s.io/heapster => k8s.io/heapster v1.2.0-beta.1 | ||||||
| 	k8s.io/klog => k8s.io/klog v1.0.0 | 	k8s.io/klog => k8s.io/klog v1.0.0 | ||||||
| 	k8s.io/kube-aggregator => ./staging/src/k8s.io/kube-aggregator | 	k8s.io/kube-aggregator => ./staging/src/k8s.io/kube-aggregator | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							| @@ -590,8 +590,8 @@ gotest.tools/gotestsum v0.3.5/go.mod h1:Mnf3e5FUzXbkCfynWBGOwLssY7gTQgCHObK9tMpA | |||||||
| grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= | grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= | ||||||
| honnef.co/go/tools v0.0.1-2019.2.2 h1:TEgegKbBqByGUb1Coo1pc2qIdf2xw6v0mYyLSYtyopE= | honnef.co/go/tools v0.0.1-2019.2.2 h1:TEgegKbBqByGUb1Coo1pc2qIdf2xw6v0mYyLSYtyopE= | ||||||
| honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= | honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/heapster v1.2.0-beta.1 h1:lUsE/AHOMHpi3MLlBEkaU8Esxm5QhdyCrv1o7ot0s84= | k8s.io/heapster v1.2.0-beta.1 h1:lUsE/AHOMHpi3MLlBEkaU8Esxm5QhdyCrv1o7ot0s84= | ||||||
| k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= | k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
| @@ -446,10 +446,9 @@ gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81 | |||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= |  | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ require ( | |||||||
| 	github.com/go-openapi/jsonreference v0.19.3 // indirect | 	github.com/go-openapi/jsonreference v0.19.3 // indirect | ||||||
| 	github.com/go-openapi/spec v0.19.3 // indirect | 	github.com/go-openapi/spec v0.19.3 // indirect | ||||||
| 	github.com/gogo/protobuf v1.3.1 | 	github.com/gogo/protobuf v1.3.1 | ||||||
|  | 	github.com/google/go-cmp v0.3.0 // indirect | ||||||
| 	github.com/json-iterator/go v1.1.8 // indirect | 	github.com/json-iterator/go v1.1.8 // indirect | ||||||
| 	github.com/mailru/easyjson v0.7.0 // indirect | 	github.com/mailru/easyjson v0.7.0 // indirect | ||||||
| 	github.com/spf13/pflag v1.0.5 | 	github.com/spf13/pflag v1.0.5 | ||||||
| @@ -16,7 +17,7 @@ require ( | |||||||
| 	golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 // indirect | 	golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 // indirect | ||||||
| 	golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72 // indirect | 	golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72 // indirect | ||||||
| 	gopkg.in/yaml.v2 v2.2.8 // indirect | 	gopkg.in/yaml.v2 v2.2.8 // indirect | ||||||
| 	k8s.io/gengo v0.0.0-20190822140433-26a664648505 | 	k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 | ||||||
| 	k8s.io/klog v1.0.0 | 	k8s.io/klog v1.0.0 | ||||||
| 	k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c | 	k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								staging/src/k8s.io/code-generator/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										7
									
								
								staging/src/k8s.io/code-generator/go.sum
									
									
									
										generated
									
									
									
								
							| @@ -34,6 +34,8 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh | |||||||
| github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= | github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= | ||||||
| github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= | github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= | ||||||
| github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||||
|  | github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= | ||||||
|  | github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | ||||||
| github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
| github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= | github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= | ||||||
| github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= | github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= | ||||||
| @@ -100,12 +102,13 @@ gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | |||||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
| k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= | k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= | ||||||
| k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c h1:/KUFqjjqAcY4Us6luF5RDNZ16KJtb49HfR3ZHB9qYXM= | k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c h1:/KUFqjjqAcY4Us6luF5RDNZ16KJtb49HfR3ZHB9qYXM= | ||||||
| k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= | k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= | ||||||
| sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= | sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= | ||||||
|  | sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= | ||||||
| sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= | sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								staging/src/k8s.io/kube-aggregator/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								staging/src/k8s.io/kube-aggregator/go.sum
									
									
									
										generated
									
									
									
								
							| @@ -376,10 +376,9 @@ gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81 | |||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= |  | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								staging/src/k8s.io/kubectl/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								staging/src/k8s.io/kubectl/go.sum
									
									
									
										generated
									
									
									
								
							| @@ -311,7 +311,7 @@ gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81 | |||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								staging/src/k8s.io/metrics/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								staging/src/k8s.io/metrics/go.sum
									
									
									
										generated
									
									
									
								
							| @@ -198,10 +198,9 @@ gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | |||||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= |  | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								staging/src/k8s.io/node-api/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								staging/src/k8s.io/node-api/go.sum
									
									
									
										generated
									
									
									
								
							| @@ -202,10 +202,9 @@ gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | |||||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= |  | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								staging/src/k8s.io/sample-apiserver/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								staging/src/k8s.io/sample-apiserver/go.sum
									
									
									
										generated
									
									
									
								
							| @@ -373,10 +373,9 @@ gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81 | |||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= |  | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								staging/src/k8s.io/sample-controller/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								staging/src/k8s.io/sample-controller/go.sum
									
									
									
										generated
									
									
									
								
							| @@ -203,10 +203,9 @@ gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | |||||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6 h1:4s3/R4+OYYYUKptXPhZKjQ04WJ6EhQQVFdjOFvCazDk= |  | ||||||
| k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505 h1:ZY6yclUKVbZ+SdWnkfY+Je5vrMpKOxmGeKRbsXVmqYM= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4= | ||||||
| k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= | ||||||
| k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= | ||||||
| k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								vendor/k8s.io/gengo/args/args.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/k8s.io/gengo/args/args.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -112,7 +112,7 @@ func (g *GeneratorArgs) LoadGoBoilerplate() ([]byte, error) { | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	b = bytes.Replace(b, []byte("YEAR"), []byte(strconv.Itoa(time.Now().Year())), -1) | 	b = bytes.Replace(b, []byte("YEAR"), []byte(strconv.Itoa(time.Now().UTC().Year())), -1) | ||||||
|  |  | ||||||
| 	if g.GeneratedByCommentTemplate != "" { | 	if g.GeneratedByCommentTemplate != "" { | ||||||
| 		if len(b) != 0 { | 		if len(b) != 0 { | ||||||
| @@ -159,6 +159,9 @@ func (g *GeneratorArgs) InputIncludes(p *types.Package) bool { | |||||||
| 		if strings.HasSuffix(d, "...") { | 		if strings.HasSuffix(d, "...") { | ||||||
| 			d = strings.TrimSuffix(d, "...") | 			d = strings.TrimSuffix(d, "...") | ||||||
| 		} | 		} | ||||||
|  | 		if strings.HasPrefix(d, "./vendor/") { | ||||||
|  | 			d = strings.TrimPrefix(d, "./vendor/") | ||||||
|  | 		} | ||||||
| 		if strings.HasPrefix(p.Path, d) { | 		if strings.HasPrefix(p.Path, d) { | ||||||
| 			return true | 			return true | ||||||
| 		} | 		} | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/k8s.io/gengo/examples/defaulter-gen/generators/defaulter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/k8s.io/gengo/examples/defaulter-gen/generators/defaulter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -248,7 +248,11 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat | |||||||
| 		shouldCreateObjectDefaulterFn := func(t *types.Type) bool { | 		shouldCreateObjectDefaulterFn := func(t *types.Type) bool { | ||||||
| 			if defaults, ok := existingDefaulters[t]; ok && defaults.object != nil { | 			if defaults, ok := existingDefaulters[t]; ok && defaults.object != nil { | ||||||
| 				// A default generator is defined | 				// A default generator is defined | ||||||
| 				klog.V(5).Infof("  an object defaulter already exists as %s", defaults.base.Name) | 				baseTypeName := "<unknown>" | ||||||
|  | 				if defaults.base != nil { | ||||||
|  | 					baseTypeName = defaults.base.Name.String() | ||||||
|  | 				} | ||||||
|  | 				klog.V(5).Infof("  an object defaulter already exists as %s", baseTypeName) | ||||||
| 				return false | 				return false | ||||||
| 			} | 			} | ||||||
| 			// opt-out | 			// opt-out | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								vendor/k8s.io/gengo/examples/import-boss/generators/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/k8s.io/gengo/examples/import-boss/generators/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -12,6 +12,7 @@ go_library( | |||||||
|         "//vendor/k8s.io/gengo/namer:go_default_library", |         "//vendor/k8s.io/gengo/namer:go_default_library", | ||||||
|         "//vendor/k8s.io/gengo/types:go_default_library", |         "//vendor/k8s.io/gengo/types:go_default_library", | ||||||
|         "//vendor/k8s.io/klog:go_default_library", |         "//vendor/k8s.io/klog:go_default_library", | ||||||
|  |         "//vendor/sigs.k8s.io/yaml:go_default_library", | ||||||
|     ], |     ], | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										215
									
								
								vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										215
									
								
								vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -33,11 +33,13 @@ import ( | |||||||
| 	"k8s.io/gengo/generator" | 	"k8s.io/gengo/generator" | ||||||
| 	"k8s.io/gengo/namer" | 	"k8s.io/gengo/namer" | ||||||
| 	"k8s.io/gengo/types" | 	"k8s.io/gengo/types" | ||||||
|  | 	"sigs.k8s.io/yaml" | ||||||
|  |  | ||||||
| 	"k8s.io/klog" | 	"k8s.io/klog" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
|  | 	goModFile          = "go.mod" | ||||||
| 	importBossFileType = "import-boss" | 	importBossFileType = "import-boss" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -58,7 +60,7 @@ func DefaultNameSystem() string { | |||||||
| func Packages(c *generator.Context, arguments *args.GeneratorArgs) generator.Packages { | func Packages(c *generator.Context, arguments *args.GeneratorArgs) generator.Packages { | ||||||
| 	pkgs := generator.Packages{} | 	pkgs := generator.Packages{} | ||||||
| 	c.FileTypes = map[string]generator.FileType{ | 	c.FileTypes = map[string]generator.FileType{ | ||||||
| 		importBossFileType: importRuleFile{}, | 		importBossFileType: importRuleFile{c}, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for _, p := range c.Universe { | 	for _, p := range c.Universe { | ||||||
| @@ -70,6 +72,7 @@ func Packages(c *generator.Context, arguments *args.GeneratorArgs) generator.Pac | |||||||
| 		pkgs = append(pkgs, &generator.DefaultPackage{ | 		pkgs = append(pkgs, &generator.DefaultPackage{ | ||||||
| 			PackageName: p.Name, | 			PackageName: p.Name, | ||||||
| 			PackagePath: p.Path, | 			PackagePath: p.Path, | ||||||
|  | 			Source:      p.SourcePath, | ||||||
| 			// GeneratorFunc returns a list of generators. Each generator makes a | 			// GeneratorFunc returns a list of generators. Each generator makes a | ||||||
| 			// single file. | 			// single file. | ||||||
| 			GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) { | 			GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) { | ||||||
| @@ -96,10 +99,19 @@ type Rule struct { | |||||||
| 	ForbiddenPrefixes []string | 	ForbiddenPrefixes []string | ||||||
| } | } | ||||||
|  |  | ||||||
|  | type InverseRule struct { | ||||||
|  | 	Rule | ||||||
|  | 	// True if the rule is to be applied to transitive imports. | ||||||
|  | 	Transitive bool | ||||||
|  | } | ||||||
|  |  | ||||||
| type fileFormat struct { | type fileFormat struct { | ||||||
| 	CurrentImports []string | 	CurrentImports []string | ||||||
|  |  | ||||||
| 	Rules []Rule | 	Rules        []Rule | ||||||
|  | 	InverseRules []InverseRule | ||||||
|  |  | ||||||
|  | 	path string | ||||||
| } | } | ||||||
|  |  | ||||||
| func readFile(path string) (*fileFormat, error) { | func readFile(path string) (*fileFormat, error) { | ||||||
| @@ -109,10 +121,11 @@ func readFile(path string) (*fileFormat, error) { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	var current fileFormat | 	var current fileFormat | ||||||
| 	err = json.Unmarshal(currentBytes, ¤t) | 	err = yaml.Unmarshal(currentBytes, ¤t) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("couldn't unmarshal %v: %v", path, err) | 		return nil, fmt.Errorf("couldn't unmarshal %v: %v", path, err) | ||||||
| 	} | 	} | ||||||
|  | 	current.path = path | ||||||
| 	return ¤t, nil | 	return ¤t, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -131,10 +144,12 @@ func writeFile(path string, ff *fileFormat) error { | |||||||
| } | } | ||||||
|  |  | ||||||
| // This does the actual checking, since it knows the literal destination file. | // This does the actual checking, since it knows the literal destination file. | ||||||
| type importRuleFile struct{} | type importRuleFile struct { | ||||||
|  | 	context *generator.Context | ||||||
|  | } | ||||||
|  |  | ||||||
| func (importRuleFile) AssembleFile(f *generator.File, path string) error { | func (irf importRuleFile) AssembleFile(f *generator.File, path string) error { | ||||||
| 	return nil | 	return irf.VerifyFile(f, path) | ||||||
| } | } | ||||||
|  |  | ||||||
| // TODO: make a flag to enable this, or expose this information in some other way. | // TODO: make a flag to enable this, or expose this information in some other way. | ||||||
| @@ -169,62 +184,99 @@ func removeLastDir(path string) (newPath, removedDir string) { | |||||||
| 	return filepath.Join(filepath.Dir(dir), file), filepath.Base(dir) | 	return filepath.Join(filepath.Dir(dir), file), filepath.Base(dir) | ||||||
| } | } | ||||||
|  |  | ||||||
| // Keep going up a directory until we find an .import-restrictions file. | // isGoModRoot checks if a directory is the root directory for a package | ||||||
| func recursiveRead(path string) (*fileFormat, string, error) { | // by checking for the existence of a 'go.mod' file in that directory. | ||||||
|  | func isGoModRoot(path string) bool { | ||||||
|  | 	_, err := os.Stat(filepath.Join(filepath.Dir(path), goModFile)) | ||||||
|  | 	return err == nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // recursiveRead collects all '.import-restriction' files, between the current directory, | ||||||
|  | // and the package root when Go modules are enabled, or $GOPATH/src when they are not. | ||||||
|  | func recursiveRead(path string) ([]*fileFormat, error) { | ||||||
|  | 	restrictionFiles := make([]*fileFormat, 0) | ||||||
|  |  | ||||||
| 	for { | 	for { | ||||||
| 		if _, err := os.Stat(path); err == nil { | 		if _, err := os.Stat(path); err == nil { | ||||||
| 			ff, err := readFile(path) | 			rules, err := readFile(path) | ||||||
| 			return ff, path, err | 			if err != nil { | ||||||
|  | 				return nil, err | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			restrictionFiles = append(restrictionFiles, rules) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		nextPath, removedDir := removeLastDir(path) | 		nextPath, removedDir := removeLastDir(path) | ||||||
| 		if nextPath == path || removedDir == "src" { | 		if nextPath == path || isGoModRoot(path) || removedDir == "src" { | ||||||
| 			break | 			break | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		path = nextPath | 		path = nextPath | ||||||
| 	} | 	} | ||||||
| 	return nil, "", nil |  | ||||||
|  | 	return restrictionFiles, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func (importRuleFile) VerifyFile(f *generator.File, path string) error { | func (irf importRuleFile) VerifyFile(f *generator.File, path string) error { | ||||||
| 	rules, actualPath, err := recursiveRead(path) | 	restrictionFiles, err := recursiveRead(filepath.Join(f.PackageSourcePath, f.Name)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return fmt.Errorf("error finding rules file: %v", err) | 		return fmt.Errorf("error finding rules file: %v", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if rules == nil { | 	if err := irf.verifyRules(restrictionFiles, f); err != nil { | ||||||
| 		// No restrictions on this directory. | 		return err | ||||||
| 		return nil | 	} | ||||||
|  |  | ||||||
|  | 	return irf.verifyInverseRules(restrictionFiles, f) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (irf importRuleFile) verifyRules(restrictionFiles []*fileFormat, f *generator.File) error { | ||||||
|  | 	selectors := make([][]*regexp.Regexp, len(restrictionFiles)) | ||||||
|  | 	for i, restrictionFile := range restrictionFiles { | ||||||
|  | 		for _, r := range restrictionFile.Rules { | ||||||
|  | 			re, err := regexp.Compile(r.SelectorRegexp) | ||||||
|  | 			if err != nil { | ||||||
|  | 				return fmt.Errorf("regexp `%s` in file %q doesn't compile: %v", r.SelectorRegexp, restrictionFile.path, err) | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			selectors[i] = append(selectors[i], re) | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	forbiddenImports := map[string]string{} | 	forbiddenImports := map[string]string{} | ||||||
| 	allowedMismatchedImports := []string{} | 	allowedMismatchedImports := []string{} | ||||||
| 	for _, r := range rules.Rules { |  | ||||||
| 		re, err := regexp.Compile(r.SelectorRegexp) | 	for v := range f.Imports { | ||||||
| 		if err != nil { | 		explicitlyAllowed := false | ||||||
| 			return fmt.Errorf("regexp `%s` in file %q doesn't compile: %v", r.SelectorRegexp, actualPath, err) |  | ||||||
| 		} | 	NextRestrictionFiles: | ||||||
| 		for v := range f.Imports { | 		for i, rules := range restrictionFiles { | ||||||
| 			klog.V(4).Infof("Checking %v matches %v: %v\n", r.SelectorRegexp, v, re.MatchString(v)) | 			for j, r := range rules.Rules { | ||||||
| 			if !re.MatchString(v) { | 				matching := selectors[i][j].MatchString(v) | ||||||
| 				continue | 				klog.V(5).Infof("Checking %v matches %v: %v\n", r.SelectorRegexp, v, matching) | ||||||
| 			} | 				if !matching { | ||||||
| 			for _, forbidden := range r.ForbiddenPrefixes { | 					continue | ||||||
| 				klog.V(4).Infof("Checking %v against %v\n", v, forbidden) |  | ||||||
| 				if strings.HasPrefix(v, forbidden) { |  | ||||||
| 					forbiddenImports[v] = forbidden |  | ||||||
| 				} | 				} | ||||||
| 			} | 				for _, forbidden := range r.ForbiddenPrefixes { | ||||||
| 			found := false | 					klog.V(4).Infof("Checking %v against %v\n", v, forbidden) | ||||||
| 			for _, allowed := range r.AllowedPrefixes { | 					if strings.HasPrefix(v, forbidden) { | ||||||
| 				klog.V(4).Infof("Checking %v against %v\n", v, allowed) | 						forbiddenImports[v] = forbidden | ||||||
| 				if strings.HasPrefix(v, allowed) { | 					} | ||||||
| 					found = true | 				} | ||||||
| 					break | 				for _, allowed := range r.AllowedPrefixes { | ||||||
|  | 					klog.V(4).Infof("Checking %v against %v\n", v, allowed) | ||||||
|  | 					if strings.HasPrefix(v, allowed) { | ||||||
|  | 						explicitlyAllowed = true | ||||||
|  | 						break | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 				if !explicitlyAllowed { | ||||||
|  | 					allowedMismatchedImports = append(allowedMismatchedImports, v) | ||||||
|  | 				} else { | ||||||
|  | 					klog.V(2).Infof("%v importing %v allowed by %v\n", f.PackagePath, v, restrictionFiles[i].path) | ||||||
|  | 					break NextRestrictionFiles | ||||||
| 				} | 				} | ||||||
| 			} |  | ||||||
| 			if !found { |  | ||||||
| 				allowedMismatchedImports = append(allowedMismatchedImports, v) |  | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -243,8 +295,85 @@ func (importRuleFile) VerifyFile(f *generator.File, path string) error { | |||||||
| 		} | 		} | ||||||
| 		return errors.New(errorBuilder.String()) | 		return errors.New(errorBuilder.String()) | ||||||
| 	} | 	} | ||||||
| 	if len(rules.Rules) > 0 { |  | ||||||
| 		klog.V(2).Infof("%v passes rules found in %v\n", path, actualPath) | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // verifyInverseRules checks that all packages that import a package are allowed to import it. | ||||||
|  | func (irf importRuleFile) verifyInverseRules(restrictionFiles []*fileFormat, f *generator.File) error { | ||||||
|  | 	// compile all Selector regex in all restriction files | ||||||
|  | 	selectors := make([][]*regexp.Regexp, len(restrictionFiles)) | ||||||
|  | 	for i, restrictionFile := range restrictionFiles { | ||||||
|  | 		for _, r := range restrictionFile.InverseRules { | ||||||
|  | 			re, err := regexp.Compile(r.SelectorRegexp) | ||||||
|  | 			if err != nil { | ||||||
|  | 				return fmt.Errorf("regexp `%s` in file %q doesn't compile: %v", r.SelectorRegexp, restrictionFile.path, err) | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			selectors[i] = append(selectors[i], re) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	directImport := map[string]bool{} | ||||||
|  | 	for _, imp := range irf.context.IncomingImports()[f.PackagePath] { | ||||||
|  | 		directImport[imp] = true | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	forbiddenImports := map[string]string{} | ||||||
|  | 	allowedMismatchedImports := []string{} | ||||||
|  |  | ||||||
|  | 	for _, v := range irf.context.TransitiveIncomingImports()[f.PackagePath] { | ||||||
|  | 		explicitlyAllowed := false | ||||||
|  |  | ||||||
|  | 	NextRestrictionFiles: | ||||||
|  | 		for i, rules := range restrictionFiles { | ||||||
|  | 			for j, r := range rules.InverseRules { | ||||||
|  | 				if !r.Transitive && !directImport[v] { | ||||||
|  | 					continue | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 				re := selectors[i][j] | ||||||
|  | 				matching := re.MatchString(v) | ||||||
|  | 				klog.V(4).Infof("Checking %v matches %v (importing %v: %v\n", r.SelectorRegexp, v, f.PackagePath, matching) | ||||||
|  | 				if !matching { | ||||||
|  | 					continue | ||||||
|  | 				} | ||||||
|  | 				for _, forbidden := range r.ForbiddenPrefixes { | ||||||
|  | 					klog.V(4).Infof("Checking %v against %v\n", v, forbidden) | ||||||
|  | 					if strings.HasPrefix(v, forbidden) { | ||||||
|  | 						forbiddenImports[v] = forbidden | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				for _, allowed := range r.AllowedPrefixes { | ||||||
|  | 					klog.V(4).Infof("Checking %v against %v\n", v, allowed) | ||||||
|  | 					if strings.HasPrefix(v, allowed) { | ||||||
|  | 						explicitlyAllowed = true | ||||||
|  | 						break | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				if !explicitlyAllowed { | ||||||
|  | 					allowedMismatchedImports = append(allowedMismatchedImports, v) | ||||||
|  | 				} else { | ||||||
|  | 					klog.V(2).Infof("%v importing %v allowed by %v\n", v, f.PackagePath, restrictionFiles[i].path) | ||||||
|  | 					break NextRestrictionFiles | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if len(forbiddenImports) > 0 || len(allowedMismatchedImports) > 0 { | ||||||
|  | 		var errorBuilder strings.Builder | ||||||
|  | 		for i, f := range forbiddenImports { | ||||||
|  | 			fmt.Fprintf(&errorBuilder, "(inverse): import %v has forbidden prefix %v\n", i, f) | ||||||
|  | 		} | ||||||
|  | 		if len(allowedMismatchedImports) > 0 { | ||||||
|  | 			sort.Sort(sort.StringSlice(allowedMismatchedImports)) | ||||||
|  | 			fmt.Fprintf(&errorBuilder, "(inverse): the following imports did not match any allowed prefix:\n") | ||||||
|  | 			for _, i := range allowedMismatchedImports { | ||||||
|  | 				fmt.Fprintf(&errorBuilder, "  %v\n", i) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return errors.New(errorBuilder.String()) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return nil | 	return nil | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								vendor/k8s.io/gengo/generator/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/k8s.io/gengo/generator/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,6 +11,7 @@ go_library( | |||||||
|         "generator.go", |         "generator.go", | ||||||
|         "import_tracker.go", |         "import_tracker.go", | ||||||
|         "snippet_writer.go", |         "snippet_writer.go", | ||||||
|  |         "transitive_closure.go", | ||||||
|     ], |     ], | ||||||
|     importmap = "k8s.io/kubernetes/vendor/k8s.io/gengo/generator", |     importmap = "k8s.io/kubernetes/vendor/k8s.io/gengo/generator", | ||||||
|     importpath = "k8s.io/gengo/generator", |     importpath = "k8s.io/gengo/generator", | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								vendor/k8s.io/gengo/generator/default_package.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/k8s.io/gengo/generator/default_package.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,6 +26,8 @@ type DefaultPackage struct { | |||||||
| 	PackageName string | 	PackageName string | ||||||
| 	// Import path of the package, and the location on disk of the package. | 	// Import path of the package, and the location on disk of the package. | ||||||
| 	PackagePath string | 	PackagePath string | ||||||
|  | 	// The location of the package on disk. | ||||||
|  | 	Source string | ||||||
|  |  | ||||||
| 	// Emitted at the top of every file. | 	// Emitted at the top of every file. | ||||||
| 	HeaderText []byte | 	HeaderText []byte | ||||||
| @@ -43,8 +45,9 @@ type DefaultPackage struct { | |||||||
| 	FilterFunc func(*Context, *types.Type) bool | 	FilterFunc func(*Context, *types.Type) bool | ||||||
| } | } | ||||||
|  |  | ||||||
| func (d *DefaultPackage) Name() string { return d.PackageName } | func (d *DefaultPackage) Name() string       { return d.PackageName } | ||||||
| func (d *DefaultPackage) Path() string { return d.PackagePath } | func (d *DefaultPackage) Path() string       { return d.PackagePath } | ||||||
|  | func (d *DefaultPackage) SourcePath() string { return d.Source } | ||||||
|  |  | ||||||
| func (d *DefaultPackage) Filter(c *Context, t *types.Type) bool { | func (d *DefaultPackage) Filter(c *Context, t *types.Type) bool { | ||||||
| 	if d.FilterFunc != nil { | 	if d.FilterFunc != nil { | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								vendor/k8s.io/gengo/generator/execute.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/k8s.io/gengo/generator/execute.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -233,11 +233,13 @@ func (c *Context) ExecutePackage(outDir string, p Package) error { | |||||||
| 		if f == nil { | 		if f == nil { | ||||||
| 			// This is the first generator to reference this file, so start it. | 			// This is the first generator to reference this file, so start it. | ||||||
| 			f = &File{ | 			f = &File{ | ||||||
| 				Name:        g.Filename(), | 				Name:              g.Filename(), | ||||||
| 				FileType:    fileType, | 				FileType:          fileType, | ||||||
| 				PackageName: p.Name(), | 				PackageName:       p.Name(), | ||||||
| 				Header:      p.Header(g.Filename()), | 				PackagePath:       p.Path(), | ||||||
| 				Imports:     map[string]struct{}{}, | 				PackageSourcePath: p.SourcePath(), | ||||||
|  | 				Header:            p.Header(g.Filename()), | ||||||
|  | 				Imports:           map[string]struct{}{}, | ||||||
| 			} | 			} | ||||||
| 			files[f.Name] = f | 			files[f.Name] = f | ||||||
| 		} else { | 		} else { | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								vendor/k8s.io/gengo/generator/generator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								vendor/k8s.io/gengo/generator/generator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -31,6 +31,8 @@ type Package interface { | |||||||
| 	Name() string | 	Name() string | ||||||
| 	// Path returns the package import path. | 	// Path returns the package import path. | ||||||
| 	Path() string | 	Path() string | ||||||
|  | 	// SourcePath returns the location of the package on disk. | ||||||
|  | 	SourcePath() string | ||||||
|  |  | ||||||
| 	// Filter should return true if this package cares about this type. | 	// Filter should return true if this package cares about this type. | ||||||
| 	// Otherwise, this type will be omitted from the type ordering for | 	// Otherwise, this type will be omitted from the type ordering for | ||||||
| @@ -50,14 +52,16 @@ type Package interface { | |||||||
| } | } | ||||||
|  |  | ||||||
| type File struct { | type File struct { | ||||||
| 	Name        string | 	Name              string | ||||||
| 	FileType    string | 	FileType          string | ||||||
| 	PackageName string | 	PackageName       string | ||||||
| 	Header      []byte | 	Header            []byte | ||||||
| 	Imports     map[string]struct{} | 	PackagePath       string | ||||||
| 	Vars        bytes.Buffer | 	PackageSourcePath string | ||||||
| 	Consts      bytes.Buffer | 	Imports           map[string]struct{} | ||||||
| 	Body        bytes.Buffer | 	Vars              bytes.Buffer | ||||||
|  | 	Consts            bytes.Buffer | ||||||
|  | 	Body              bytes.Buffer | ||||||
| } | } | ||||||
|  |  | ||||||
| type FileType interface { | type FileType interface { | ||||||
| @@ -156,6 +160,12 @@ type Context struct { | |||||||
| 	// All the types, in case you want to look up something. | 	// All the types, in case you want to look up something. | ||||||
| 	Universe types.Universe | 	Universe types.Universe | ||||||
|  |  | ||||||
|  | 	// Incoming imports, i.e. packages importing the given package. | ||||||
|  | 	incomingImports map[string][]string | ||||||
|  |  | ||||||
|  | 	// Incoming transitive imports, i.e. the transitive closure of IncomingImports | ||||||
|  | 	incomingTransitiveImports map[string][]string | ||||||
|  |  | ||||||
| 	// All the user-specified packages.  This is after recursive expansion. | 	// All the user-specified packages.  This is after recursive expansion. | ||||||
| 	Inputs []string | 	Inputs []string | ||||||
|  |  | ||||||
| @@ -203,11 +213,36 @@ func NewContext(b *parser.Builder, nameSystems namer.NameSystems, canonicalOrder | |||||||
| 	return c, nil | 	return c, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // IncomingImports returns the incoming imports for each package. The map is lazily computed. | ||||||
|  | func (ctxt *Context) IncomingImports() map[string][]string { | ||||||
|  | 	if ctxt.incomingImports == nil { | ||||||
|  | 		incoming := map[string][]string{} | ||||||
|  | 		for _, pkg := range ctxt.Universe { | ||||||
|  | 			for imp := range pkg.Imports { | ||||||
|  | 				incoming[imp] = append(incoming[imp], pkg.Path) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		ctxt.incomingImports = incoming | ||||||
|  | 	} | ||||||
|  | 	return ctxt.incomingImports | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // TransitiveIncomingImports returns the transitive closure of the incoming imports for each package. | ||||||
|  | // The map is lazily computed. | ||||||
|  | func (ctxt *Context) TransitiveIncomingImports() map[string][]string { | ||||||
|  | 	if ctxt.incomingTransitiveImports == nil { | ||||||
|  | 		ctxt.incomingTransitiveImports = transitiveClosure(ctxt.IncomingImports()) | ||||||
|  | 	} | ||||||
|  | 	return ctxt.incomingTransitiveImports | ||||||
|  | } | ||||||
|  |  | ||||||
| // AddDir adds a Go package to the context. The specified path must be a single | // AddDir adds a Go package to the context. The specified path must be a single | ||||||
| // go package import path.  GOPATH, GOROOT, and the location of your go binary | // go package import path.  GOPATH, GOROOT, and the location of your go binary | ||||||
| // (`which go`) will all be searched, in the normal Go fashion. | // (`which go`) will all be searched, in the normal Go fashion. | ||||||
| // Deprecated. Please use AddDirectory. | // Deprecated. Please use AddDirectory. | ||||||
| func (ctxt *Context) AddDir(path string) error { | func (ctxt *Context) AddDir(path string) error { | ||||||
|  | 	ctxt.incomingImports = nil | ||||||
|  | 	ctxt.incomingTransitiveImports = nil | ||||||
| 	return ctxt.builder.AddDirTo(path, &ctxt.Universe) | 	return ctxt.builder.AddDirTo(path, &ctxt.Universe) | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -215,5 +250,7 @@ func (ctxt *Context) AddDir(path string) error { | |||||||
| // single go package import path.  GOPATH, GOROOT, and the location of your go | // single go package import path.  GOPATH, GOROOT, and the location of your go | ||||||
| // binary (`which go`) will all be searched, in the normal Go fashion. | // binary (`which go`) will all be searched, in the normal Go fashion. | ||||||
| func (ctxt *Context) AddDirectory(path string) (*types.Package, error) { | func (ctxt *Context) AddDirectory(path string) (*types.Package, error) { | ||||||
|  | 	ctxt.incomingImports = nil | ||||||
|  | 	ctxt.incomingTransitiveImports = nil | ||||||
| 	return ctxt.builder.AddDirectoryTo(path, &ctxt.Universe) | 	return ctxt.builder.AddDirectoryTo(path, &ctxt.Universe) | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/k8s.io/gengo/generator/import_tracker.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/k8s.io/gengo/generator/import_tracker.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,6 +17,7 @@ limitations under the License. | |||||||
| package generator | package generator | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"go/token" | ||||||
| 	"strings" | 	"strings" | ||||||
|  |  | ||||||
| 	"k8s.io/klog" | 	"k8s.io/klog" | ||||||
| @@ -58,6 +59,11 @@ func golangTrackerLocalName(tracker namer.ImportTracker, t types.Name) string { | |||||||
| 			// This name collides with some other package | 			// This name collides with some other package | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		// If the import name is a Go keyword, prefix with an underscore. | ||||||
|  | 		if token.Lookup(name).IsKeyword() { | ||||||
|  | 			name = "_" + name | ||||||
|  | 		} | ||||||
| 		return name | 		return name | ||||||
| 	} | 	} | ||||||
| 	panic("can't find import for " + path) | 	panic("can't find import for " + path) | ||||||
|   | |||||||
							
								
								
									
										65
									
								
								vendor/k8s.io/gengo/generator/transitive_closure.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								vendor/k8s.io/gengo/generator/transitive_closure.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | |||||||
|  | /* | ||||||
|  | Copyright 2019 The Kubernetes Authors. | ||||||
|  |  | ||||||
|  | Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | you may not use this file except in compliance with the License. | ||||||
|  | You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  | Unless required by applicable law or agreed to in writing, software | ||||||
|  | distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | See the License for the specific language governing permissions and | ||||||
|  | limitations under the License. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | package generator | ||||||
|  |  | ||||||
|  | import "sort" | ||||||
|  |  | ||||||
|  | type edge struct { | ||||||
|  | 	from string | ||||||
|  | 	to   string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func transitiveClosure(in map[string][]string) map[string][]string { | ||||||
|  | 	adj := make(map[edge]bool) | ||||||
|  | 	imports := make(map[string]struct{}) | ||||||
|  | 	for from, tos := range in { | ||||||
|  | 		for _, to := range tos { | ||||||
|  | 			adj[edge{from, to}] = true | ||||||
|  | 			imports[to] = struct{}{} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Warshal's algorithm | ||||||
|  | 	for k := range in { | ||||||
|  | 		for i := range in { | ||||||
|  | 			if !adj[edge{i, k}] { | ||||||
|  | 				continue | ||||||
|  | 			} | ||||||
|  | 			for j := range imports { | ||||||
|  | 				if adj[edge{i, j}] { | ||||||
|  | 					continue | ||||||
|  | 				} | ||||||
|  | 				if adj[edge{k, j}] { | ||||||
|  | 					adj[edge{i, j}] = true | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	out := make(map[string][]string, len(in)) | ||||||
|  | 	for i := range in { | ||||||
|  | 		for j := range imports { | ||||||
|  | 			if adj[edge{i, j}] { | ||||||
|  | 				out[i] = append(out[i], j) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		sort.Strings(out[i]) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return out | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								vendor/k8s.io/gengo/namer/order.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/k8s.io/gengo/namer/order.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -43,6 +43,9 @@ func (o *Orderer) OrderUniverse(u types.Universe) []*types.Type { | |||||||
| 		for _, v := range p.Variables { | 		for _, v := range p.Variables { | ||||||
| 			list.types = append(list.types, v) | 			list.types = append(list.types, v) | ||||||
| 		} | 		} | ||||||
|  | 		for _, v := range p.Constants { | ||||||
|  | 			list.types = append(list.types, v) | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 	sort.Sort(list) | 	sort.Sort(list) | ||||||
| 	return list.types | 	return list.types | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								vendor/k8s.io/gengo/parser/parse.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/k8s.io/gengo/parser/parse.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -227,12 +227,16 @@ func (b *Builder) AddDirRecursive(dir string) error { | |||||||
| 		klog.Warningf("Ignoring directory %v: %v", dir, err) | 		klog.Warningf("Ignoring directory %v: %v", dir, err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// filepath.Walk includes the root dir, but we already did that, so we'll | 	// filepath.Walk does not follow symlinks. We therefore evaluate symlinks and use that with | ||||||
| 	// remove that prefix and rebuild a package import path. | 	// filepath.Walk. | ||||||
| 	prefix := b.buildPackages[dir].Dir | 	realPath, err := filepath.EvalSymlinks(b.buildPackages[dir].Dir) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	fn := func(filePath string, info os.FileInfo, err error) error { | 	fn := func(filePath string, info os.FileInfo, err error) error { | ||||||
| 		if info != nil && info.IsDir() { | 		if info != nil && info.IsDir() { | ||||||
| 			rel := filepath.ToSlash(strings.TrimPrefix(filePath, prefix)) | 			rel := filepath.ToSlash(strings.TrimPrefix(filePath, realPath)) | ||||||
| 			if rel != "" { | 			if rel != "" { | ||||||
| 				// Make a pkg path. | 				// Make a pkg path. | ||||||
| 				pkg := path.Join(string(canonicalizeImportPath(b.buildPackages[dir].ImportPath)), rel) | 				pkg := path.Join(string(canonicalizeImportPath(b.buildPackages[dir].ImportPath)), rel) | ||||||
| @@ -245,7 +249,7 @@ func (b *Builder) AddDirRecursive(dir string) error { | |||||||
| 		} | 		} | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 	if err := filepath.Walk(b.buildPackages[dir].Dir, fn); err != nil { | 	if err := filepath.Walk(realPath, fn); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| @@ -544,6 +548,10 @@ func (b *Builder) findTypesIn(pkgPath importPathString, u *types.Universe) error | |||||||
| 		if ok && !tv.IsField() { | 		if ok && !tv.IsField() { | ||||||
| 			b.addVariable(*u, nil, tv) | 			b.addVariable(*u, nil, tv) | ||||||
| 		} | 		} | ||||||
|  | 		tconst, ok := obj.(*tc.Const) | ||||||
|  | 		if ok { | ||||||
|  | 			b.addConstant(*u, nil, tconst) | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	importedPkgs := []string{} | 	importedPkgs := []string{} | ||||||
| @@ -774,7 +782,10 @@ func (b *Builder) walkType(u types.Universe, useName *types.Name, in tc.Type) *t | |||||||
| 				if out.Methods == nil { | 				if out.Methods == nil { | ||||||
| 					out.Methods = map[string]*types.Type{} | 					out.Methods = map[string]*types.Type{} | ||||||
| 				} | 				} | ||||||
| 				out.Methods[t.Method(i).Name()] = b.walkType(u, nil, t.Method(i).Type()) | 				method := t.Method(i) | ||||||
|  | 				mt := b.walkType(u, nil, method.Type()) | ||||||
|  | 				mt.CommentLines = splitLines(b.priorCommentLines(method.Pos(), 1).Text()) | ||||||
|  | 				out.Methods[method.Name()] = mt | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		return out | 		return out | ||||||
| @@ -811,6 +822,17 @@ func (b *Builder) addVariable(u types.Universe, useName *types.Name, in *tc.Var) | |||||||
| 	return out | 	return out | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (b *Builder) addConstant(u types.Universe, useName *types.Name, in *tc.Const) *types.Type { | ||||||
|  | 	name := tcVarNameToName(in.String()) | ||||||
|  | 	if useName != nil { | ||||||
|  | 		name = *useName | ||||||
|  | 	} | ||||||
|  | 	out := u.Constant(name) | ||||||
|  | 	out.Kind = types.DeclarationOf | ||||||
|  | 	out.Underlying = b.walkType(u, nil, in.Type()) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  |  | ||||||
| // canonicalizeImportPath takes an import path and returns the actual package. | // canonicalizeImportPath takes an import path and returns the actual package. | ||||||
| // It doesn't support nested vendoring. | // It doesn't support nested vendoring. | ||||||
| func canonicalizeImportPath(importPath string) importPathString { | func canonicalizeImportPath(importPath string) importPathString { | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								vendor/k8s.io/gengo/types/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/k8s.io/gengo/types/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -135,6 +135,10 @@ type Package struct { | |||||||
| 	// package name). | 	// package name). | ||||||
| 	Variables map[string]*Type | 	Variables map[string]*Type | ||||||
|  |  | ||||||
|  | 	// Global constants within this package, indexed by their name (*not* including | ||||||
|  | 	// package name). | ||||||
|  | 	Constants map[string]*Type | ||||||
|  |  | ||||||
| 	// Packages imported by this package, indexed by (canonicalized) | 	// Packages imported by this package, indexed by (canonicalized) | ||||||
| 	// package path. | 	// package path. | ||||||
| 	Imports map[string]*Package | 	Imports map[string]*Package | ||||||
| @@ -193,6 +197,20 @@ func (p *Package) Variable(varName string) *Type { | |||||||
| 	return t | 	return t | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // Constant gets the given constant Type in this Package. If the constant is | ||||||
|  | // not already defined, this will add it. If a constant is added, it's the caller's | ||||||
|  | // responsibility to finish construction of the constant by setting Underlying | ||||||
|  | // to the correct type. | ||||||
|  | func (p *Package) Constant(constName string) *Type { | ||||||
|  | 	if t, ok := p.Constants[constName]; ok { | ||||||
|  | 		return t | ||||||
|  | 	} | ||||||
|  | 	t := &Type{Name: Name{Package: p.Path, Name: constName}} | ||||||
|  | 	t.Kind = DeclarationOf | ||||||
|  | 	p.Constants[constName] = t | ||||||
|  | 	return t | ||||||
|  | } | ||||||
|  |  | ||||||
| // HasImport returns true if p imports packageName. Package names include the | // HasImport returns true if p imports packageName. Package names include the | ||||||
| // package directory. | // package directory. | ||||||
| func (p *Package) HasImport(packageName string) bool { | func (p *Package) HasImport(packageName string) bool { | ||||||
| @@ -229,6 +247,14 @@ func (u Universe) Variable(n Name) *Type { | |||||||
| 	return u.Package(n.Package).Variable(n.Name) | 	return u.Package(n.Package).Variable(n.Name) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // Constant returns the canonical constant for the given fully-qualified name. | ||||||
|  | // If a non-existing constant is requested, this will create (a marker for) it. | ||||||
|  | // If a marker is created, it's the caller's responsibility to finish | ||||||
|  | // construction of the constant by setting Underlying to the correct type. | ||||||
|  | func (u Universe) Constant(n Name) *Type { | ||||||
|  | 	return u.Package(n.Package).Constant(n.Name) | ||||||
|  | } | ||||||
|  |  | ||||||
| // AddImports registers import lines for packageName. May be called multiple times. | // AddImports registers import lines for packageName. May be called multiple times. | ||||||
| // You are responsible for canonicalizing all package paths. | // You are responsible for canonicalizing all package paths. | ||||||
| func (u Universe) AddImports(packagePath string, importPaths ...string) { | func (u Universe) AddImports(packagePath string, importPaths ...string) { | ||||||
| @@ -251,6 +277,7 @@ func (u Universe) Package(packagePath string) *Package { | |||||||
| 		Types:     map[string]*Type{}, | 		Types:     map[string]*Type{}, | ||||||
| 		Functions: map[string]*Type{}, | 		Functions: map[string]*Type{}, | ||||||
| 		Variables: map[string]*Type{}, | 		Variables: map[string]*Type{}, | ||||||
|  | 		Constants: map[string]*Type{}, | ||||||
| 		Imports:   map[string]*Package{}, | 		Imports:   map[string]*Package{}, | ||||||
| 	} | 	} | ||||||
| 	u[packagePath] = p | 	u[packagePath] = p | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1690,7 +1690,7 @@ k8s.io/cri-api/pkg/apis/testing | |||||||
| # k8s.io/csi-translation-lib v0.0.0 => ./staging/src/k8s.io/csi-translation-lib | # k8s.io/csi-translation-lib v0.0.0 => ./staging/src/k8s.io/csi-translation-lib | ||||||
| k8s.io/csi-translation-lib | k8s.io/csi-translation-lib | ||||||
| k8s.io/csi-translation-lib/plugins | k8s.io/csi-translation-lib/plugins | ||||||
| # k8s.io/gengo v0.0.0-20190822140433-26a664648505 => k8s.io/gengo v0.0.0-20190822140433-26a664648505 | # k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 => k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 | ||||||
| k8s.io/gengo/args | k8s.io/gengo/args | ||||||
| k8s.io/gengo/examples/deepcopy-gen/generators | k8s.io/gengo/examples/deepcopy-gen/generators | ||||||
| k8s.io/gengo/examples/defaulter-gen/generators | k8s.io/gengo/examples/defaulter-gen/generators | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Elijah Oyekunle
					Elijah Oyekunle