Commit 8355cefb authored by k8s-merge-robot's avatar k8s-merge-robot

Merge pull request #23373 from wojtek-t/conversions_with_framework_3

Auto commit by PR queue bot
parents 76fde46b 42e7ecda
...@@ -34,6 +34,8 @@ func main() { ...@@ -34,6 +34,8 @@ func main() {
// Override defaults. These are Kubernetes specific input locations. // Override defaults. These are Kubernetes specific input locations.
arguments.InputDirs = []string{ arguments.InputDirs = []string{
"k8s.io/kubernetes/pkg/api/v1", "k8s.io/kubernetes/pkg/api/v1",
"k8s.io/kubernetes/pkg/api",
"k8s.io/kubernetes/pkg/runtime",
} }
if err := arguments.Execute( if err := arguments.Execute(
......
...@@ -93,6 +93,9 @@ func NewSnippetWriter(w io.Writer, c *Context, left, right string) *SnippetWrite ...@@ -93,6 +93,9 @@ func NewSnippetWriter(w io.Writer, c *Context, left, right string) *SnippetWrite
// becomes a requirement. You can do arbitrary logic inside these templates, // becomes a requirement. You can do arbitrary logic inside these templates,
// but you should consider doing the logic in go and stitching them together // but you should consider doing the logic in go and stitching them together
// for the sake of your readers. // for the sake of your readers.
//
// TODO: Change Do() to optionally take a list of pairt of parameters (key, value)
// and have it construct a combined map with that and args.
func (s *SnippetWriter) Do(format string, args interface{}) *SnippetWriter { func (s *SnippetWriter) Do(format string, args interface{}) *SnippetWriter {
if s.err != nil { if s.err != nil {
return s return s
......
...@@ -417,3 +417,12 @@ var ( ...@@ -417,3 +417,12 @@ var (
Name: "", Name: "",
} }
) )
func IsInteger(t *Type) bool {
switch t {
case Int, Int64, Int32, Int16, Uint, Uint64, Uint32, Uint16, Byte:
return true
default:
return false
}
}
...@@ -24,6 +24,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh" ...@@ -24,6 +24,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env kube::golang::setup_env
clientgen=$(kube::util::find-binary "client-gen") clientgen=$(kube::util::find-binary "client-gen")
conversiongen=$(kube::util::find-binary "conversion-gen")
deepcopygen=$(kube::util::find-binary "deepcopy-gen") deepcopygen=$(kube::util::find-binary "deepcopy-gen")
setgen=$(kube::util::find-binary "set-gen") setgen=$(kube::util::find-binary "set-gen")
...@@ -34,6 +35,8 @@ setgen=$(kube::util::find-binary "set-gen") ...@@ -34,6 +35,8 @@ setgen=$(kube::util::find-binary "set-gen")
# update- and verify- scripts. # update- and verify- scripts.
${clientgen} "$@" ${clientgen} "$@"
${clientgen} -t "$@" ${clientgen} -t "$@"
# TODO: Enable when conversion generator is ready.
# ${conversiongen} "$@"
${deepcopygen} "$@" ${deepcopygen} "$@"
${setgen} "$@" ${setgen} "$@"
......
...@@ -26,6 +26,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh" ...@@ -26,6 +26,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env kube::golang::setup_env
"${KUBE_ROOT}/hack/build-go.sh" cmd/libs/go2idl/client-gen "${KUBE_ROOT}/hack/build-go.sh" cmd/libs/go2idl/client-gen
"${KUBE_ROOT}/hack/build-go.sh" cmd/libs/go2idl/conversion-gen
"${KUBE_ROOT}/hack/build-go.sh" cmd/libs/go2idl/deepcopy-gen "${KUBE_ROOT}/hack/build-go.sh" cmd/libs/go2idl/deepcopy-gen
"${KUBE_ROOT}/hack/build-go.sh" cmd/libs/go2idl/set-gen "${KUBE_ROOT}/hack/build-go.sh" cmd/libs/go2idl/set-gen
......
...@@ -1298,7 +1298,7 @@ func autoConvert_api_List_To_v1_List(in *api.List, out *List, s conversion.Scope ...@@ -1298,7 +1298,7 @@ func autoConvert_api_List_To_v1_List(in *api.List, out *List, s conversion.Scope
if in.Items != nil { if in.Items != nil {
out.Items = make([]runtime.RawExtension, len(in.Items)) out.Items = make([]runtime.RawExtension, len(in.Items))
for i := range in.Items { for i := range in.Items {
if err := s.Convert(&in.Items[i], &out.Items[i], 0); err != nil { if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Items[i], &out.Items[i], s); err != nil {
return err return err
} }
} }
...@@ -4571,7 +4571,7 @@ func autoConvert_v1_List_To_api_List(in *List, out *api.List, s conversion.Scope ...@@ -4571,7 +4571,7 @@ func autoConvert_v1_List_To_api_List(in *List, out *api.List, s conversion.Scope
if in.Items != nil { if in.Items != nil {
out.Items = make([]runtime.Object, len(in.Items)) out.Items = make([]runtime.Object, len(in.Items))
for i := range in.Items { for i := range in.Items {
if err := s.Convert(&in.Items[i], &out.Items[i], 0); err != nil { if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Items[i], &out.Items[i], s); err != nil {
return err return err
} }
} }
......
...@@ -88,46 +88,49 @@ func (re Unknown) MarshalJSON() ([]byte, error) { ...@@ -88,46 +88,49 @@ func (re Unknown) MarshalJSON() ([]byte, error) {
return re.Raw, nil return re.Raw, nil
} }
func Convert_runtime_Object_To_runtime_RawExtension(in *Object, out *RawExtension, s conversion.Scope) error {
if in == nil {
out.Raw = []byte("null")
return nil
}
obj := *in
if unk, ok := obj.(*Unknown); ok {
if unk.Raw != nil {
out.Raw = unk.Raw
return nil
}
obj = out.Object
}
if obj == nil {
out.Raw = nil
return nil
}
out.Object = obj
return nil
}
func Convert_runtime_RawExtension_To_runtime_Object(in *RawExtension, out *Object, s conversion.Scope) error {
if in.Object != nil {
*out = in.Object
return nil
}
data := in.Raw
if len(data) == 0 || (len(data) == 4 && string(data) == "null") {
*out = nil
return nil
}
*out = &Unknown{
Raw: data,
// TODO: Set ContentEncoding and ContentType appropriately.
// Currently we set ContentTypeJSON to make tests passing.
ContentType: ContentTypeJSON,
}
return nil
}
func DefaultEmbeddedConversions() []interface{} { func DefaultEmbeddedConversions() []interface{} {
return []interface{}{ return []interface{}{
func(in *Object, out *RawExtension, s conversion.Scope) error { Convert_runtime_Object_To_runtime_RawExtension,
if in == nil { Convert_runtime_RawExtension_To_runtime_Object,
out.Raw = []byte("null")
return nil
}
obj := *in
if unk, ok := obj.(*Unknown); ok {
if unk.Raw != nil {
out.Raw = unk.Raw
return nil
}
obj = out.Object
}
if obj == nil {
out.Raw = nil
return nil
}
out.Object = obj
return nil
},
func(in *RawExtension, out *Object, s conversion.Scope) error {
if in.Object != nil {
*out = in.Object
return nil
}
data := in.Raw
if len(data) == 0 || (len(data) == 4 && string(data) == "null") {
*out = nil
return nil
}
*out = &Unknown{
Raw: data,
// TODO: Set ContentEncoding and ContentType appropriately.
// Currently we set ContentTypeJSON to make tests passing.
ContentType: ContentTypeJSON,
}
return nil
},
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment