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
c5359fd0
Commit
c5359fd0
authored
Feb 08, 2017
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
split generated informers by internal and external
parent
06e2a082
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
87 deletions
+69
-87
factory.go
cmd/libs/go2idl/informer-gen/generators/factory.go
+18
-39
factoryinterface.go
cmd/libs/go2idl/informer-gen/generators/factoryinterface.go
+10
-14
informer.go
cmd/libs/go2idl/informer-gen/generators/informer.go
+3
-14
packages.go
cmd/libs/go2idl/informer-gen/generators/packages.go
+38
-20
No files found.
cmd/libs/go2idl/informer-gen/generators/factory.go
View file @
c5359fd0
...
@@ -34,8 +34,7 @@ type factoryGenerator struct {
...
@@ -34,8 +34,7 @@ type factoryGenerator struct {
outputPackage
string
outputPackage
string
imports
namer
.
ImportTracker
imports
namer
.
ImportTracker
groupVersions
map
[
string
]
clientgentypes
.
GroupVersions
groupVersions
map
[
string
]
clientgentypes
.
GroupVersions
internalClientSetPackage
string
clientSetPackage
string
versionedClientSetPackage
string
internalInterfacesPackage
string
internalInterfacesPackage
string
filtered
bool
filtered
bool
}
}
...
@@ -73,20 +72,18 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i
...
@@ -73,20 +72,18 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i
gvNewFuncs
[
groupName
]
=
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
packageForGroup
(
g
.
outputPackage
,
g
.
groupVersions
[
groupName
]
.
Group
),
Name
:
"New"
})
gvNewFuncs
[
groupName
]
=
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
packageForGroup
(
g
.
outputPackage
,
g
.
groupVersions
[
groupName
]
.
Group
),
Name
:
"New"
})
}
}
m
:=
map
[
string
]
interface
{}{
m
:=
map
[
string
]
interface
{}{
"cacheSharedIndexInformer"
:
c
.
Universe
.
Type
(
cacheSharedIndexInformer
),
"cacheSharedIndexInformer"
:
c
.
Universe
.
Type
(
cacheSharedIndexInformer
),
"groupVersions"
:
g
.
groupVersions
,
"groupVersions"
:
g
.
groupVersions
,
"gvInterfaces"
:
gvInterfaces
,
"gvInterfaces"
:
gvInterfaces
,
"gvNewFuncs"
:
gvNewFuncs
,
"gvNewFuncs"
:
gvNewFuncs
,
"interfacesNewInternalInformerFunc"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalInterfacesPackage
,
Name
:
"NewInternalInformerFunc"
}),
"interfacesNewInformerFunc"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalInterfacesPackage
,
Name
:
"NewInformerFunc"
}),
"interfacesNewVersionedInformerFunc"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalInterfacesPackage
,
Name
:
"NewVersionedInformerFunc"
}),
"informerFactoryInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalInterfacesPackage
,
Name
:
"SharedInformerFactory"
}),
"informerFactoryInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalInterfacesPackage
,
Name
:
"SharedInformerFactory"
}),
"clientSetInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
clientSetPackage
,
Name
:
"Interface"
}),
"internalClientSetInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalClientSetPackage
,
Name
:
"Interface"
}),
"reflectType"
:
c
.
Universe
.
Type
(
reflectType
),
"reflectType"
:
c
.
Universe
.
Type
(
reflectType
),
"runtimeObject"
:
c
.
Universe
.
Type
(
runtimeObject
),
"runtimeObject"
:
c
.
Universe
.
Type
(
runtimeObject
),
"schemaGroupVersionResource"
:
c
.
Universe
.
Type
(
schemaGroupVersionResource
),
"schemaGroupVersionResource"
:
c
.
Universe
.
Type
(
schemaGroupVersionResource
),
"syncMutex"
:
c
.
Universe
.
Type
(
syncMutex
),
"syncMutex"
:
c
.
Universe
.
Type
(
syncMutex
),
"timeDuration"
:
c
.
Universe
.
Type
(
timeDuration
),
"timeDuration"
:
c
.
Universe
.
Type
(
timeDuration
),
"versionedClientSetInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
versionedClientSetPackage
,
Name
:
"Interface"
}),
}
}
sw
.
Do
(
sharedInformerFactoryStruct
,
m
)
sw
.
Do
(
sharedInformerFactoryStruct
,
m
)
...
@@ -97,8 +94,7 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i
...
@@ -97,8 +94,7 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i
var
sharedInformerFactoryStruct
=
`
var
sharedInformerFactoryStruct
=
`
type sharedInformerFactory struct {
type sharedInformerFactory struct {
internalClient {{.internalClientSetInterface|raw}}
client {{.clientSetInterface|raw}}
versionedClient {{.versionedClientSetInterface|raw}}
lock {{.syncMutex|raw}}
lock {{.syncMutex|raw}}
defaultResync {{.timeDuration|raw}}
defaultResync {{.timeDuration|raw}}
...
@@ -109,10 +105,9 @@ type sharedInformerFactory struct {
...
@@ -109,10 +105,9 @@ type sharedInformerFactory struct {
}
}
// NewSharedInformerFactory constructs a new instance of sharedInformerFactory
// NewSharedInformerFactory constructs a new instance of sharedInformerFactory
func NewSharedInformerFactory(
internalClient {{.internalClientSetInterface|raw}}, versionedClient {{.versionedC
lientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}) SharedInformerFactory {
func NewSharedInformerFactory(
client {{.c
lientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}) SharedInformerFactory {
return &sharedInformerFactory{
return &sharedInformerFactory{
internalClient: internalClient,
client: client,
versionedClient: versionedClient,
defaultResync: defaultResync,
defaultResync: defaultResync,
informers: make(map[{{.reflectType|raw}}]{{.cacheSharedIndexInformer|raw}}),
informers: make(map[{{.reflectType|raw}}]{{.cacheSharedIndexInformer|raw}}),
startedInformers: make(map[{{.reflectType|raw}}]bool),
startedInformers: make(map[{{.reflectType|raw}}]bool),
...
@@ -134,7 +129,7 @@ func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {
...
@@ -134,7 +129,7 @@ func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {
// InternalInformerFor returns the SharedIndexInformer for obj using an internal
// InternalInformerFor returns the SharedIndexInformer for obj using an internal
// client.
// client.
func (f *sharedInformerFactory) In
ternalInformerFor(obj {{.runtimeObject|raw}}, newFunc {{.interfacesNewInternal
InformerFunc|raw}}) {{.cacheSharedIndexInformer|raw}} {
func (f *sharedInformerFactory) In
formerFor(obj {{.runtimeObject|raw}}, newFunc {{.interfacesNew
InformerFunc|raw}}) {{.cacheSharedIndexInformer|raw}} {
f.lock.Lock()
f.lock.Lock()
defer f.lock.Unlock()
defer f.lock.Unlock()
...
@@ -143,28 +138,12 @@ func (f *sharedInformerFactory) InternalInformerFor(obj {{.runtimeObject|raw}},
...
@@ -143,28 +138,12 @@ func (f *sharedInformerFactory) InternalInformerFor(obj {{.runtimeObject|raw}},
if exists {
if exists {
return informer
return informer
}
}
informer = newFunc(f.
internalC
lient, f.defaultResync)
informer = newFunc(f.
c
lient, f.defaultResync)
f.informers[informerType] = informer
f.informers[informerType] = informer
return informer
return informer
}
}
// VersionedInformerFor returns the SharedIndexInformer for obj using a
// versioned client.
func (f *sharedInformerFactory) VersionedInformerFor(obj {{.runtimeObject|raw}}, newFunc {{.interfacesNewVersionedInformerFunc|raw}}) {{.cacheSharedIndexInformer|raw}} {
f.lock.Lock()
defer f.lock.Unlock()
informerType := reflect.TypeOf(obj)
informer, exists := f.informers[informerType]
if exists {
return informer
}
informer = newFunc(f.versionedClient, f.defaultResync)
f.informers[informerType] = informer
return informer
}
`
`
var
sharedInformerFactoryInterface
=
`
var
sharedInformerFactoryInterface
=
`
...
...
cmd/libs/go2idl/informer-gen/generators/factoryinterface.go
View file @
c5359fd0
...
@@ -30,11 +30,10 @@ import (
...
@@ -30,11 +30,10 @@ import (
// informer registration
// informer registration
type
factoryInterfaceGenerator
struct
{
type
factoryInterfaceGenerator
struct
{
generator
.
DefaultGen
generator
.
DefaultGen
outputPackage
string
outputPackage
string
imports
namer
.
ImportTracker
imports
namer
.
ImportTracker
internalClientSetPackage
string
clientSetPackage
string
versionedClientSetPackage
string
filtered
bool
filtered
bool
}
}
var
_
generator
.
Generator
=
&
factoryInterfaceGenerator
{}
var
_
generator
.
Generator
=
&
factoryInterfaceGenerator
{}
...
@@ -64,11 +63,10 @@ func (g *factoryInterfaceGenerator) GenerateType(c *generator.Context, t *types.
...
@@ -64,11 +63,10 @@ func (g *factoryInterfaceGenerator) GenerateType(c *generator.Context, t *types.
glog
.
V
(
5
)
.
Infof
(
"processing type %v"
,
t
)
glog
.
V
(
5
)
.
Infof
(
"processing type %v"
,
t
)
m
:=
map
[
string
]
interface
{}{
m
:=
map
[
string
]
interface
{}{
"cacheSharedIndexInformer"
:
c
.
Universe
.
Type
(
cacheSharedIndexInformer
),
"cacheSharedIndexInformer"
:
c
.
Universe
.
Type
(
cacheSharedIndexInformer
),
"internalClientSetInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalClientSetPackage
,
Name
:
"Interface"
}),
"clientSetPackage"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
clientSetPackage
,
Name
:
"Interface"
}),
"runtimeObject"
:
c
.
Universe
.
Type
(
runtimeObject
),
"runtimeObject"
:
c
.
Universe
.
Type
(
runtimeObject
),
"timeDuration"
:
c
.
Universe
.
Type
(
timeDuration
),
"timeDuration"
:
c
.
Universe
.
Type
(
timeDuration
),
"versionedClientSetInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
versionedClientSetPackage
,
Name
:
"Interface"
}),
}
}
sw
.
Do
(
externalSharedInformerFactoryInterface
,
m
)
sw
.
Do
(
externalSharedInformerFactoryInterface
,
m
)
...
@@ -77,13 +75,11 @@ func (g *factoryInterfaceGenerator) GenerateType(c *generator.Context, t *types.
...
@@ -77,13 +75,11 @@ func (g *factoryInterfaceGenerator) GenerateType(c *generator.Context, t *types.
}
}
var
externalSharedInformerFactoryInterface
=
`
var
externalSharedInformerFactoryInterface
=
`
type NewInternalInformerFunc func({{.internalClientSetInterface|raw}}, {{.timeDuration|raw}}) cache.SharedIndexInformer
type NewInformerFunc func({{.clientSetPackage|raw}}, {{.timeDuration|raw}}) cache.SharedIndexInformer
type NewVersionedInformerFunc func({{.versionedClientSetInterface|raw}}, {{.timeDuration|raw}}) cache.SharedIndexInformer
// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
type SharedInformerFactory interface {
type SharedInformerFactory interface {
Start(stopCh <-chan struct{})
Start(stopCh <-chan struct{})
InternalInformerFor(obj {{.runtimeObject|raw}}, newFunc NewInternalInformerFunc) {{.cacheSharedIndexInformer|raw}}
InformerFor(obj {{.runtimeObject|raw}}, newFunc NewInformerFunc) {{.cacheSharedIndexInformer|raw}}
VersionedInformerFor(obj {{.runtimeObject|raw}}, newFunc NewVersionedInformerFunc) {{.cacheSharedIndexInformer|raw}}
}
}
`
`
cmd/libs/go2idl/informer-gen/generators/informer.go
View file @
c5359fd0
...
@@ -37,8 +37,7 @@ type informerGenerator struct {
...
@@ -37,8 +37,7 @@ type informerGenerator struct {
groupVersion
clientgentypes
.
GroupVersion
groupVersion
clientgentypes
.
GroupVersion
typeToGenerate
*
types
.
Type
typeToGenerate
*
types
.
Type
imports
namer
.
ImportTracker
imports
namer
.
ImportTracker
versionedClientSetPackage
string
clientSetPackage
string
internalClientSetPackage
string
listersPackage
string
listersPackage
string
internalInterfacesPackage
string
internalInterfacesPackage
string
}
}
...
@@ -67,18 +66,8 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w
...
@@ -67,18 +66,8 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w
//listerPackage := "k8s.io/kubernetes/pkg/client/listers/" + g.groupVersion.Group.NonEmpty() + "/" + strings.ToLower(g.groupVersion.Version.NonEmpty())
//listerPackage := "k8s.io/kubernetes/pkg/client/listers/" + g.groupVersion.Group.NonEmpty() + "/" + strings.ToLower(g.groupVersion.Version.NonEmpty())
listerPackage
:=
fmt
.
Sprintf
(
"%s/%s/%s"
,
g
.
listersPackage
,
g
.
groupVersion
.
Group
.
NonEmpty
(),
strings
.
ToLower
(
g
.
groupVersion
.
Version
.
NonEmpty
()))
listerPackage
:=
fmt
.
Sprintf
(
"%s/%s/%s"
,
g
.
listersPackage
,
g
.
groupVersion
.
Group
.
NonEmpty
(),
strings
.
ToLower
(
g
.
groupVersion
.
Version
.
NonEmpty
()))
clientSetInterface
:=
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
clientSetPackage
,
Name
:
"Interface"
})
var
(
informerFor
:=
"InformerFor"
clientSetInterface
*
types
.
Type
informerFor
string
)
if
len
(
g
.
groupVersion
.
Version
)
==
0
{
clientSetInterface
=
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
internalClientSetPackage
,
Name
:
"Interface"
})
informerFor
=
"InternalInformerFor"
}
else
{
clientSetInterface
=
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
g
.
versionedClientSetPackage
,
Name
:
"Interface"
})
informerFor
=
"VersionedInformerFor"
}
m
:=
map
[
string
]
interface
{}{
m
:=
map
[
string
]
interface
{}{
"apiScheme"
:
c
.
Universe
.
Type
(
apiScheme
),
"apiScheme"
:
c
.
Universe
.
Type
(
apiScheme
),
...
...
cmd/libs/go2idl/informer-gen/generators/packages.go
View file @
c5359fd0
...
@@ -113,10 +113,14 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
...
@@ -113,10 +113,14 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
glog
.
Fatalf
(
"Wrong CustomArgs type: %T"
,
arguments
.
CustomArgs
)
glog
.
Fatalf
(
"Wrong CustomArgs type: %T"
,
arguments
.
CustomArgs
)
}
}
internalVersionPackagePath
:=
filepath
.
Join
(
arguments
.
OutputPackagePath
,
"internalversion"
)
externalVersionPackagePath
:=
filepath
.
Join
(
arguments
.
OutputPackagePath
,
"externalversions"
)
var
packageList
generator
.
Packages
var
packageList
generator
.
Packages
typesForGroupVersion
:=
make
(
map
[
clientgentypes
.
GroupVersion
][]
*
types
.
Type
)
typesForGroupVersion
:=
make
(
map
[
clientgentypes
.
GroupVersion
][]
*
types
.
Type
)
groupVersions
:=
make
(
map
[
string
]
clientgentypes
.
GroupVersions
)
externalGroupVersions
:=
make
(
map
[
string
]
clientgentypes
.
GroupVersions
)
internalGroupVersions
:=
make
(
map
[
string
]
clientgentypes
.
GroupVersions
)
for
_
,
inputDir
:=
range
arguments
.
InputDirs
{
for
_
,
inputDir
:=
range
arguments
.
InputDirs
{
p
:=
context
.
Universe
.
Package
(
inputDir
)
p
:=
context
.
Universe
.
Package
(
inputDir
)
...
@@ -130,6 +134,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
...
@@ -130,6 +134,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
}
var
gv
clientgentypes
.
GroupVersion
var
gv
clientgentypes
.
GroupVersion
var
targetGroupVersions
map
[
string
]
clientgentypes
.
GroupVersions
if
internal
{
if
internal
{
lastSlash
:=
strings
.
LastIndex
(
p
.
Path
,
"/"
)
lastSlash
:=
strings
.
LastIndex
(
p
.
Path
,
"/"
)
...
@@ -137,10 +142,12 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
...
@@ -137,10 +142,12 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
glog
.
Fatalf
(
"error constructing internal group version for package %q"
,
p
.
Path
)
glog
.
Fatalf
(
"error constructing internal group version for package %q"
,
p
.
Path
)
}
}
gv
.
Group
=
clientgentypes
.
Group
(
p
.
Path
[
lastSlash
+
1
:
])
gv
.
Group
=
clientgentypes
.
Group
(
p
.
Path
[
lastSlash
+
1
:
])
targetGroupVersions
=
internalGroupVersions
}
else
{
}
else
{
parts
:=
strings
.
Split
(
p
.
Path
,
"/"
)
parts
:=
strings
.
Split
(
p
.
Path
,
"/"
)
gv
.
Group
=
clientgentypes
.
Group
(
parts
[
len
(
parts
)
-
2
])
gv
.
Group
=
clientgentypes
.
Group
(
parts
[
len
(
parts
)
-
2
])
gv
.
Version
=
clientgentypes
.
Version
(
parts
[
len
(
parts
)
-
1
])
gv
.
Version
=
clientgentypes
.
Version
(
parts
[
len
(
parts
)
-
1
])
targetGroupVersions
=
externalGroupVersions
}
}
var
typesToGenerate
[]
*
types
.
Type
var
typesToGenerate
[]
*
types
.
Type
...
@@ -166,31 +173,45 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
...
@@ -166,31 +173,45 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
}
icGroupName
:=
namer
.
IC
(
gv
.
Group
.
NonEmpty
())
icGroupName
:=
namer
.
IC
(
gv
.
Group
.
NonEmpty
())
groupVersionsEntry
,
ok
:=
g
roupVersions
[
icGroupName
]
groupVersionsEntry
,
ok
:=
targetG
roupVersions
[
icGroupName
]
if
!
ok
{
if
!
ok
{
groupVersionsEntry
=
clientgentypes
.
GroupVersions
{
groupVersionsEntry
=
clientgentypes
.
GroupVersions
{
Group
:
gv
.
Group
,
Group
:
gv
.
Group
,
}
}
}
}
groupVersionsEntry
.
Versions
=
append
(
groupVersionsEntry
.
Versions
,
gv
.
Version
)
groupVersionsEntry
.
Versions
=
append
(
groupVersionsEntry
.
Versions
,
gv
.
Version
)
g
roupVersions
[
icGroupName
]
=
groupVersionsEntry
targetG
roupVersions
[
icGroupName
]
=
groupVersionsEntry
orderer
:=
namer
.
Orderer
{
Namer
:
namer
.
NewPrivateNamer
(
0
)}
orderer
:=
namer
.
Orderer
{
Namer
:
namer
.
NewPrivateNamer
(
0
)}
typesToGenerate
=
orderer
.
OrderTypes
(
typesToGenerate
)
typesToGenerate
=
orderer
.
OrderTypes
(
typesToGenerate
)
packageList
=
append
(
packageList
,
versionPackage
(
arguments
.
OutputPackagePath
,
gv
,
boilerplate
,
typesToGenerate
,
customArgs
.
InternalClientSetPackage
,
customArgs
.
VersionedClientSetPackage
,
customArgs
.
ListersPackage
))
if
internal
{
packageList
=
append
(
packageList
,
versionPackage
(
internalVersionPackagePath
,
gv
,
boilerplate
,
typesToGenerate
,
customArgs
.
InternalClientSetPackage
,
customArgs
.
ListersPackage
))
}
else
{
packageList
=
append
(
packageList
,
versionPackage
(
externalVersionPackagePath
,
gv
,
boilerplate
,
typesToGenerate
,
customArgs
.
VersionedClientSetPackage
,
customArgs
.
ListersPackage
))
}
}
packageList
=
append
(
packageList
,
factoryInterfacePackage
(
externalVersionPackagePath
,
boilerplate
,
customArgs
.
VersionedClientSetPackage
,
typesForGroupVersion
))
packageList
=
append
(
packageList
,
factoryPackage
(
externalVersionPackagePath
,
boilerplate
,
externalGroupVersions
,
customArgs
.
VersionedClientSetPackage
,
typesForGroupVersion
))
for
_
,
groupVersionsEntry
:=
range
externalGroupVersions
{
packageList
=
append
(
packageList
,
groupPackage
(
externalVersionPackagePath
,
groupVersionsEntry
,
boilerplate
))
}
}
packageList
=
append
(
packageList
,
factoryInterfacePackage
(
arguments
.
OutputPackagePath
,
boilerplate
,
customArgs
.
InternalClientSetPackage
,
customArgs
.
Versioned
ClientSetPackage
,
typesForGroupVersion
))
packageList
=
append
(
packageList
,
factoryInterfacePackage
(
internalVersionPackagePath
,
boilerplate
,
customArgs
.
Internal
ClientSetPackage
,
typesForGroupVersion
))
packageList
=
append
(
packageList
,
factoryPackage
(
arguments
.
OutputPackagePath
,
boilerplate
,
groupVersions
,
customArgs
.
InternalClientSetPackage
,
customArgs
.
Versioned
ClientSetPackage
,
typesForGroupVersion
))
packageList
=
append
(
packageList
,
factoryPackage
(
internalVersionPackagePath
,
boilerplate
,
internalGroupVersions
,
customArgs
.
Internal
ClientSetPackage
,
typesForGroupVersion
))
for
_
,
groupVersionsEntry
:=
range
g
roupVersions
{
for
_
,
groupVersionsEntry
:=
range
internalG
roupVersions
{
packageList
=
append
(
packageList
,
groupPackage
(
arguments
.
Output
PackagePath
,
groupVersionsEntry
,
boilerplate
))
packageList
=
append
(
packageList
,
groupPackage
(
internalVersion
PackagePath
,
groupVersionsEntry
,
boilerplate
))
}
}
return
packageList
return
packageList
}
}
func
factoryPackage
(
basePackage
string
,
boilerplate
[]
byte
,
groupVersions
map
[
string
]
clientgentypes
.
GroupVersions
,
internalClientSetPackage
,
versionedClientSetPackage
string
,
typesForGroupVersion
map
[
clientgentypes
.
GroupVersion
][]
*
types
.
Type
)
generator
.
Package
{
func
isInternalVersion
(
gv
clientgentypes
.
GroupVersion
)
bool
{
return
len
(
gv
.
Version
)
==
0
}
func
factoryPackage
(
basePackage
string
,
boilerplate
[]
byte
,
groupVersions
map
[
string
]
clientgentypes
.
GroupVersions
,
clientSetPackage
string
,
typesForGroupVersion
map
[
clientgentypes
.
GroupVersion
][]
*
types
.
Type
)
generator
.
Package
{
return
&
generator
.
DefaultPackage
{
return
&
generator
.
DefaultPackage
{
PackageName
:
filepath
.
Base
(
basePackage
),
PackageName
:
filepath
.
Base
(
basePackage
),
PackagePath
:
basePackage
,
PackagePath
:
basePackage
,
...
@@ -203,8 +224,7 @@ func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[st
...
@@ -203,8 +224,7 @@ func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[st
outputPackage
:
basePackage
,
outputPackage
:
basePackage
,
imports
:
generator
.
NewImportTracker
(),
imports
:
generator
.
NewImportTracker
(),
groupVersions
:
groupVersions
,
groupVersions
:
groupVersions
,
internalClientSetPackage
:
internalClientSetPackage
,
clientSetPackage
:
clientSetPackage
,
versionedClientSetPackage
:
versionedClientSetPackage
,
internalInterfacesPackage
:
packageForInternalInterfaces
(
basePackage
),
internalInterfacesPackage
:
packageForInternalInterfaces
(
basePackage
),
})
})
...
@@ -223,7 +243,7 @@ func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[st
...
@@ -223,7 +243,7 @@ func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[st
}
}
}
}
func
factoryInterfacePackage
(
basePackage
string
,
boilerplate
[]
byte
,
internalClientSetPackage
,
versionedC
lientSetPackage
string
,
typesForGroupVersion
map
[
clientgentypes
.
GroupVersion
][]
*
types
.
Type
)
generator
.
Package
{
func
factoryInterfacePackage
(
basePackage
string
,
boilerplate
[]
byte
,
c
lientSetPackage
string
,
typesForGroupVersion
map
[
clientgentypes
.
GroupVersion
][]
*
types
.
Type
)
generator
.
Package
{
packagePath
:=
packageForInternalInterfaces
(
basePackage
)
packagePath
:=
packageForInternalInterfaces
(
basePackage
)
return
&
generator
.
DefaultPackage
{
return
&
generator
.
DefaultPackage
{
...
@@ -233,12 +253,11 @@ func factoryInterfacePackage(basePackage string, boilerplate []byte, internalCli
...
@@ -233,12 +253,11 @@ func factoryInterfacePackage(basePackage string, boilerplate []byte, internalCli
GeneratorFunc
:
func
(
c
*
generator
.
Context
)
(
generators
[]
generator
.
Generator
)
{
GeneratorFunc
:
func
(
c
*
generator
.
Context
)
(
generators
[]
generator
.
Generator
)
{
generators
=
append
(
generators
,
&
factoryInterfaceGenerator
{
generators
=
append
(
generators
,
&
factoryInterfaceGenerator
{
DefaultGen
:
generator
.
DefaultGen
{
DefaultGen
:
generator
.
DefaultGen
{
OptionalName
:
"
internal
_interfaces"
,
OptionalName
:
"
factory
_interfaces"
,
},
},
outputPackage
:
packagePath
,
outputPackage
:
packagePath
,
imports
:
generator
.
NewImportTracker
(),
imports
:
generator
.
NewImportTracker
(),
internalClientSetPackage
:
internalClientSetPackage
,
clientSetPackage
:
clientSetPackage
,
versionedClientSetPackage
:
versionedClientSetPackage
,
})
})
return
generators
return
generators
...
@@ -272,7 +291,7 @@ func groupPackage(basePackage string, groupVersions clientgentypes.GroupVersions
...
@@ -272,7 +291,7 @@ func groupPackage(basePackage string, groupVersions clientgentypes.GroupVersions
}
}
}
}
func
versionPackage
(
basePackage
string
,
gv
clientgentypes
.
GroupVersion
,
boilerplate
[]
byte
,
typesToGenerate
[]
*
types
.
Type
,
internalClientSetPackage
,
versionedC
lientSetPackage
,
listersPackage
string
)
generator
.
Package
{
func
versionPackage
(
basePackage
string
,
gv
clientgentypes
.
GroupVersion
,
boilerplate
[]
byte
,
typesToGenerate
[]
*
types
.
Type
,
c
lientSetPackage
,
listersPackage
string
)
generator
.
Package
{
packagePath
:=
filepath
.
Join
(
basePackage
,
strings
.
ToLower
(
gv
.
Group
.
NonEmpty
()),
strings
.
ToLower
(
gv
.
Version
.
NonEmpty
()))
packagePath
:=
filepath
.
Join
(
basePackage
,
strings
.
ToLower
(
gv
.
Group
.
NonEmpty
()),
strings
.
ToLower
(
gv
.
Version
.
NonEmpty
()))
return
&
generator
.
DefaultPackage
{
return
&
generator
.
DefaultPackage
{
...
@@ -299,8 +318,7 @@ func versionPackage(basePackage string, gv clientgentypes.GroupVersion, boilerpl
...
@@ -299,8 +318,7 @@ func versionPackage(basePackage string, gv clientgentypes.GroupVersion, boilerpl
groupVersion
:
gv
,
groupVersion
:
gv
,
typeToGenerate
:
t
,
typeToGenerate
:
t
,
imports
:
generator
.
NewImportTracker
(),
imports
:
generator
.
NewImportTracker
(),
internalClientSetPackage
:
internalClientSetPackage
,
clientSetPackage
:
clientSetPackage
,
versionedClientSetPackage
:
versionedClientSetPackage
,
listersPackage
:
listersPackage
,
listersPackage
:
listersPackage
,
internalInterfacesPackage
:
packageForInternalInterfaces
(
basePackage
),
internalInterfacesPackage
:
packageForInternalInterfaces
(
basePackage
),
})
})
...
...
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