Merge pull request #20320 from caesarxuchao/add-discovery

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2016-02-01 14:35:27 -08:00
commit 2746b5e43d
7 changed files with 148 additions and 8 deletions

View File

@ -97,16 +97,22 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
} }
m := map[string]interface{}{ m := map[string]interface{}{
"allGroups": allGroups, "allGroups": allGroups,
"Config": c.Universe.Type(types.Name{Package: pkgUnversioned, Name: "Config"}), "Config": c.Universe.Type(types.Name{Package: pkgUnversioned, Name: "Config"}),
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgUnversioned, Name: "DefaultKubernetesUserAgent"}), "DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgUnversioned, Name: "DefaultKubernetesUserAgent"}),
"RESTClient": c.Universe.Type(types.Name{Package: pkgUnversioned, Name: "RESTClient"}), "RESTClient": c.Universe.Type(types.Name{Package: pkgUnversioned, Name: "RESTClient"}),
"DiscoveryInterface": c.Universe.Type(types.Name{Package: pkgUnversioned, Name: "DiscoveryInterface"}),
"DiscoveryClient": c.Universe.Type(types.Name{Package: pkgUnversioned, Name: "DiscoveryClient"}),
"NewDiscoveryClientForConfig": c.Universe.Function(types.Name{Package: pkgUnversioned, Name: "NewDiscoveryClientForConfig"}),
"NewDiscoveryClientForConfigOrDie": c.Universe.Function(types.Name{Package: pkgUnversioned, Name: "NewDiscoveryClientForConfigOrDie"}),
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: pkgUnversioned, Name: "NewDiscoveryClient"}),
} }
sw.Do(clientsetInterfaceTemplate, m) sw.Do(clientsetInterfaceTemplate, m)
sw.Do(clientsetTemplate, m) sw.Do(clientsetTemplate, m)
for _, g := range allGroups { for _, g := range allGroups {
sw.Do(clientsetInterfaceImplTemplate, g) sw.Do(clientsetInterfaceImplTemplate, g)
} }
sw.Do(getDiscoveryTemplate, m)
sw.Do(newClientsetForConfigTemplate, m) sw.Do(newClientsetForConfigTemplate, m)
sw.Do(newClientsetForConfigOrDieTemplate, m) sw.Do(newClientsetForConfigOrDieTemplate, m)
sw.Do(newClientsetForRESTClientTemplate, m) sw.Do(newClientsetForRESTClientTemplate, m)
@ -116,6 +122,7 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
var clientsetInterfaceTemplate = ` var clientsetInterfaceTemplate = `
type Interface interface { type Interface interface {
Discovery() $.DiscoveryInterface|raw$
$range .allGroups$$.Group$() $.PackageName$.$.Group$Interface $range .allGroups$$.Group$() $.PackageName$.$.Group$Interface
$end$ $end$
} }
@ -125,6 +132,7 @@ var clientsetTemplate = `
// Clientset contains the clients for groups. Each group has exactly one // Clientset contains the clients for groups. Each group has exactly one
// version included in a Clientset. // version included in a Clientset.
type Clientset struct { type Clientset struct {
*$.DiscoveryClient|raw$
$range .allGroups$*$.PackageName$.$.Group$Client $range .allGroups$*$.PackageName$.$.Group$Client
$end$ $end$
} }
@ -136,6 +144,12 @@ func (c *Clientset) $.Group$() $.PackageName$.$.Group$Interface {
return c.$.Group$Client return c.$.Group$Client
} }
` `
var getDiscoveryTemplate = `
// Discovery retrieves the DiscoveryClient
func (c *Clientset) Discovery() $.DiscoveryInterface|raw$ {
return c.DiscoveryClient
}
`
var newClientsetForConfigTemplate = ` var newClientsetForConfigTemplate = `
// NewForConfig creates a new Clientset for the given config. // NewForConfig creates a new Clientset for the given config.
@ -147,6 +161,10 @@ $range .allGroups$ clientset.$.Group$Client, err =$.PackageName$.NewForConfig
return nil, err return nil, err
} }
$end$ $end$
clientset.DiscoveryClient, err = $.NewDiscoveryClientForConfig|raw$(c)
if err!=nil {
return nil, err
}
return &clientset, nil return &clientset, nil
} }
` `
@ -158,6 +176,7 @@ func NewForConfigOrDie(c *$.Config|raw$) *Clientset {
var clientset Clientset var clientset Clientset
$range .allGroups$ clientset.$.Group$Client =$.PackageName$.NewForConfigOrDie(c) $range .allGroups$ clientset.$.Group$Client =$.PackageName$.NewForConfigOrDie(c)
$end$ $end$
clientset.DiscoveryClient = $.NewDiscoveryClientForConfigOrDie|raw$(c)
return &clientset return &clientset
} }
` `
@ -168,7 +187,7 @@ func New(c *$.RESTClient|raw$) *Clientset {
var clientset Clientset var clientset Clientset
$range .allGroups$ clientset.$.Group$Client =$.PackageName$.New(c) $range .allGroups$ clientset.$.Group$Client =$.PackageName$.New(c)
$end$ $end$
clientset.DiscoveryClient = $.NewDiscoveryClient|raw$(c)
return &clientset return &clientset
} }
` `

View File

@ -22,12 +22,14 @@ import (
) )
type Interface interface { type Interface interface {
Discovery() unversioned.DiscoveryInterface
Testgroup() testgroup_unversioned.TestgroupInterface Testgroup() testgroup_unversioned.TestgroupInterface
} }
// Clientset contains the clients for groups. Each group has exactly one // Clientset contains the clients for groups. Each group has exactly one
// version included in a Clientset. // version included in a Clientset.
type Clientset struct { type Clientset struct {
*unversioned.DiscoveryClient
*testgroup_unversioned.TestgroupClient *testgroup_unversioned.TestgroupClient
} }
@ -36,6 +38,11 @@ func (c *Clientset) Testgroup() testgroup_unversioned.TestgroupInterface {
return c.TestgroupClient return c.TestgroupClient
} }
// Discovery retrieves the DiscoveryClient
func (c *Clientset) Discovery() unversioned.DiscoveryInterface {
return c.DiscoveryClient
}
// NewForConfig creates a new Clientset for the given config. // NewForConfig creates a new Clientset for the given config.
func NewForConfig(c *unversioned.Config) (*Clientset, error) { func NewForConfig(c *unversioned.Config) (*Clientset, error) {
var clientset Clientset var clientset Clientset
@ -45,6 +52,10 @@ func NewForConfig(c *unversioned.Config) (*Clientset, error) {
return nil, err return nil, err
} }
clientset.DiscoveryClient, err = unversioned.NewDiscoveryClientForConfig(c)
if err != nil {
return nil, err
}
return &clientset, nil return &clientset, nil
} }
@ -54,6 +65,7 @@ func NewForConfigOrDie(c *unversioned.Config) *Clientset {
var clientset Clientset var clientset Clientset
clientset.TestgroupClient = testgroup_unversioned.NewForConfigOrDie(c) clientset.TestgroupClient = testgroup_unversioned.NewForConfigOrDie(c)
clientset.DiscoveryClient = unversioned.NewDiscoveryClientForConfigOrDie(c)
return &clientset return &clientset
} }
@ -62,5 +74,6 @@ func New(c *unversioned.RESTClient) *Clientset {
var clientset Clientset var clientset Clientset
clientset.TestgroupClient = testgroup_unversioned.New(c) clientset.TestgroupClient = testgroup_unversioned.New(c)
clientset.DiscoveryClient = unversioned.NewDiscoveryClient(c)
return &clientset return &clientset
} }

View File

@ -23,6 +23,7 @@ import (
) )
type Interface interface { type Interface interface {
Discovery() unversioned.DiscoveryInterface
Legacy() legacy_unversioned.LegacyInterface Legacy() legacy_unversioned.LegacyInterface
Extensions() extensions_unversioned.ExtensionsInterface Extensions() extensions_unversioned.ExtensionsInterface
} }
@ -30,6 +31,7 @@ type Interface interface {
// Clientset contains the clients for groups. Each group has exactly one // Clientset contains the clients for groups. Each group has exactly one
// version included in a Clientset. // version included in a Clientset.
type Clientset struct { type Clientset struct {
*unversioned.DiscoveryClient
*legacy_unversioned.LegacyClient *legacy_unversioned.LegacyClient
*extensions_unversioned.ExtensionsClient *extensions_unversioned.ExtensionsClient
} }
@ -44,6 +46,11 @@ func (c *Clientset) Extensions() extensions_unversioned.ExtensionsInterface {
return c.ExtensionsClient return c.ExtensionsClient
} }
// Discovery retrieves the DiscoveryClient
func (c *Clientset) Discovery() unversioned.DiscoveryInterface {
return c.DiscoveryClient
}
// NewForConfig creates a new Clientset for the given config. // NewForConfig creates a new Clientset for the given config.
func NewForConfig(c *unversioned.Config) (*Clientset, error) { func NewForConfig(c *unversioned.Config) (*Clientset, error) {
var clientset Clientset var clientset Clientset
@ -57,6 +64,10 @@ func NewForConfig(c *unversioned.Config) (*Clientset, error) {
return nil, err return nil, err
} }
clientset.DiscoveryClient, err = unversioned.NewDiscoveryClientForConfig(c)
if err != nil {
return nil, err
}
return &clientset, nil return &clientset, nil
} }
@ -67,6 +78,7 @@ func NewForConfigOrDie(c *unversioned.Config) *Clientset {
clientset.LegacyClient = legacy_unversioned.NewForConfigOrDie(c) clientset.LegacyClient = legacy_unversioned.NewForConfigOrDie(c)
clientset.ExtensionsClient = extensions_unversioned.NewForConfigOrDie(c) clientset.ExtensionsClient = extensions_unversioned.NewForConfigOrDie(c)
clientset.DiscoveryClient = unversioned.NewDiscoveryClientForConfigOrDie(c)
return &clientset return &clientset
} }
@ -76,5 +88,6 @@ func New(c *unversioned.RESTClient) *Clientset {
clientset.LegacyClient = legacy_unversioned.New(c) clientset.LegacyClient = legacy_unversioned.New(c)
clientset.ExtensionsClient = extensions_unversioned.New(c) clientset.ExtensionsClient = extensions_unversioned.New(c)
clientset.DiscoveryClient = unversioned.NewDiscoveryClient(c)
return &clientset return &clientset
} }

View File

@ -24,6 +24,7 @@ import (
extensions_unversioned_fake "k8s.io/kubernetes/pkg/client/typed/generated/extensions/unversioned/fake" extensions_unversioned_fake "k8s.io/kubernetes/pkg/client/typed/generated/extensions/unversioned/fake"
legacy_unversioned "k8s.io/kubernetes/pkg/client/typed/generated/legacy/unversioned" legacy_unversioned "k8s.io/kubernetes/pkg/client/typed/generated/legacy/unversioned"
legacy_unversioned_fake "k8s.io/kubernetes/pkg/client/typed/generated/legacy/unversioned/fake" legacy_unversioned_fake "k8s.io/kubernetes/pkg/client/typed/generated/legacy/unversioned/fake"
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/watch" "k8s.io/kubernetes/pkg/watch"
) )
@ -61,3 +62,7 @@ func (c *Clientset) Legacy() legacy_unversioned.LegacyInterface {
func (c *Clientset) Extensions() extensions_unversioned.ExtensionsInterface { func (c *Clientset) Extensions() extensions_unversioned.ExtensionsInterface {
return &extensions_unversioned_fake.FakeExtensions{&c.Fake} return &extensions_unversioned_fake.FakeExtensions{&c.Fake}
} }
func (c *Clientset) Discovery() unversioned.DiscoveryInterface {
return &FakeDiscovery{&c.Fake}
}

View File

@ -0,0 +1,74 @@
/*
Copyright 2016 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package fake
import (
"github.com/emicklei/go-restful/swagger"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/testing/core"
"k8s.io/kubernetes/pkg/version"
)
type FakeDiscovery struct {
*core.Fake
}
func (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*unversioned.APIResourceList, error) {
action := core.ActionImpl{
Verb: "get",
Resource: "resource",
}
c.Invokes(action, nil)
return c.Resources[groupVersion], nil
}
func (c *FakeDiscovery) ServerResources() (map[string]*unversioned.APIResourceList, error) {
action := core.ActionImpl{
Verb: "get",
Resource: "resource",
}
c.Invokes(action, nil)
return c.Resources, nil
}
func (c *FakeDiscovery) ServerGroups() (*unversioned.APIGroupList, error) {
return nil, nil
}
func (c *FakeDiscovery) ServerVersion() (*version.Info, error) {
action := core.ActionImpl{}
action.Verb = "get"
action.Resource = "version"
c.Invokes(action, nil)
versionInfo := version.Get()
return &versionInfo, nil
}
func (c *FakeDiscovery) SwaggerSchema(version unversioned.GroupVersion) (*swagger.ApiDeclaration, error) {
action := core.ActionImpl{}
action.Verb = "get"
if version == v1.SchemeGroupVersion {
action.Resource = "/swaggerapi/api/" + version.Version
} else {
action.Resource = "/swaggerapi/apis/" + version.Group + "/" + version.Version
}
c.Invokes(action, nil)
return &swagger.ApiDeclaration{}, nil
}

View File

@ -214,9 +214,9 @@ func setDiscoveryDefaults(config *Config) error {
return nil return nil
} }
// NewDiscoveryClient creates a new DiscoveryClient for the given config. This client // NewDiscoveryClientForConfig creates a new DiscoveryClient for the given config. This client
// can be used to discover supported resources in the API server. // can be used to discover supported resources in the API server.
func NewDiscoveryClient(c *Config) (*DiscoveryClient, error) { func NewDiscoveryClientForConfig(c *Config) (*DiscoveryClient, error) {
config := *c config := *c
if err := setDiscoveryDefaults(&config); err != nil { if err := setDiscoveryDefaults(&config); err != nil {
return nil, err return nil, err
@ -224,3 +224,19 @@ func NewDiscoveryClient(c *Config) (*DiscoveryClient, error) {
client, err := UnversionedRESTClientFor(&config) client, err := UnversionedRESTClientFor(&config)
return &DiscoveryClient{client}, err return &DiscoveryClient{client}, err
} }
// NewDiscoveryClientForConfig creates a new DiscoveryClient for the given config. If
// there is an error, it panics.
func NewDiscoveryClientForConfigOrDie(c *Config) *DiscoveryClient {
client, err := NewDiscoveryClientForConfig(c)
if err != nil {
panic(err)
}
return client
}
// New creates a new DiscoveryClient for the given RESTClient.
func NewDiscoveryClient(c *RESTClient) *DiscoveryClient {
return &DiscoveryClient{c}
}

View File

@ -150,7 +150,7 @@ func New(c *Config) (*Client, error) {
} }
discoveryConfig := *c discoveryConfig := *c
discoveryClient, err := NewDiscoveryClient(&discoveryConfig) discoveryClient, err := NewDiscoveryClientForConfig(&discoveryConfig)
if err != nil { if err != nil {
return nil, err return nil, err
} }