From 04eb0d40bbc6734dc855494e62b48a7adfab5e22 Mon Sep 17 00:00:00 2001 From: Wojciech Tyczynski Date: Thu, 17 Mar 2016 11:09:17 +0100 Subject: [PATCH] Migrate everything to new deep-copy generator. --- cmd/libs/go2idl/deepcopy-gen/generators/deepcopy.go | 4 +++- cmd/libs/go2idl/deepcopy-gen/main.go | 13 +++++++++++++ hack/after-build/update-generated-deep-copies.sh | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/cmd/libs/go2idl/deepcopy-gen/generators/deepcopy.go b/cmd/libs/go2idl/deepcopy-gen/generators/deepcopy.go index 69d16996dc4..ce469d300f5 100644 --- a/cmd/libs/go2idl/deepcopy-gen/generators/deepcopy.go +++ b/cmd/libs/go2idl/deepcopy-gen/generators/deepcopy.go @@ -363,7 +363,9 @@ func (g *genDeepCopy) doStruct(t *types.Type, sw *generator.SnippetWriter) { if m.Type.Kind == types.Alias && m.Type.Underlying.Kind == types.Builtin { sw.Do("out.$.name$ = in.$.name$\n", args) } else { - sw.Do("if newVal, err := c.DeepCopy(in.$.name$); err != nil {\n", args) + sw.Do("if in.$.name$ == nil {\n", args) + sw.Do("out.$.name$ = nil\n", args) + sw.Do("} else if newVal, err := c.DeepCopy(in.$.name$); err != nil {\n", args) sw.Do("return err\n", nil) sw.Do("} else {\n", nil) sw.Do("out.$.name$ = newVal.($.type|raw$)\n", args) diff --git a/cmd/libs/go2idl/deepcopy-gen/main.go b/cmd/libs/go2idl/deepcopy-gen/main.go index 76e403a2bd7..aed1a06d740 100644 --- a/cmd/libs/go2idl/deepcopy-gen/main.go +++ b/cmd/libs/go2idl/deepcopy-gen/main.go @@ -34,6 +34,19 @@ func main() { // Override defaults. These are Kubernetes specific input locations. arguments.InputDirs = []string{ "k8s.io/kubernetes/pkg/api", + "k8s.io/kubernetes/pkg/api/v1", + "k8s.io/kubernetes/pkg/apis/authorization", + "k8s.io/kubernetes/pkg/apis/authorization/v1beta1", + "k8s.io/kubernetes/pkg/apis/autoscaling", + "k8s.io/kubernetes/pkg/apis/autoscaling/v1", + "k8s.io/kubernetes/pkg/apis/batch", + "k8s.io/kubernetes/pkg/apis/batch/v1", + "k8s.io/kubernetes/pkg/apis/componentconfig", + "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1", + "k8s.io/kubernetes/pkg/apis/extensions", + "k8s.io/kubernetes/pkg/apis/extensions/v1beta1", + "k8s.io/kubernetes/pkg/apis/metrics", + "k8s.io/kubernetes/pkg/apis/metrics/v1alpha1", } if err := arguments.Execute( diff --git a/hack/after-build/update-generated-deep-copies.sh b/hack/after-build/update-generated-deep-copies.sh index e0c1e9e0bba..41c754f6d03 100755 --- a/hack/after-build/update-generated-deep-copies.sh +++ b/hack/after-build/update-generated-deep-copies.sh @@ -62,6 +62,6 @@ function generate_deep_copies() { # Currently pkg/api/deep_copy_generated.go is generated by the new go2idl generator. # All others (mentioned above) are still generated by the old reflection-based generator. # TODO: Migrate these to the new generator. -DEFAULT_VERSIONS="v1 authorization/__internal authorization/v1beta1 autoscaling/__internal autoscaling/v1 batch/__internal batch/v1 extensions/__internal extensions/v1beta1 componentconfig/__internal componentconfig/v1alpha1 metrics/__internal metrics/v1alpha1" +DEFAULT_VERSIONS="" VERSIONS=${VERSIONS:-$DEFAULT_VERSIONS} generate_deep_copies "$VERSIONS"