update factory interface to overlap with lower RESTClientGetter

This commit is contained in:
David Eads 2018-05-16 10:54:42 -04:00
parent a481f4bbe8
commit 0db40da909
27 changed files with 50 additions and 52 deletions

View File

@ -113,7 +113,7 @@ func (o *ApiResourcesOptions) RunApiResources(cmd *cobra.Command, f cmdutil.Fact
w := printers.GetNewTabWriter(o.Out) w := printers.GetNewTabWriter(o.Out)
defer w.Flush() defer w.Flush()
discoveryclient, err := f.DiscoveryClient() discoveryclient, err := f.ToDiscoveryClient()
if err != nil { if err != nil {
return err return err
} }

View File

@ -65,7 +65,7 @@ func NewCmdApiVersions(f cmdutil.Factory, ioStreams genericclioptions.IOStreams)
func (o *ApiVersionsOptions) Complete(f cmdutil.Factory) error { func (o *ApiVersionsOptions) Complete(f cmdutil.Factory) error {
var err error var err error
o.discoveryClient, err = f.DiscoveryClient() o.discoveryClient, err = f.ToDiscoveryClient()
if err != nil { if err != nil {
return err return err
} }

View File

@ -219,7 +219,7 @@ func (o *ApplyOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
o.ClientSetFunc = f.ClientSet o.ClientSetFunc = f.ClientSet
o.Validator, err = f.Validator(cmdutil.GetFlagBool(cmd, "validate")) o.Validator, err = f.Validator(cmdutil.GetFlagBool(cmd, "validate"))
o.Builder = f.NewBuilder() o.Builder = f.NewBuilder()
o.Mapper, err = f.RESTMapper() o.Mapper, err = f.ToRESTMapper()
if err != nil { if err != nil {
return err return err
} }

View File

@ -177,7 +177,7 @@ func (p *AttachOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, argsIn [
p.SuggestedCmdUsage = fmt.Sprintf("Use '%s describe pod/%s -n %s' to see all of the containers in this pod.", fullCmdName, p.PodName, p.Namespace) p.SuggestedCmdUsage = fmt.Sprintf("Use '%s describe pod/%s -n %s' to see all of the containers in this pod.", fullCmdName, p.PodName, p.Namespace)
} }
config, err := f.ClientConfig() config, err := f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -125,7 +125,7 @@ func (o *CanIOptions) Complete(f cmdutil.Factory, args []string) error {
break break
} }
resourceTokens := strings.SplitN(args[1], "/", 2) resourceTokens := strings.SplitN(args[1], "/", 2)
restMapper, err := f.RESTMapper() restMapper, err := f.ToRESTMapper()
if err != nil { if err != nil {
return err return err
} }

View File

@ -76,7 +76,7 @@ func NewCmdClusterInfo(f cmdutil.Factory, ioStreams genericclioptions.IOStreams)
func (o *ClusterInfoOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error { func (o *ClusterInfoOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
var err error var err error
o.Client, err = f.ClientConfig() o.Client, err = f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -154,7 +154,7 @@ func (o *CopyOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
return err return err
} }
o.ClientConfig, err = f.ClientConfig() o.ClientConfig, err = f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -395,7 +395,7 @@ func (o *CreateSubcommandOptions) Complete(f cmdutil.Factory, cmd *cobra.Command
return err return err
} }
o.Mapper, err = f.RESTMapper() o.Mapper, err = f.ToRESTMapper()
if err != nil { if err != nil {
return err return err
} }

View File

@ -438,7 +438,7 @@ func TestClusterRoleValidate(t *testing.T) {
for name, test := range tests { for name, test := range tests {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
var err error var err error
test.clusterRoleOptions.Mapper, err = tf.RESTMapper() test.clusterRoleOptions.Mapper, err = tf.ToRESTMapper()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@ -206,7 +206,7 @@ func (o *CreateRoleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
o.ResourceNames = resourceNames o.ResourceNames = resourceNames
// Complete other options for Run. // Complete other options for Run.
o.Mapper, err = f.RESTMapper() o.Mapper, err = f.ToRESTMapper()
if err != nil { if err != nil {
return err return err
} }

View File

@ -340,7 +340,7 @@ func TestValidate(t *testing.T) {
for name, test := range tests { for name, test := range tests {
var err error var err error
test.roleOptions.Mapper, err = tf.RESTMapper() test.roleOptions.Mapper, err = tf.ToRESTMapper()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@ -189,7 +189,7 @@ func (o *DeleteOptions) Complete(f cmdutil.Factory, args []string, cmd *cobra.Co
} }
o.Result = r o.Result = r
o.Mapper, err = f.RESTMapper() o.Mapper, err = f.ToRESTMapper()
if err != nil { if err != nil {
return err return err
} }

View File

@ -180,7 +180,7 @@ func (p *ExecOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, argsIn []s
p.SuggestedCmdUsage = fmt.Sprintf("Use '%s describe pod/%s -n %s' to see all of the containers in this pod.", p.FullCmdName, p.PodName, p.Namespace) p.SuggestedCmdUsage = fmt.Sprintf("Use '%s describe pod/%s -n %s' to see all of the containers in this pod.", p.FullCmdName, p.PodName, p.Namespace)
} }
config, err := f.ClientConfig() config, err := f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -92,7 +92,7 @@ func NewCmdExplain(parent string, f cmdutil.Factory, streams genericclioptions.I
func (o *ExplainOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error { func (o *ExplainOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
var err error var err error
o.Mapper, err = f.RESTMapper() o.Mapper, err = f.ToRESTMapper()
if err != nil { if err != nil {
return err return err
} }

View File

@ -195,7 +195,7 @@ func (o *ExposeServiceOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) e
o.MapBasedSelectorForObject = f.MapBasedSelectorForObject o.MapBasedSelectorForObject = f.MapBasedSelectorForObject
o.PortsForObject = f.PortsForObject o.PortsForObject = f.PortsForObject
o.ProtocolsForObject = f.ProtocolsForObject o.ProtocolsForObject = f.ProtocolsForObject
o.Mapper, err = f.RESTMapper() o.Mapper, err = f.ToRESTMapper()
if err != nil { if err != nil {
return err return err
} }

View File

@ -220,7 +220,7 @@ func (o *PortForwardOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, arg
} }
o.PodClient = clientset.Core() o.PodClient = clientset.Core()
o.Config, err = f.ClientConfig() o.Config, err = f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -105,7 +105,7 @@ func RunProxy(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error {
return errors.New("Don't specify both --unix-socket and --port") return errors.New("Don't specify both --unix-socket and --port")
} }
clientConfig, err := f.ClientConfig() clientConfig, err := f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -374,7 +374,7 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
Attach: &DefaultRemoteAttach{}, Attach: &DefaultRemoteAttach{},
} }
config, err := f.ClientConfig() config, err := f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }
@ -638,7 +638,7 @@ func (o *RunOptions) createGeneratedObject(f cmdutil.Factory, cmd *cobra.Command
return nil, err return nil, err
} }
mapper, err := f.RESTMapper() mapper, err := f.ToRESTMapper()
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -287,7 +287,7 @@ func (f *TestFactory) Cleanup() {
os.Remove(f.tempConfigFile.Name()) os.Remove(f.tempConfigFile.Name())
} }
func (f *TestFactory) ClientConfig() (*restclient.Config, error) { func (f *TestFactory) ToRESTConfig() (*restclient.Config, error) {
return f.ClientConfigVal, nil return f.ClientConfigVal, nil
} }
@ -330,7 +330,7 @@ func (f *TestFactory) Command(*cobra.Command, bool) string {
} }
func (f *TestFactory) NewBuilder() *resource.Builder { func (f *TestFactory) NewBuilder() *resource.Builder {
mapper, err := f.RESTMapper() mapper, err := f.ToRESTMapper()
return resource.NewFakeBuilder( return resource.NewFakeBuilder(
func(version schema.GroupVersion) (resource.RESTClient, error) { func(version schema.GroupVersion) (resource.RESTClient, error) {

View File

@ -136,7 +136,7 @@ func (o *TopNodeOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []
o.DiscoveryClient = clientset.DiscoveryClient o.DiscoveryClient = clientset.DiscoveryClient
config, err := f.ClientConfig() config, err := f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -131,7 +131,7 @@ func (o *TopPodOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []s
} }
o.DiscoveryClient = clientset.DiscoveryClient o.DiscoveryClient = clientset.DiscoveryClient
config, err := f.ClientConfig() config, err := f.ToRESTConfig()
if err != nil { if err != nil {
return err return err
} }

View File

@ -67,8 +67,14 @@ type Factory interface {
// Generally provides discovery, negotiation, and no-dep calls. // Generally provides discovery, negotiation, and no-dep calls.
// TODO The polymorphic calls probably deserve their own interface. // TODO The polymorphic calls probably deserve their own interface.
type ClientAccessFactory interface { type ClientAccessFactory interface {
// Returns a client.Config for accessing the Kubernetes server.
ToRESTConfig() (*restclient.Config, error)
// Returns interfaces for dealing with arbitrary runtime.Objects.
ToRESTMapper() (meta.RESTMapper, error)
// Returns a discovery client // Returns a discovery client
DiscoveryClient() (discovery.CachedDiscoveryInterface, error) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error)
// Returns kubeconfig loader
ToRawKubeConfigLoader() clientcmd.ClientConfig
// ClientSet gives you back an internal, generated clientset // ClientSet gives you back an internal, generated clientset
ClientSet() (internalclientset.Interface, error) ClientSet() (internalclientset.Interface, error)
@ -79,16 +85,8 @@ type ClientAccessFactory interface {
// KubernetesClientSet gives you back an external clientset // KubernetesClientSet gives you back an external clientset
KubernetesClientSet() (*kubernetes.Clientset, error) KubernetesClientSet() (*kubernetes.Clientset, error)
// Returns interfaces for dealing with arbitrary runtime.Objects.
RESTMapper() (meta.RESTMapper, error)
// Returns a RESTClient for accessing Kubernetes resources or an error. // Returns a RESTClient for accessing Kubernetes resources or an error.
RESTClient() (*restclient.RESTClient, error) RESTClient() (*restclient.RESTClient, error)
// Returns a client.Config for accessing the Kubernetes server.
ClientConfig() (*restclient.Config, error)
// BareClientConfig returns a client.Config that has NOT been negotiated. It's
// just directions to the server. People use this to build RESTMappers on top of
BareClientConfig() (*restclient.Config, error)
// NewBuilder returns an object that assists in loading objects from both disk and the server // NewBuilder returns an object that assists in loading objects from both disk and the server
// and which implements the common patterns for CLI interactions with generic resources. // and which implements the common patterns for CLI interactions with generic resources.

View File

@ -40,7 +40,7 @@ func NewBuilderFactory(clientAccessFactory ClientAccessFactory, objectMappingFac
} }
func (f *ring2Factory) ScaleClient() (scaleclient.ScalesGetter, error) { func (f *ring2Factory) ScaleClient() (scaleclient.ScalesGetter, error) {
discoClient, err := f.clientAccessFactory.DiscoveryClient() discoClient, err := f.clientAccessFactory.ToDiscoveryClient()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -49,7 +49,7 @@ func (f *ring2Factory) ScaleClient() (scaleclient.ScalesGetter, error) {
return nil, err return nil, err
} }
resolver := scaleclient.NewDiscoveryScaleKindResolver(discoClient) resolver := scaleclient.NewDiscoveryScaleKindResolver(discoClient)
mapper, err := f.clientAccessFactory.RESTMapper() mapper, err := f.clientAccessFactory.ToRESTMapper()
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -81,24 +81,24 @@ func NewClientAccessFactory(clientGetter RESTClientGetter) ClientAccessFactory {
return f return f
} }
func (f *ring0Factory) ClientConfig() (*restclient.Config, error) { func (f *ring0Factory) ToRESTConfig() (*restclient.Config, error) {
return f.clientGetter.ToRESTConfig() return f.clientGetter.ToRESTConfig()
} }
func (f *ring0Factory) RESTMapper() (meta.RESTMapper, error) { func (f *ring0Factory) ToRESTMapper() (meta.RESTMapper, error) {
return f.clientGetter.ToRESTMapper() return f.clientGetter.ToRESTMapper()
} }
func (f *ring0Factory) BareClientConfig() (*restclient.Config, error) { func (f *ring0Factory) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error) {
return f.clientGetter.ToRESTConfig()
}
func (f *ring0Factory) DiscoveryClient() (discovery.CachedDiscoveryInterface, error) {
return f.clientGetter.ToDiscoveryClient() return f.clientGetter.ToDiscoveryClient()
} }
func (f *ring0Factory) ToRawKubeConfigLoader() clientcmd.ClientConfig {
return f.clientGetter.ToRawKubeConfigLoader()
}
func (f *ring0Factory) KubernetesClientSet() (*kubernetes.Clientset, error) { func (f *ring0Factory) KubernetesClientSet() (*kubernetes.Clientset, error) {
clientConfig, err := f.ClientConfig() clientConfig, err := f.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -106,7 +106,7 @@ func (f *ring0Factory) KubernetesClientSet() (*kubernetes.Clientset, error) {
} }
func (f *ring0Factory) ClientSet() (internalclientset.Interface, error) { func (f *ring0Factory) ClientSet() (internalclientset.Interface, error) {
clientConfig, err := f.ClientConfig() clientConfig, err := f.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -114,7 +114,7 @@ func (f *ring0Factory) ClientSet() (internalclientset.Interface, error) {
} }
func (f *ring0Factory) DynamicClient() (dynamic.Interface, error) { func (f *ring0Factory) DynamicClient() (dynamic.Interface, error) {
clientConfig, err := f.ClientConfig() clientConfig, err := f.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -127,7 +127,7 @@ func (f *ring0Factory) NewBuilder() *resource.Builder {
} }
func (f *ring0Factory) RESTClient() (*restclient.RESTClient, error) { func (f *ring0Factory) RESTClient() (*restclient.RESTClient, error) {
clientConfig, err := f.ClientConfig() clientConfig, err := f.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -75,7 +75,7 @@ func NewObjectMappingFactory(clientAccessFactory ClientAccessFactory) ObjectMapp
} }
func (f *ring1Factory) ClientForMapping(mapping *meta.RESTMapping) (resource.RESTClient, error) { func (f *ring1Factory) ClientForMapping(mapping *meta.RESTMapping) (resource.RESTClient, error) {
cfg, err := f.clientAccessFactory.ClientConfig() cfg, err := f.clientAccessFactory.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -95,7 +95,7 @@ func (f *ring1Factory) ClientForMapping(mapping *meta.RESTMapping) (resource.RES
} }
func (f *ring1Factory) UnstructuredClientForMapping(mapping *meta.RESTMapping) (resource.RESTClient, error) { func (f *ring1Factory) UnstructuredClientForMapping(mapping *meta.RESTMapping) (resource.RESTClient, error) {
cfg, err := f.clientAccessFactory.BareClientConfig() cfg, err := f.clientAccessFactory.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -113,7 +113,7 @@ func (f *ring1Factory) UnstructuredClientForMapping(mapping *meta.RESTMapping) (
} }
func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (printers.Describer, error) { func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (printers.Describer, error) {
clientConfig, err := f.clientAccessFactory.ClientConfig() clientConfig, err := f.clientAccessFactory.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -131,7 +131,7 @@ func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (printers.Describer,
// helper function to make a generic describer, or return an error // helper function to make a generic describer, or return an error
func genericDescriber(clientAccessFactory ClientAccessFactory, mapping *meta.RESTMapping) (printers.Describer, error) { func genericDescriber(clientAccessFactory ClientAccessFactory, mapping *meta.RESTMapping) (printers.Describer, error) {
clientConfig, err := clientAccessFactory.ClientConfig() clientConfig, err := clientAccessFactory.ToRESTConfig()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -421,7 +421,7 @@ func (f *ring1Factory) Validator(validate bool) (validation.Schema, error) {
// OpenAPISchema returns metadata and structural information about Kubernetes object definitions. // OpenAPISchema returns metadata and structural information about Kubernetes object definitions.
func (f *ring1Factory) OpenAPISchema() (openapi.Resources, error) { func (f *ring1Factory) OpenAPISchema() (openapi.Resources, error) {
discovery, err := f.clientAccessFactory.DiscoveryClient() discovery, err := f.clientAccessFactory.ToDiscoveryClient()
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -83,7 +83,7 @@ func NewCmdVersion(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *co
func (o *VersionOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error { func (o *VersionOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
var err error var err error
o.discoveryClient, err = f.DiscoveryClient() o.discoveryClient, err = f.ToDiscoveryClient()
if err != nil { if err != nil {
return err return err
} }

View File

@ -174,7 +174,7 @@ func TestServerSidePrint(t *testing.T) {
configFlags.WithDiscoveryClient(cachedClient) configFlags.WithDiscoveryClient(cachedClient)
factory := util.NewFactory(configFlags) factory := util.NewFactory(configFlags)
mapper, err := factory.RESTMapper() mapper, err := factory.ToRESTMapper()
if err != nil { if err != nil {
t.Errorf("unexpected error getting mapper: %v", err) t.Errorf("unexpected error getting mapper: %v", err)
return return