Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
ae2d4b3c
Commit
ae2d4b3c
authored
Jan 05, 2017
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bump(k8s.io/gengo): 8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
parent
8ef69025
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
98 additions
and
58 deletions
+98
-58
Godeps.json
Godeps/Godeps.json
+10
-10
deepcopy.go
...k8s.io/gengo/examples/deepcopy-gen/generators/deepcopy.go
+82
-41
defaulter.go
...s.io/gengo/examples/defaulter-gen/generators/defaulter.go
+0
-1
byte.go
vendor/k8s.io/gengo/examples/set-gen/sets/byte.go
+1
-1
doc.go
vendor/k8s.io/gengo/examples/set-gen/sets/doc.go
+1
-1
empty.go
vendor/k8s.io/gengo/examples/set-gen/sets/empty.go
+1
-1
int.go
vendor/k8s.io/gengo/examples/set-gen/sets/int.go
+1
-1
int64.go
vendor/k8s.io/gengo/examples/set-gen/sets/int64.go
+1
-1
string.go
vendor/k8s.io/gengo/examples/set-gen/sets/string.go
+1
-1
parse.go
vendor/k8s.io/gengo/parser/parse.go
+0
-0
No files found.
Godeps/Godeps.json
View file @
ae2d4b3c
...
...
@@ -2669,43 +2669,43 @@
},
{
"ImportPath"
:
"k8s.io/gengo/args"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/examples/deepcopy-gen/generators"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/examples/defaulter-gen/generators"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/examples/import-boss/generators"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/examples/set-gen/generators"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/examples/set-gen/sets"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/generator"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/namer"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/parser"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/gengo/types"
,
"Rev"
:
"
6a1c24d7f08e671c244023ca9367d2dfbfaf57fc
"
"Rev"
:
"
8dd9c9e5e82c3cca687497c3cd7ac90e702c7c21
"
},
{
"ImportPath"
:
"k8s.io/heapster/metrics/api/v1/types"
,
...
...
vendor/k8s.io/gengo/examples/deepcopy-gen/generators/deepcopy.go
View file @
ae2d4b3c
...
...
@@ -124,14 +124,16 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
inputs
:=
sets
.
NewString
(
context
.
Inputs
...
)
packages
:=
generator
.
Packages
{}
header
:=
append
([]
byte
(
fmt
.
Sprintf
(
"// +build !%s
\n\n
"
,
arguments
.
GeneratedBuildTag
)),
boilerplate
...
)
header
=
append
(
header
,
[]
byte
(
`
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
header
=
append
(
header
,
[]
byte
(
`
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
`
)
...
)
`
)
...
)
boundingDirs
:=
[]
string
{}
if
customArgs
,
ok
:=
arguments
.
CustomArgs
.
(
*
CustomArgs
);
ok
{
if
customArgs
.
BoundingDirs
==
nil
{
customArgs
.
BoundingDirs
=
context
.
Inputs
}
for
i
:=
range
customArgs
.
BoundingDirs
{
// Strip any trailing slashes - they are not exactly "correct" but
// this is friendlier.
...
...
@@ -140,7 +142,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
for
i
:=
range
inputs
{
glog
.
V
(
5
)
.
Infof
(
"
c
onsidering pkg %q"
,
i
)
glog
.
V
(
5
)
.
Infof
(
"
C
onsidering pkg %q"
,
i
)
pkg
:=
context
.
Universe
[
i
]
if
pkg
==
nil
{
// If the input had no Go files, for example.
...
...
@@ -181,16 +183,16 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
if
pkgNeedsGeneration
{
glog
.
V
(
3
)
.
Infof
(
"Package %q needs generation"
,
i
)
packages
=
append
(
packages
,
&
generator
.
DefaultPackage
{
PackageName
:
strings
.
Split
(
filepath
.
Base
(
pkg
.
Path
),
"."
)[
0
],
PackagePath
:
pkg
.
Path
,
HeaderText
:
header
,
GeneratorFunc
:
func
(
c
*
generator
.
Context
)
(
generators
[]
generator
.
Generator
)
{
generators
=
[]
generator
.
Generator
{}
generators
=
append
(
generators
,
NewGenDeepCopy
(
arguments
.
OutputFileBaseName
,
pkg
.
Path
,
boundingDirs
,
(
ptagValue
==
tagValuePackage
),
ptagRegister
))
return
generators
return
[]
generator
.
Generator
{
NewGenDeepCopy
(
arguments
.
OutputFileBaseName
,
pkg
.
Path
,
boundingDirs
,
(
ptagValue
==
tagValuePackage
),
ptagRegister
),
}
},
FilterFunc
:
func
(
c
*
generator
.
Context
,
t
*
types
.
Type
)
bool
{
return
t
.
Name
.
Package
==
pkg
.
Path
...
...
@@ -202,7 +204,6 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
const
(
apiPackagePath
=
"k8s.io/kubernetes/pkg/api"
conversionPackagePath
=
"k8s.io/kubernetes/pkg/conversion"
runtimePackagePath
=
"k8s.io/kubernetes/pkg/runtime"
)
...
...
@@ -253,11 +254,16 @@ func (g *genDeepCopy) Filter(c *generator.Context, t *types.Type) bool {
enabled
=
true
}
}
copyable
:=
enabled
&&
copyableType
(
t
)
if
copyable
{
g
.
typesForInit
=
append
(
g
.
typesForInit
,
t
)
if
!
enabled
{
return
false
}
return
copyable
if
!
copyableType
(
t
)
{
glog
.
V
(
2
)
.
Infof
(
"Type %v is not copyable"
,
t
)
return
false
}
glog
.
V
(
4
)
.
Infof
(
"Type %v is copyable"
,
t
)
g
.
typesForInit
=
append
(
g
.
typesForInit
,
t
)
return
true
}
func
(
g
*
genDeepCopy
)
copyableAndInBounds
(
t
*
types
.
Type
)
bool
{
...
...
@@ -368,12 +374,20 @@ func (g *genDeepCopy) Init(c *generator.Context, w io.Writer) error {
cloner
:=
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
conversionPackagePath
,
Name
:
"Cloner"
})
g
.
imports
.
AddType
(
cloner
)
if
!
g
.
registerTypes
{
// TODO: We should come up with a solution to register all generated
// deep-copy functions. However, for now, to avoid import cycles
// we register only those explicitly requested.
return
nil
sw
:=
generator
.
NewSnippetWriter
(
w
,
c
,
"$"
,
"$"
)
sw
.
Do
(
"// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them.
\n
"
,
nil
)
sw
.
Do
(
"func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc{
\n
"
,
nil
)
sw
.
Do
(
"return []conversion.GeneratedDeepCopyFunc{
\n
"
,
nil
)
for
_
,
t
:=
range
g
.
typesForInit
{
args
:=
argsFromType
(
t
)
.
With
(
"typeof"
,
c
.
Universe
.
Package
(
"reflect"
)
.
Function
(
"TypeOf"
))
sw
.
Do
(
"{Fn: $.type|dcFnName$, InType: $.typeof|raw$(&$.type|raw${})},
\n
"
,
args
)
}
sw
.
Do
(
"}
\n
"
,
nil
)
sw
.
Do
(
"}
\n\n
"
,
nil
)
return
sw
.
Error
()
}
glog
.
V
(
5
)
.
Infof
(
"
r
egistering types in pkg %q"
,
g
.
targetPackage
)
glog
.
V
(
5
)
.
Infof
(
"
R
egistering types in pkg %q"
,
g
.
targetPackage
)
sw
:=
generator
.
NewSnippetWriter
(
w
,
c
,
"$"
,
"$"
)
sw
.
Do
(
"func init() {
\n
"
,
nil
)
...
...
@@ -410,12 +424,12 @@ func (g *genDeepCopy) needsGeneration(t *types.Type) bool {
}
if
g
.
allTypes
&&
tv
==
"false"
{
// The whole package is being generated, but this type has opted out.
glog
.
V
(
5
)
.
Infof
(
"
n
ot generating for type %v because type opted out"
,
t
)
glog
.
V
(
5
)
.
Infof
(
"
N
ot generating for type %v because type opted out"
,
t
)
return
false
}
if
!
g
.
allTypes
&&
tv
!=
"true"
{
// The whole package is NOT being generated, and this type has NOT opted in.
glog
.
V
(
5
)
.
Infof
(
"
n
ot generating for type %v because type did not opt in"
,
t
)
glog
.
V
(
5
)
.
Infof
(
"
N
ot generating for type %v because type did not opt in"
,
t
)
return
false
}
return
true
...
...
@@ -425,7 +439,7 @@ func (g *genDeepCopy) GenerateType(c *generator.Context, t *types.Type, w io.Wri
if
!
g
.
needsGeneration
(
t
)
{
return
nil
}
glog
.
V
(
5
)
.
Infof
(
"
generating
for type %v"
,
t
)
glog
.
V
(
5
)
.
Infof
(
"
Generating deepcopy function
for type %v"
,
t
)
sw
:=
generator
.
NewSnippetWriter
(
w
,
c
,
"$"
,
"$"
)
args
:=
argsFromType
(
t
)
.
...
...
@@ -535,12 +549,18 @@ func (g *genDeepCopy) doSlice(t *types.Type, sw *generator.SnippetWriter) {
}
func
(
g
*
genDeepCopy
)
doStruct
(
t
*
types
.
Type
,
sw
*
generator
.
SnippetWriter
)
{
if
len
(
t
.
Members
)
==
0
{
// at least do something with in/out to avoid "declared and not used" errors
sw
.
Do
(
"_ = in
\n
_ = out
\n
"
,
nil
)
if
hasDeepCopyMethod
(
t
)
{
sw
.
Do
(
"*out = in.DeepCopy()
\n
"
,
nil
)
return
}
// Simple copy covers a lot of cases.
sw
.
Do
(
"*out = *in
\n
"
,
nil
)
// Now fix-up fields as needed.
for
_
,
m
:=
range
t
.
Members
{
t
:=
m
.
Type
hasMethod
:=
hasDeepCopyMethod
(
t
)
if
t
.
Kind
==
types
.
Alias
{
copied
:=
*
t
.
Underlying
copied
.
Name
=
t
.
Name
...
...
@@ -548,28 +568,40 @@ func (g *genDeepCopy) doStruct(t *types.Type, sw *generator.SnippetWriter) {
}
args
:=
generator
.
Args
{
"type"
:
t
,
"kind"
:
t
.
Kind
,
"name"
:
m
.
Name
,
}
switch
t
.
Kind
{
case
types
.
Builtin
:
sw
.
Do
(
"out.$.name$ = in.$.name$
\n
"
,
args
)
if
hasMethod
{
sw
.
Do
(
"out.$.name$ = in.$.name$.DeepCopy()
\n
"
,
args
)
}
case
types
.
Map
,
types
.
Slice
,
types
.
Pointer
:
sw
.
Do
(
"if in.$.name$ != nil {
\n
"
,
args
)
sw
.
Do
(
"in, out := &in.$.name$, &out.$.name$
\n
"
,
args
)
g
.
generateFor
(
t
,
sw
)
sw
.
Do
(
"} else {
\n
"
,
nil
)
sw
.
Do
(
"out.$.name$ = nil
\n
"
,
args
)
sw
.
Do
(
"}
\n
"
,
nil
)
if
hasMethod
{
sw
.
Do
(
"if in.$.name$ != nil {
\n
"
,
args
)
sw
.
Do
(
"out.$.name$ = in.$.name$.DeepCopy()
\n
"
,
args
)
sw
.
Do
(
"}
\n
"
,
nil
)
}
else
{
// Fixup non-nil reference-sematic types.
sw
.
Do
(
"if in.$.name$ != nil {
\n
"
,
args
)
sw
.
Do
(
"in, out := &in.$.name$, &out.$.name$
\n
"
,
args
)
g
.
generateFor
(
t
,
sw
)
sw
.
Do
(
"}
\n
"
,
nil
)
}
case
types
.
Struct
:
if
has
DeepCopyMethod
(
t
)
{
if
has
Method
{
sw
.
Do
(
"out.$.name$ = in.$.name$.DeepCopy()
\n
"
,
args
)
}
else
if
t
.
IsAssignable
()
{
sw
.
Do
(
"out.$.name$ = in.$.name$
\n
"
,
args
)
// Nothing else needed.
}
else
if
g
.
copyableAndInBounds
(
t
)
{
// Not assignable but should have a deepcopy function.
// TODO: do a topological sort of packages and ensure that this works, else inline it.
sw
.
Do
(
"if err := $.type|dcFnName$(&in.$.name$, &out.$.name$, c); err != nil {
\n
"
,
args
)
sw
.
Do
(
"return err
\n
"
,
nil
)
sw
.
Do
(
"}
\n
"
,
nil
)
}
else
{
// Fall back on the slow-path and hope it works.
// TODO: don't depend on kubernetes code for this
sw
.
Do
(
"if newVal, err := c.DeepCopy(&in.$.name$); err != nil {
\n
"
,
args
)
sw
.
Do
(
"return err
\n
"
,
nil
)
sw
.
Do
(
"} else {
\n
"
,
nil
)
...
...
@@ -577,13 +609,22 @@ func (g *genDeepCopy) doStruct(t *types.Type, sw *generator.SnippetWriter) {
sw
.
Do
(
"}
\n
"
,
nil
)
}
default
:
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
)
sw
.
Do
(
"}
\n
"
,
nil
)
// Interfaces, Arrays, and other Kinds we don't understand.
sw
.
Do
(
"// in.$.name$ is kind '$.kind$'
\n
"
,
args
)
if
hasMethod
{
sw
.
Do
(
"if in.$.name$ != nil {
\n
"
,
args
)
sw
.
Do
(
"out.$.name$ = in.$.name$.DeepCopy()
\n
"
,
args
)
sw
.
Do
(
"}
\n
"
,
args
)
}
else
{
// TODO: don't depend on kubernetes code for this
sw
.
Do
(
"if in.$.name$ != nil {
\n
"
,
args
)
sw
.
Do
(
"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
)
sw
.
Do
(
"}
\n
"
,
nil
)
sw
.
Do
(
"}
\n
"
,
nil
)
}
}
}
}
...
...
vendor/k8s.io/gengo/examples/defaulter-gen/generators/defaulter.go
View file @
ae2d4b3c
...
...
@@ -323,7 +323,6 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
if
len
(
newDefaulters
)
==
0
{
glog
.
V
(
5
)
.
Infof
(
"no defaulters in package %s"
,
pkg
.
Name
)
continue
}
packages
=
append
(
packages
,
...
...
vendor/k8s.io/gengo/examples/set-gen/sets/byte.go
View file @
ae2d4b3c
/*
Copyright 201
6
The Kubernetes Authors.
Copyright 201
7
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.
...
...
vendor/k8s.io/gengo/examples/set-gen/sets/doc.go
View file @
ae2d4b3c
/*
Copyright 201
6
The Kubernetes Authors.
Copyright 201
7
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.
...
...
vendor/k8s.io/gengo/examples/set-gen/sets/empty.go
View file @
ae2d4b3c
/*
Copyright 201
6
The Kubernetes Authors.
Copyright 201
7
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.
...
...
vendor/k8s.io/gengo/examples/set-gen/sets/int.go
View file @
ae2d4b3c
/*
Copyright 201
6
The Kubernetes Authors.
Copyright 201
7
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.
...
...
vendor/k8s.io/gengo/examples/set-gen/sets/int64.go
View file @
ae2d4b3c
/*
Copyright 201
6
The Kubernetes Authors.
Copyright 201
7
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.
...
...
vendor/k8s.io/gengo/examples/set-gen/sets/string.go
View file @
ae2d4b3c
/*
Copyright 201
6
The Kubernetes Authors.
Copyright 201
7
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.
...
...
vendor/k8s.io/gengo/parser/parse.go
View file @
ae2d4b3c
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment