2016-02-22 00:13:08 +00:00
/ *
2016-07-12 03:42:47 +00:00
Copyright 2014 The Kubernetes Authors .
2016-02-22 00:13:08 +00:00
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 unversioned
import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apimachinery/registered"
2016-03-19 23:00:11 +00:00
"k8s.io/kubernetes/pkg/client/restclient"
2016-05-09 18:53:58 +00:00
// Import solely to initialize client auth plugins.
_ "k8s.io/kubernetes/plugin/pkg/client/auth"
2016-02-22 00:13:08 +00:00
)
const (
legacyAPIPath = "/api"
defaultAPIPath = "/apis"
)
// SetKubernetesDefaults sets default values on the provided client config for accessing the
// Kubernetes API or returns an error if any of the defaults are impossible or invalid.
// TODO: this method needs to be split into one that sets defaults per group, expected to be fix in PR "Refactoring clientcache.go and helper.go #14592"
2016-03-19 23:00:11 +00:00
func SetKubernetesDefaults ( config * restclient . Config ) error {
2016-02-22 00:13:08 +00:00
if config . APIPath == "" {
config . APIPath = legacyAPIPath
}
2016-08-10 18:53:55 +00:00
if config . GroupVersion == nil || config . GroupVersion . Group != api . GroupName {
g , err := registered . Group ( api . GroupName )
if err != nil {
return err
}
copyGroupVersion := g . GroupVersion
config . GroupVersion = & copyGroupVersion
2016-02-22 00:13:08 +00:00
}
2016-05-09 18:53:58 +00:00
if config . NegotiatedSerializer == nil {
config . NegotiatedSerializer = api . Codecs
}
2016-03-19 23:00:11 +00:00
return restclient . SetKubernetesDefaults ( config )
2016-02-22 00:13:08 +00:00
}
2016-08-10 18:53:55 +00:00
func setGroupDefaults ( groupName string , config * restclient . Config ) error {
config . APIPath = defaultAPIPath
if config . UserAgent == "" {
config . UserAgent = restclient . DefaultKubernetesUserAgent ( )
}
if config . GroupVersion == nil || config . GroupVersion . Group != groupName {
g , err := registered . Group ( groupName )
if err != nil {
return err
}
copyGroupVersion := g . GroupVersion
config . GroupVersion = & copyGroupVersion
}
if config . NegotiatedSerializer == nil {
config . NegotiatedSerializer = api . Codecs
}
return nil
}