mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
changes to generators
This commit is contained in:
parent
f1fd638962
commit
bd7d7cc02a
@ -30,14 +30,16 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Adds the list of known types to api.Scheme.
|
// Adds the list of known types to api.Scheme.
|
||||||
func addKnownTypes(scheme *runtime.Scheme) {
|
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||||
&TestType{},
|
&TestType{},
|
||||||
&TestTypeList{},
|
&TestTypeList{},
|
||||||
)
|
)
|
||||||
|
|
||||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||||
&api.ListOptions{})
|
&api.ListOptions{},
|
||||||
|
)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (obj *TestType) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
func (obj *TestType) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||||
|
@ -31,7 +31,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Adds the list of known types to api.Scheme.
|
// Adds the list of known types to api.Scheme.
|
||||||
func addKnownTypes(scheme *runtime.Scheme) {
|
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||||
&TestType{},
|
&TestType{},
|
||||||
&TestTypeList{},
|
&TestTypeList{},
|
||||||
@ -41,8 +41,10 @@ func addKnownTypes(scheme *runtime.Scheme) {
|
|||||||
&v1.ListOptions{},
|
&v1.ListOptions{},
|
||||||
&v1.DeleteOptions{},
|
&v1.DeleteOptions{},
|
||||||
&unversioned.Status{},
|
&unversioned.Status{},
|
||||||
&v1.ExportOptions{})
|
&v1.ExportOptions{},
|
||||||
|
)
|
||||||
versionedwatch.AddToGroupVersion(scheme, SchemeGroupVersion)
|
versionedwatch.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (obj *TestType) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
func (obj *TestType) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||||
|
@ -396,7 +396,7 @@ func areTypesAliased(in, out *types.Type) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
apiPackagePath = "k8s.io/kubernetes/pkg/api"
|
runtimePackagePath = "k8s.io/kubernetes/pkg/runtime"
|
||||||
conversionPackagePath = "k8s.io/kubernetes/pkg/conversion"
|
conversionPackagePath = "k8s.io/kubernetes/pkg/conversion"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -541,20 +541,24 @@ func (g *genConversion) preexists(inType, outType *types.Type) (*types.Type, boo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *genConversion) Init(c *generator.Context, w io.Writer) error {
|
func (g *genConversion) Init(c *generator.Context, w io.Writer) error {
|
||||||
scheme := c.Universe.Package(apiPackagePath).Variable("Scheme")
|
|
||||||
|
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
sw.Do("func init() {\n", nil)
|
sw.Do("func init() {\n", nil)
|
||||||
sw.Do("if err := $.scheme|raw$.AddGeneratedConversionFuncs(\n", generator.Args{
|
sw.Do("SchemeBuilder.Register(RegisterConversions)\n", nil)
|
||||||
"scheme": scheme,
|
sw.Do("}\n", nil)
|
||||||
})
|
|
||||||
|
scheme := c.Universe.Type(types.Name{Package: runtimePackagePath, Name: "Scheme"})
|
||||||
|
schemePtr := &types.Type{
|
||||||
|
Kind: types.Pointer,
|
||||||
|
Elem: scheme,
|
||||||
|
}
|
||||||
|
sw.Do("// RegisterConversions adds conversion functions to the given scheme.\n", nil)
|
||||||
|
sw.Do("// Public to allow building arbitrary schemes.\n", nil)
|
||||||
|
sw.Do("func RegisterConversions(scheme $.|raw$) error {\n", schemePtr)
|
||||||
|
sw.Do("return scheme.AddGeneratedConversionFuncs(\n", nil)
|
||||||
for _, conv := range g.typesForInit {
|
for _, conv := range g.typesForInit {
|
||||||
sw.Do(nameTmpl+",\n", argsFromType(conv.inType, conv.outType))
|
sw.Do(nameTmpl+",\n", argsFromType(conv.inType, conv.outType))
|
||||||
}
|
}
|
||||||
sw.Do("); err != nil {\n", nil)
|
sw.Do(")\n", nil)
|
||||||
sw.Do("// if one of the conversion functions is malformed, detect it immediately.\n", nil)
|
|
||||||
sw.Do("panic(err)\n", nil)
|
|
||||||
sw.Do("}\n", nil)
|
|
||||||
sw.Do("}\n\n", nil)
|
sw.Do("}\n\n", nil)
|
||||||
return sw.Error()
|
return sw.Error()
|
||||||
}
|
}
|
||||||
|
@ -375,21 +375,26 @@ func (g *genDeepCopy) Init(c *generator.Context, w io.Writer) error {
|
|||||||
}
|
}
|
||||||
glog.V(5).Infof("registering types in pkg %q", g.targetPackage)
|
glog.V(5).Infof("registering types in pkg %q", g.targetPackage)
|
||||||
|
|
||||||
scheme := c.Universe.Variable(types.Name{Package: apiPackagePath, Name: "Scheme"})
|
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
sw.Do("func init() {\n", nil)
|
sw.Do("func init() {\n", nil)
|
||||||
sw.Do("if err := $.scheme|raw$.AddGeneratedDeepCopyFuncs(\n", generator.Args{
|
sw.Do("SchemeBuilder.Register(RegisterDeepCopies)\n", nil)
|
||||||
"scheme": scheme,
|
sw.Do("}\n\n", nil)
|
||||||
})
|
|
||||||
|
scheme := c.Universe.Type(types.Name{Package: runtimePackagePath, Name: "Scheme"})
|
||||||
|
schemePtr := &types.Type{
|
||||||
|
Kind: types.Pointer,
|
||||||
|
Elem: scheme,
|
||||||
|
}
|
||||||
|
sw.Do("// RegisterDeepCopies adds deep-copy functions to the given scheme. Public\n", nil)
|
||||||
|
sw.Do("// to allow building arbitrary schemes.\n", nil)
|
||||||
|
sw.Do("func RegisterDeepCopies(scheme $.|raw$) error {\n", schemePtr)
|
||||||
|
sw.Do("return scheme.AddGeneratedDeepCopyFuncs(\n", nil)
|
||||||
for _, t := range g.typesForInit {
|
for _, t := range g.typesForInit {
|
||||||
args := argsFromType(t).
|
args := argsFromType(t).
|
||||||
With("typeof", c.Universe.Package("reflect").Function("TypeOf"))
|
With("typeof", c.Universe.Package("reflect").Function("TypeOf"))
|
||||||
sw.Do("conversion.GeneratedDeepCopyFunc{Fn: $.type|dcFnName$, InType: $.typeof|raw$(&$.type|raw${})},\n", args)
|
sw.Do("conversion.GeneratedDeepCopyFunc{Fn: $.type|dcFnName$, InType: $.typeof|raw$(&$.type|raw${})},\n", args)
|
||||||
}
|
}
|
||||||
sw.Do("); err != nil {\n", nil)
|
sw.Do(")\n", nil)
|
||||||
sw.Do("// if one of the deep copy functions is malformed, detect it immediately.\n", nil)
|
|
||||||
sw.Do("panic(err)\n", nil)
|
|
||||||
sw.Do("}\n", nil)
|
|
||||||
sw.Do("}\n\n", nil)
|
sw.Do("}\n\n", nil)
|
||||||
return sw.Error()
|
return sw.Error()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user