Browse code

Mechanical changes for rebase

kclient -> restclient
kclient -> discovery
fake client set -> package rename
NonDefaultGroupVersionKinds -> SubresourceGroupVersionKind
Extended test compile fixes
Unit test compile fixes
Switch to registered.RestMapper()
Install kapi v1 to get defaulting functions
Convert image etcd tests to use etcd client
Adjust create command examples
Stop setting selector in Job
Move config cmd into wrappers

Jordan Liggitt authored on 2016/03/11 16:06:32
Showing 93 changed files
... ...
@@ -14,7 +14,7 @@ import (
14 14
 
15 15
 func TestRESTRootScope(t *testing.T) {
16 16
 	for _, v := range [][]string{{"v1beta3"}, {"v1"}} {
17
-		mapping, err := kapi.RESTMapper.RESTMapping(kapi.Kind("Node"), v...)
17
+		mapping, err := registered.RESTMapper().RESTMapping(kapi.Kind("Node"), v...)
18 18
 		if err != nil {
19 19
 			t.Fatal(err)
20 20
 		}
... ...
@@ -27,7 +27,7 @@ func TestRESTRootScope(t *testing.T) {
27 27
 func TestResourceToKind(t *testing.T) {
28 28
 	// Ensure we resolve to latest.Version
29 29
 	expectedGVK := Version.WithKind("User")
30
-	gvk, err := kapi.RESTMapper.KindFor(userapi.SchemeGroupVersion.WithResource("User"))
30
+	gvk, err := registered.RESTMapper().KindFor(userapi.SchemeGroupVersion.WithResource("User"))
31 31
 	if err != nil {
32 32
 		t.Fatalf("Unexpected error: %v", err)
33 33
 	}
... ...
@@ -40,7 +40,7 @@ func TestUpstreamResourceToKind(t *testing.T) {
40 40
 	// Ensure we resolve to klatest.ExternalVersions[0]
41 41
 	meta, _ := registered.Group("")
42 42
 	expectedGVK := meta.GroupVersion.WithKind("Pod")
43
-	gvk, err := registered.GroupOrDie(kapi.SchemeGroupVersion.Group).RESTMapper.KindFor(kapi.SchemeGroupVersion.WithResource("Pod"))
43
+	gvk, err := registered.RESTMapper().KindFor(kapi.SchemeGroupVersion.WithResource("Pod"))
44 44
 	if err != nil {
45 45
 		t.Fatalf("Unexpected error: %v", err)
46 46
 	}
... ...
@@ -7421,7 +7421,7 @@ func autoConvert_api_Volume_To_v1_Volume(in *api.Volume, out *apiv1.Volume, s co
7421 7421
 		defaulting.(func(*api.Volume))(in)
7422 7422
 	}
7423 7423
 	out.Name = in.Name
7424
-	if err := v1beta1.Convert_api_VolumeSource_To_v1beta1_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil {
7424
+	if err := apiv1.Convert_api_VolumeSource_To_v1_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil {
7425 7425
 		return err
7426 7426
 	}
7427 7427
 	return nil
... ...
@@ -8670,7 +8670,7 @@ func autoConvert_v1_Volume_To_api_Volume(in *apiv1.Volume, out *api.Volume, s co
8670 8670
 		defaulting.(func(*apiv1.Volume))(in)
8671 8671
 	}
8672 8672
 	out.Name = in.Name
8673
-	if err := v1beta1.Convert_v1beta1_VolumeSource_To_api_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil {
8673
+	if err := apiv1.Convert_v1_VolumeSource_To_api_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil {
8674 8674
 		return err
8675 8675
 	}
8676 8676
 	return nil
... ...
@@ -6,7 +6,7 @@ import (
6 6
 	"github.com/openshift/origin/pkg/client"
7 7
 	oclient "github.com/openshift/origin/pkg/oauth/client"
8 8
 	"k8s.io/kubernetes/pkg/auth/user"
9
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
9
+	"k8s.io/kubernetes/pkg/client/restclient"
10 10
 )
11 11
 
12 12
 type OAuthAccessTokenSource interface {
... ...
@@ -34,7 +34,7 @@ func (a *Authenticator) AuthenticatePassword(username, password string) (user.In
34 34
 
35 35
 	auth := oclient.OAuthWrapper{a.rt, token}
36 36
 
37
-	client, err := client.New(&kclient.Config{Transport: auth, Host: a.host})
37
+	client, err := client.New(&restclient.Config{Transport: auth, Host: a.host})
38 38
 	if err != nil {
39 39
 		return nil, false, err
40 40
 	}
... ...
@@ -2,18 +2,18 @@ package remotemaster
2 2
 
3 3
 import (
4 4
 	"k8s.io/kubernetes/pkg/auth/user"
5
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
5
+	"k8s.io/kubernetes/pkg/client/restclient"
6 6
 
7 7
 	"github.com/openshift/origin/pkg/client"
8 8
 	"github.com/openshift/origin/pkg/cmd/util/clientcmd"
9 9
 )
10 10
 
11 11
 type Authenticator struct {
12
-	anonymousConfig kclient.Config
12
+	anonymousConfig restclient.Config
13 13
 }
14 14
 
15 15
 // NewAuthenticator authenticates by fetching users/~ using the provided token as a bearer token
16
-func NewAuthenticator(anonymousConfig kclient.Config) (*Authenticator, error) {
16
+func NewAuthenticator(anonymousConfig restclient.Config) (*Authenticator, error) {
17 17
 	// Ensure credentials are removed from the anonymous config
18 18
 	anonymousConfig = clientcmd.AnonymousClientConfig(&anonymousConfig)
19 19
 
... ...
@@ -11,7 +11,7 @@ import (
11 11
 	"github.com/golang/glog"
12 12
 
13 13
 	kapi "k8s.io/kubernetes/pkg/api"
14
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
14
+	"k8s.io/kubernetes/pkg/client/restclient"
15 15
 	"k8s.io/kubernetes/pkg/runtime"
16 16
 
17 17
 	s2iapi "github.com/openshift/source-to-image/pkg/api"
... ...
@@ -68,7 +68,7 @@ func newBuilderConfigFromEnvironment() (*builderConfig, error) {
68 68
 	}
69 69
 
70 70
 	// buildsClient (KUBERNETES_SERVICE_HOST, KUBERNETES_SERVICE_PORT)
71
-	clientConfig, err := kclient.InClusterConfig()
71
+	clientConfig, err := restclient.InClusterConfig()
72 72
 	if err != nil {
73 73
 		return nil, fmt.Errorf("failed to get client config: %v", err)
74 74
 	}
... ...
@@ -2,7 +2,7 @@ package client
2 2
 
3 3
 import (
4 4
 	kapi "k8s.io/kubernetes/pkg/api"
5
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
5
+	"k8s.io/kubernetes/pkg/client/restclient"
6 6
 
7 7
 	api "github.com/openshift/origin/pkg/build/api"
8 8
 )
... ...
@@ -14,7 +14,7 @@ type BuildLogsNamespacer interface {
14 14
 
15 15
 // BuildLogsInterface exposes methods on BuildLogs resources.
16 16
 type BuildLogsInterface interface {
17
-	Get(name string, opts api.BuildLogOptions) *kclient.Request
17
+	Get(name string, opts api.BuildLogOptions) *restclient.Request
18 18
 }
19 19
 
20 20
 // buildLogs implements BuildLogsNamespacer interface
... ...
@@ -32,6 +32,6 @@ func newBuildLogs(c *Client, namespace string) *buildLogs {
32 32
 }
33 33
 
34 34
 // Get builds and returns a buildLog request
35
-func (c *buildLogs) Get(name string, opts api.BuildLogOptions) *kclient.Request {
35
+func (c *buildLogs) Get(name string, opts api.BuildLogOptions) *restclient.Request {
36 36
 	return c.r.Get().Namespace(c.ns).Resource("builds").Name(name).SubResource("log").VersionedParams(&opts, kapi.ParameterCodec)
37 37
 }
... ...
@@ -9,7 +9,7 @@ import (
9 9
 
10 10
 	kapi "k8s.io/kubernetes/pkg/api"
11 11
 	"k8s.io/kubernetes/pkg/api/errors"
12
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
12
+	"k8s.io/kubernetes/pkg/client/restclient"
13 13
 
14 14
 	"github.com/openshift/origin/pkg/api/latest"
15 15
 	"github.com/openshift/origin/pkg/version"
... ...
@@ -245,18 +245,18 @@ func (c *Client) ClusterRoleBindings() ClusterRoleBindingInterface {
245 245
 
246 246
 // Client is an OpenShift client object
247 247
 type Client struct {
248
-	*kclient.RESTClient
248
+	*restclient.RESTClient
249 249
 }
250 250
 
251 251
 // New creates an OpenShift client for the given config. This client works with builds, deployments,
252 252
 // templates, routes, and images. It allows operations such as list, get, update and delete on these
253 253
 // objects. An error is returned if the provided configuration is not valid.
254
-func New(c *kclient.Config) (*Client, error) {
254
+func New(c *restclient.Config) (*Client, error) {
255 255
 	config := *c
256 256
 	if err := SetOpenShiftDefaults(&config); err != nil {
257 257
 		return nil, err
258 258
 	}
259
-	client, err := kclient.RESTClientFor(&config)
259
+	client, err := restclient.RESTClientFor(&config)
260 260
 	if err != nil {
261 261
 		return nil, err
262 262
 	}
... ...
@@ -266,7 +266,7 @@ func New(c *kclient.Config) (*Client, error) {
266 266
 
267 267
 // SetOpenShiftDefaults sets the default settings on the passed
268 268
 // client configuration
269
-func SetOpenShiftDefaults(config *kclient.Config) error {
269
+func SetOpenShiftDefaults(config *restclient.Config) error {
270 270
 	if len(config.UserAgent) == 0 {
271 271
 		config.UserAgent = DefaultOpenShiftUserAgent()
272 272
 	}
... ...
@@ -292,7 +292,7 @@ func SetOpenShiftDefaults(config *kclient.Config) error {
292 292
 }
293 293
 
294 294
 // NewOrDie creates an OpenShift client and panics if the provided API version is not recognized.
295
-func NewOrDie(c *kclient.Config) *Client {
295
+func NewOrDie(c *restclient.Config) *Client {
296 296
 	client, err := New(c)
297 297
 	if err != nil {
298 298
 		panic(err)
... ...
@@ -6,7 +6,7 @@ import (
6 6
 	"strings"
7 7
 	"testing"
8 8
 
9
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
9
+	"k8s.io/kubernetes/pkg/client/restclient"
10 10
 )
11 11
 
12 12
 func TestUserAgent(t *testing.T) {
... ...
@@ -17,7 +17,7 @@ func TestUserAgent(t *testing.T) {
17 17
 	}))
18 18
 	defer server.Close()
19 19
 
20
-	c, _ := New(&kclient.Config{
20
+	c, _ := New(&restclient.Config{
21 21
 		Host: server.URL,
22 22
 	})
23 23
 	c.DeploymentConfigs("test").Get("other")
... ...
@@ -2,7 +2,7 @@ package client
2 2
 
3 3
 import (
4 4
 	kapi "k8s.io/kubernetes/pkg/api"
5
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
5
+	"k8s.io/kubernetes/pkg/client/restclient"
6 6
 
7 7
 	"github.com/openshift/origin/pkg/deploy/api"
8 8
 )
... ...
@@ -14,7 +14,7 @@ type DeploymentLogsNamespacer interface {
14 14
 
15 15
 // DeploymentLogInterface exposes methods on DeploymentLogs resources.
16 16
 type DeploymentLogInterface interface {
17
-	Get(name string, opts api.DeploymentLogOptions) *kclient.Request
17
+	Get(name string, opts api.DeploymentLogOptions) *restclient.Request
18 18
 }
19 19
 
20 20
 // deploymentLogs implements DeploymentLogsNamespacer interface
... ...
@@ -32,6 +32,6 @@ func newDeploymentLogs(c *Client, namespace string) *deploymentLogs {
32 32
 }
33 33
 
34 34
 // Get gets the deploymentlogs and return a deploymentLog request
35
-func (c *deploymentLogs) Get(name string, opts api.DeploymentLogOptions) *kclient.Request {
35
+func (c *deploymentLogs) Get(name string, opts api.DeploymentLogOptions) *restclient.Request {
36 36
 	return c.r.Get().Namespace(c.ns).Resource("deploymentConfigs").Name(name).SubResource("log").VersionedParams(&opts, kapi.ParameterCodec)
37 37
 }
... ...
@@ -5,13 +5,14 @@ import (
5 5
 
6 6
 	"k8s.io/kubernetes/pkg/api/errors"
7 7
 	"k8s.io/kubernetes/pkg/api/unversioned"
8
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
8
+	"k8s.io/kubernetes/pkg/client/restclient"
9
+	"k8s.io/kubernetes/pkg/client/typed/discovery"
9 10
 )
10 11
 
11 12
 // DiscoveryClient implements the functions that dicovery server-supported API groups,
12 13
 // versions and resources.
13 14
 type DiscoveryClient struct {
14
-	*kclient.DiscoveryClient
15
+	*discovery.DiscoveryClient
15 16
 }
16 17
 
17 18
 // ServerResourcesForGroupVersion returns the supported resources for a group and version.
... ...
@@ -55,7 +56,7 @@ func (d *DiscoveryClient) ServerResources() (map[string]*unversioned.APIResource
55 55
 	if err != nil {
56 56
 		return nil, err
57 57
 	}
58
-	groupVersions := kclient.ExtractGroupVersions(apiGroups)
58
+	groupVersions := unversioned.ExtractGroupVersions(apiGroups)
59 59
 	result := map[string]*unversioned.APIResourceList{}
60 60
 	for _, groupVersion := range groupVersions {
61 61
 		resources, err := d.ServerResourcesForGroupVersion(groupVersion)
... ...
@@ -68,6 +69,6 @@ func (d *DiscoveryClient) ServerResources() (map[string]*unversioned.APIResource
68 68
 }
69 69
 
70 70
 // New creates a new DiscoveryClient for the given RESTClient.
71
-func NewDiscoveryClient(c *kclient.RESTClient) *DiscoveryClient {
72
-	return &DiscoveryClient{kclient.NewDiscoveryClient(c)}
71
+func NewDiscoveryClient(c *restclient.RESTClient) *DiscoveryClient {
72
+	return &DiscoveryClient{discovery.NewDiscoveryClient(c)}
73 73
 }
... ...
@@ -9,7 +9,7 @@ import (
9 9
 	kapi "k8s.io/kubernetes/pkg/api"
10 10
 	"k8s.io/kubernetes/pkg/api/errors"
11 11
 	"k8s.io/kubernetes/pkg/api/unversioned"
12
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
12
+	"k8s.io/kubernetes/pkg/client/restclient"
13 13
 	"k8s.io/kubernetes/pkg/runtime"
14 14
 
15 15
 	"github.com/openshift/origin/pkg/image/api"
... ...
@@ -45,7 +45,7 @@ func TestImageStreamImportUnsupported(t *testing.T) {
45 45
 		},
46 46
 	}
47 47
 	for i, test := range testCases {
48
-		c, err := New(&kclient.Config{
48
+		c, err := New(&restclient.Config{
49 49
 			Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) {
50 50
 				buf := bytes.NewBuffer([]byte(runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(api.SchemeGroupVersion), &test.status)))
51 51
 				return &http.Response{StatusCode: http.StatusNotFound, Body: ioutil.NopCloser(buf)}, nil
... ...
@@ -5,7 +5,7 @@ import (
5 5
 	"fmt"
6 6
 
7 7
 	kapierrors "k8s.io/kubernetes/pkg/api/errors"
8
-	client "k8s.io/kubernetes/pkg/client/unversioned"
8
+	"k8s.io/kubernetes/pkg/client/restclient"
9 9
 
10 10
 	authorizationapi "github.com/openshift/origin/pkg/authorization/api"
11 11
 )
... ...
@@ -88,7 +88,7 @@ func (c *subjectAccessReviews) Create(sar *authorizationapi.SubjectAccessReview)
88 88
 }
89 89
 
90 90
 // overrideAuth specifies the token to authenticate the request with.  token == "" is not allowed
91
-func overrideAuth(token *string, req *client.Request) (*client.Request, error) {
91
+func overrideAuth(token *string, req *restclient.Request) (*restclient.Request, error) {
92 92
 	if token != nil {
93 93
 		if len(*token) == 0 {
94 94
 			return nil, errors.New("impersonating token may not be empty")
... ...
@@ -5,6 +5,7 @@ import (
5 5
 	"sync"
6 6
 
7 7
 	kapi "k8s.io/kubernetes/pkg/api"
8
+	"k8s.io/kubernetes/pkg/apimachinery/registered"
8 9
 	ktestclient "k8s.io/kubernetes/pkg/client/unversioned/testclient"
9 10
 	"k8s.io/kubernetes/pkg/runtime"
10 11
 	"k8s.io/kubernetes/pkg/watch"
... ...
@@ -35,7 +36,7 @@ func NewSimpleFake(objects ...runtime.Object) *Fake {
35 35
 	}
36 36
 
37 37
 	fakeClient := &Fake{}
38
-	fakeClient.AddReactor("*", "*", ktestclient.ObjectReaction(o, kapi.RESTMapper))
38
+	fakeClient.AddReactor("*", "*", ktestclient.ObjectReaction(o, registered.RESTMapper()))
39 39
 
40 40
 	return fakeClient
41 41
 }
... ...
@@ -1,8 +1,7 @@
1 1
 package testclient
2 2
 
3 3
 import (
4
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
5
-
4
+	"k8s.io/kubernetes/pkg/client/restclient"
6 5
 	ktestclient "k8s.io/kubernetes/pkg/client/unversioned/testclient"
7 6
 
8 7
 	buildapi "github.com/openshift/origin/pkg/build/api"
... ...
@@ -15,7 +14,7 @@ type FakeBuildLogs struct {
15 15
 	Namespace string
16 16
 }
17 17
 
18
-func (c *FakeBuildLogs) Get(name string, opt buildapi.BuildLogOptions) *kclient.Request {
18
+func (c *FakeBuildLogs) Get(name string, opt buildapi.BuildLogOptions) *restclient.Request {
19 19
 	action := ktestclient.GenericActionImpl{}
20 20
 	action.Verb = "get"
21 21
 	action.Namespace = c.Namespace
... ...
@@ -24,5 +23,5 @@ func (c *FakeBuildLogs) Get(name string, opt buildapi.BuildLogOptions) *kclient.
24 24
 	action.Value = opt
25 25
 
26 26
 	_, _ = c.Fake.Invokes(action, &buildapi.BuildConfig{})
27
-	return &kclient.Request{}
27
+	return &restclient.Request{}
28 28
 }
... ...
@@ -1,7 +1,7 @@
1 1
 package testclient
2 2
 
3 3
 import (
4
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
4
+	"k8s.io/kubernetes/pkg/client/restclient"
5 5
 	ktestclient "k8s.io/kubernetes/pkg/client/unversioned/testclient"
6 6
 
7 7
 	"github.com/openshift/origin/pkg/deploy/api"
... ...
@@ -15,7 +15,7 @@ type FakeDeploymentLogs struct {
15 15
 }
16 16
 
17 17
 // Get builds and returns a buildLog request
18
-func (c *FakeDeploymentLogs) Get(name string, opt api.DeploymentLogOptions) *kclient.Request {
18
+func (c *FakeDeploymentLogs) Get(name string, opt api.DeploymentLogOptions) *restclient.Request {
19 19
 	action := ktestclient.GenericActionImpl{}
20 20
 	action.Verb = "get"
21 21
 	action.Namespace = c.Namespace
... ...
@@ -24,5 +24,5 @@ func (c *FakeDeploymentLogs) Get(name string, opt api.DeploymentLogOptions) *kcl
24 24
 	action.Value = opt
25 25
 
26 26
 	_, _ = c.Fake.Invokes(action, &api.DeploymentConfig{})
27
-	return &kclient.Request{}
27
+	return &restclient.Request{}
28 28
 }
... ...
@@ -1,7 +1,7 @@
1 1
 package testclient
2 2
 
3 3
 import (
4
-	kapi "k8s.io/kubernetes/pkg/api"
4
+	"k8s.io/kubernetes/pkg/apimachinery/registered"
5 5
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
6 6
 	"k8s.io/kubernetes/pkg/client/unversioned/testclient"
7 7
 
... ...
@@ -11,10 +11,10 @@ import (
11 11
 // NewFixtureClients returns mocks of the OpenShift and Kubernetes clients
12 12
 func NewFixtureClients(o testclient.ObjectRetriever) (osclient.Interface, kclient.Interface) {
13 13
 	oc := &Fake{}
14
-	oc.AddReactor("*", "*", testclient.ObjectReaction(o, kapi.RESTMapper))
14
+	oc.AddReactor("*", "*", testclient.ObjectReaction(o, registered.RESTMapper()))
15 15
 
16 16
 	kc := &testclient.Fake{}
17
-	kc.AddReactor("*", "*", testclient.ObjectReaction(o, kapi.RESTMapper))
17
+	kc.AddReactor("*", "*", testclient.ObjectReaction(o, registered.RESTMapper()))
18 18
 
19 19
 	return oc, kc
20 20
 }
... ...
@@ -14,6 +14,7 @@ import (
14 14
 
15 15
 	"github.com/spf13/cobra"
16 16
 	kapi "k8s.io/kubernetes/pkg/api"
17
+	"k8s.io/kubernetes/pkg/client/restclient"
17 18
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
18 19
 	cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
19 20
 	knet "k8s.io/kubernetes/pkg/util/net"
... ...
@@ -411,7 +412,7 @@ func getClients(f *clientcmd.Factory, caBundle string) (*client.Client, *kclient
411 411
 	// set the "password" to be the token
412 412
 	registryClientConfig.Password = token
413 413
 
414
-	tlsConfig, err := kclient.TLSConfigFor(&registryClientConfig)
414
+	tlsConfig, err := restclient.TLSConfigFor(&registryClientConfig)
415 415
 	if err != nil {
416 416
 		return nil, nil, nil, err
417 417
 	}
... ...
@@ -435,7 +436,7 @@ func getClients(f *clientcmd.Factory, caBundle string) (*client.Client, *kclient
435 435
 		TLSClientConfig: tlsConfig,
436 436
 	})
437 437
 
438
-	wrappedTransport, err := kclient.HTTPWrappersForConfig(&registryClientConfig, transport)
438
+	wrappedTransport, err := restclient.HTTPWrappersForConfig(&registryClientConfig, transport)
439 439
 	if err != nil {
440 440
 		return nil, nil, nil, err
441 441
 	}
... ...
@@ -14,7 +14,7 @@ import (
14 14
 	"github.com/spf13/cobra"
15 15
 	kapi "k8s.io/kubernetes/pkg/api"
16 16
 	"k8s.io/kubernetes/pkg/api/errors"
17
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
17
+	"k8s.io/kubernetes/pkg/client/restclient"
18 18
 	kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
19 19
 	kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
20 20
 	"k8s.io/kubernetes/pkg/runtime"
... ...
@@ -254,7 +254,7 @@ func RunCmdRegistry(f *clientcmd.Factory, cmd *cobra.Command, out io.Writer, cfg
254 254
 		if err != nil {
255 255
 			return fmt.Errorf("registry does not exist; the provided credentials %q could not be used: %v", cfg.Credentials, err)
256 256
 		}
257
-		if err := kclient.LoadTLSFiles(config); err != nil {
257
+		if err := restclient.LoadTLSFiles(config); err != nil {
258 258
 			return fmt.Errorf("registry does not exist; the provided credentials %q could not load certificate info: %v", cfg.Credentials, err)
259 259
 		}
260 260
 		insecure := "false"
... ...
@@ -14,6 +14,7 @@ import (
14 14
 
15 15
 	kapi "k8s.io/kubernetes/pkg/api"
16 16
 	"k8s.io/kubernetes/pkg/api/errors"
17
+	"k8s.io/kubernetes/pkg/client/restclient"
17 18
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
18 19
 	kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
19 20
 	kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
... ...
@@ -554,7 +555,7 @@ func RunCmdRouter(f *clientcmd.Factory, cmd *cobra.Command, out io.Writer, cfg *
554 554
 		if err != nil {
555 555
 			return fmt.Errorf("router could not be created; the provided credentials %q could not be used: %v", cfg.Credentials, err)
556 556
 		}
557
-		if err := kclient.LoadTLSFiles(config); err != nil {
557
+		if err := restclient.LoadTLSFiles(config); err != nil {
558 558
 			return fmt.Errorf("router could not be created; the provided credentials %q could not load certificate info: %v", cfg.Credentials, err)
559 559
 		}
560 560
 		insecure := "false"
561 561
deleted file mode 100644
... ...
@@ -1,65 +0,0 @@
1
-package cmd
2
-
3
-import (
4
-	"bufio"
5
-	"fmt"
6
-	"os"
7
-	"strings"
8
-
9
-	"github.com/spf13/cobra"
10
-
11
-	"k8s.io/kubernetes/pkg/kubectl/cmd/config"
12
-
13
-	cmdconfig "github.com/openshift/origin/pkg/cmd/cli/config"
14
-)
15
-
16
-const (
17
-	configLong = `
18
-Manage the client config files
19
-
20
-The client stores configuration in the current user's home directory (under the .kube directory as
21
-config). When you login the first time, a new config file is created, and subsequent project changes with the
22
-'project' command will set the current context. These subcommands allow you to manage the config directly.
23
-
24
-Reference: https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/kubeconfig-file.md`
25
-
26
-	configExample = `  # Change the config context to use
27
-  %[1]s %[2]s use-context my-context
28
-
29
-  # Set the value of a config preference
30
-  %[1]s %[2]s set preferences.some true`
31
-)
32
-
33
-func NewCmdConfig(parentName, name string) *cobra.Command {
34
-	pathOptions := &config.PathOptions{
35
-		GlobalFile:       cmdconfig.RecommendedHomeFile,
36
-		EnvVar:           cmdconfig.OpenShiftConfigPathEnvVar,
37
-		ExplicitFileFlag: cmdconfig.OpenShiftConfigFlagName,
38
-
39
-		GlobalFileSubpath: cmdconfig.OpenShiftConfigHomeDirFileName,
40
-
41
-		LoadingRules: cmdconfig.NewOpenShiftClientConfigLoadingRules(),
42
-	}
43
-	pathOptions.LoadingRules.DoNotResolvePaths = true
44
-
45
-	cmd := config.NewCmdConfig(pathOptions, os.Stdout)
46
-	cmd.Short = "Change configuration files for the client"
47
-	cmd.Long = configLong
48
-	cmd.Example = fmt.Sprintf(configExample, parentName, name)
49
-	adjustCmdExamples(cmd, parentName, name)
50
-	return cmd
51
-}
52
-
53
-func adjustCmdExamples(cmd *cobra.Command, parentName string, name string) {
54
-	for _, subCmd := range cmd.Commands() {
55
-		adjustCmdExamples(subCmd, parentName, cmd.Name())
56
-	}
57
-	cmd.Example = strings.Replace(cmd.Example, "$ kubectl", "$ "+parentName, -1)
58
-	tabbing := "  "
59
-	examples := []string{}
60
-	scanner := bufio.NewScanner(strings.NewReader(cmd.Example))
61
-	for scanner.Scan() {
62
-		examples = append(examples, tabbing+strings.TrimSpace(scanner.Text()))
63
-	}
64
-	cmd.Example = strings.Join(examples, "\n")
65
-}
... ...
@@ -13,7 +13,7 @@ import (
13 13
 	kapi "k8s.io/kubernetes/pkg/api"
14 14
 	kapierrors "k8s.io/kubernetes/pkg/api/errors"
15 15
 	"k8s.io/kubernetes/pkg/api/unversioned"
16
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
16
+	"k8s.io/kubernetes/pkg/client/restclient"
17 17
 	"k8s.io/kubernetes/pkg/fields"
18 18
 	kcmd "k8s.io/kubernetes/pkg/kubectl/cmd"
19 19
 	kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
... ...
@@ -33,7 +33,7 @@ type DebugOptions struct {
33 33
 	Attach kcmd.AttachOptions
34 34
 
35 35
 	Print         func(pod *kapi.Pod, w io.Writer) error
36
-	LogsForObject func(object, options runtime.Object) (*kclient.Request, error)
36
+	LogsForObject func(object, options runtime.Object) (*restclient.Request, error)
37 37
 
38 38
 	NoStdin    bool
39 39
 	ForceTTY   bool
... ...
@@ -10,7 +10,7 @@ import (
10 10
 	kapi "k8s.io/kubernetes/pkg/api"
11 11
 	kerrors "k8s.io/kubernetes/pkg/api/errors"
12 12
 	"k8s.io/kubernetes/pkg/api/unversioned"
13
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
13
+	"k8s.io/kubernetes/pkg/client/restclient"
14 14
 	kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
15 15
 	clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
16 16
 	kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
... ...
@@ -49,7 +49,7 @@ type LoginOptions struct {
49 49
 	// infra
50 50
 	StartingKubeConfig *kclientcmdapi.Config
51 51
 	DefaultNamespace   string
52
-	Config             *kclient.Config
52
+	Config             *restclient.Config
53 53
 	Reader             io.Reader
54 54
 	Out                io.Writer
55 55
 
... ...
@@ -75,12 +75,12 @@ func (o *LoginOptions) GatherInfo() error {
75 75
 
76 76
 // getClientConfig returns back the current clientConfig as we know it.  If there is no clientConfig, it builds one with enough information
77 77
 // to talk to a server.  This may involve user prompts.  This method is not threadsafe.
78
-func (o *LoginOptions) getClientConfig() (*kclient.Config, error) {
78
+func (o *LoginOptions) getClientConfig() (*restclient.Config, error) {
79 79
 	if o.Config != nil {
80 80
 		return o.Config, nil
81 81
 	}
82 82
 
83
-	clientConfig := &kclient.Config{}
83
+	clientConfig := &restclient.Config{}
84 84
 
85 85
 	if len(o.Server) == 0 {
86 86
 		// we need to have a server to talk to
... ...
@@ -176,7 +176,7 @@ func (o *LoginOptions) getClientConfig() (*kclient.Config, error) {
176 176
 }
177 177
 
178 178
 // getMatchingClusters examines the kubeconfig for all clusters that point to the same server
179
-func getMatchingClusters(clientConfig kclient.Config, kubeconfig clientcmdapi.Config) sets.String {
179
+func getMatchingClusters(clientConfig restclient.Config, kubeconfig clientcmdapi.Config) sets.String {
180 180
 	ret := sets.String{}
181 181
 
182 182
 	for key, cluster := range kubeconfig.Clusters {
... ...
@@ -7,7 +7,7 @@ import (
7 7
 
8 8
 	"github.com/spf13/cobra"
9 9
 
10
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
10
+	"k8s.io/kubernetes/pkg/client/restclient"
11 11
 	kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
12 12
 	kcmdconfig "k8s.io/kubernetes/pkg/kubectl/cmd/config"
13 13
 	kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
... ...
@@ -19,7 +19,7 @@ import (
19 19
 
20 20
 type LogoutOptions struct {
21 21
 	StartingKubeConfig *kclientcmdapi.Config
22
-	Config             *kclient.Config
22
+	Config             *restclient.Config
23 23
 	Out                io.Writer
24 24
 
25 25
 	PathOptions *kcmdconfig.PathOptions
... ...
@@ -17,6 +17,7 @@ import (
17 17
 
18 18
 	kapi "k8s.io/kubernetes/pkg/api"
19 19
 	kapierrors "k8s.io/kubernetes/pkg/api/errors"
20
+	"k8s.io/kubernetes/pkg/client/restclient"
20 21
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
21 22
 	ctl "k8s.io/kubernetes/pkg/kubectl"
22 23
 	kcmd "k8s.io/kubernetes/pkg/kubectl/cmd"
... ...
@@ -810,10 +811,10 @@ func printHumanReadableQueryResult(r *newcmd.QueryResult, out io.Writer, fullNam
810 810
 }
811 811
 
812 812
 type configSecretRetriever struct {
813
-	config *kclient.Config
813
+	config *restclient.Config
814 814
 }
815 815
 
816
-func newConfigSecretRetriever(config *kclient.Config) newapp.SecretAccessor {
816
+func newConfigSecretRetriever(config *restclient.Config) newapp.SecretAccessor {
817 817
 	return &configSecretRetriever{config}
818 818
 }
819 819
 
... ...
@@ -8,7 +8,7 @@ import (
8 8
 
9 9
 	kapi "k8s.io/kubernetes/pkg/api"
10 10
 	kapierrors "k8s.io/kubernetes/pkg/api/errors"
11
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
11
+	"k8s.io/kubernetes/pkg/client/restclient"
12 12
 	clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
13 13
 	kubecmdconfig "k8s.io/kubernetes/pkg/kubectl/cmd/config"
14 14
 	kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
... ...
@@ -24,7 +24,7 @@ import (
24 24
 type ProjectOptions struct {
25 25
 	Config       clientcmdapi.Config
26 26
 	Client       *client.Client
27
-	ClientConfig *kclient.Config
27
+	ClientConfig *restclient.Config
28 28
 	Out          io.Writer
29 29
 	PathOptions  *kubecmdconfig.PathOptions
30 30
 
... ...
@@ -271,7 +271,7 @@ func getProjects(oClient *client.Client) ([]api.Project, error) {
271 271
 	return projects.Items, nil
272 272
 }
273 273
 
274
-func clusterAndAuthEquality(clientCfg *kclient.Config, cluster clientcmdapi.Cluster, authInfo clientcmdapi.AuthInfo) bool {
274
+func clusterAndAuthEquality(clientCfg *restclient.Config, cluster clientcmdapi.Cluster, authInfo clientcmdapi.AuthInfo) bool {
275 275
 	return cluster.Server == clientCfg.Host &&
276 276
 		cluster.InsecureSkipTLSVerify == clientCfg.Insecure &&
277 277
 		cluster.CertificateAuthority == clientCfg.CAFile &&
... ...
@@ -5,6 +5,7 @@ import (
5 5
 	"strings"
6 6
 
7 7
 	"github.com/golang/glog"
8
+	"k8s.io/kubernetes/pkg/client/restclient"
8 9
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
9 10
 	kubecmd "k8s.io/kubernetes/pkg/kubectl/cmd"
10 11
 
... ...
@@ -17,7 +18,7 @@ type remoteExecutor struct {
17 17
 	PodName       string
18 18
 	ContainerName string
19 19
 	Client        *kclient.Client
20
-	Config        *kclient.Config
20
+	Config        *restclient.Config
21 21
 }
22 22
 
23 23
 // Ensure it implements the executor interface
... ...
@@ -1,6 +1,7 @@
1 1
 package rsync
2 2
 
3 3
 import (
4
+	"k8s.io/kubernetes/pkg/client/restclient"
4 5
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
5 6
 	"k8s.io/kubernetes/pkg/client/unversioned/portforward"
6 7
 	"k8s.io/kubernetes/pkg/client/unversioned/remotecommand"
... ...
@@ -13,7 +14,7 @@ type portForwarder struct {
13 13
 	Namespace string
14 14
 	PodName   string
15 15
 	Client    *kclient.Client
16
-	Config    *kclient.Config
16
+	Config    *restclient.Config
17 17
 }
18 18
 
19 19
 // ensure that portForwarder implements the forwarder interface
... ...
@@ -20,7 +20,7 @@ import (
20 20
 
21 21
 	kapi "k8s.io/kubernetes/pkg/api"
22 22
 	"k8s.io/kubernetes/pkg/api/unversioned"
23
-	client "k8s.io/kubernetes/pkg/client/unversioned"
23
+	"k8s.io/kubernetes/pkg/client/restclient"
24 24
 	"k8s.io/kubernetes/pkg/fields"
25 25
 	kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
26 26
 	"k8s.io/kubernetes/pkg/util"
... ...
@@ -540,9 +540,9 @@ func RunStartBuildWebHook(f *clientcmd.Factory, out io.Writer, webhook string, p
540 540
 	if hook.Scheme == "https" {
541 541
 		config, err := f.OpenShiftClientConfig.ClientConfig()
542 542
 		if err == nil {
543
-			if url, _, err := client.DefaultServerURL(config.Host, "", unversioned.GroupVersion{}, true); err == nil {
543
+			if url, _, err := restclient.DefaultServerURL(config.Host, "", unversioned.GroupVersion{}, true); err == nil {
544 544
 				if url.Host == hook.Host && url.Scheme == hook.Scheme {
545
-					if rt, err := client.TransportFor(config); err == nil {
545
+					if rt, err := restclient.TransportFor(config); err == nil {
546 546
 						httpClient = &http.Client{Transport: rt}
547 547
 					}
548 548
 				}
... ...
@@ -12,7 +12,7 @@ import (
12 12
 	"strings"
13 13
 	"testing"
14 14
 
15
-	client "k8s.io/kubernetes/pkg/client/unversioned"
15
+	"k8s.io/kubernetes/pkg/client/restclient"
16 16
 	clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
17 17
 
18 18
 	buildapi "github.com/openshift/origin/pkg/build/api"
... ...
@@ -21,7 +21,7 @@ import (
21 21
 
22 22
 type FakeClientConfig struct {
23 23
 	Raw      clientcmdapi.Config
24
-	Client   *client.Config
24
+	Client   *restclient.Config
25 25
 	NS       string
26 26
 	Explicit bool
27 27
 	Err      error
... ...
@@ -33,7 +33,7 @@ func (c *FakeClientConfig) RawConfig() (clientcmdapi.Config, error) {
33 33
 }
34 34
 
35 35
 // ClientConfig returns a complete client config
36
-func (c *FakeClientConfig) ClientConfig() (*client.Config, error) {
36
+func (c *FakeClientConfig) ClientConfig() (*restclient.Config, error) {
37 37
 	return c.Client, c.Err
38 38
 }
39 39
 
... ...
@@ -4,12 +4,15 @@ import (
4 4
 	"bufio"
5 5
 	"fmt"
6 6
 	"io"
7
+	"os"
7 8
 	"strings"
8 9
 
9 10
 	"github.com/spf13/cobra"
10 11
 	kcmd "k8s.io/kubernetes/pkg/kubectl/cmd"
12
+	"k8s.io/kubernetes/pkg/kubectl/cmd/config"
11 13
 	kvalidation "k8s.io/kubernetes/pkg/util/validation"
12 14
 
15
+	cmdconfig "github.com/openshift/origin/pkg/cmd/cli/config"
13 16
 	"github.com/openshift/origin/pkg/cmd/cli/describe"
14 17
 	"github.com/openshift/origin/pkg/cmd/util/clientcmd"
15 18
 )
... ...
@@ -146,13 +149,16 @@ JSON and YAML formats are accepted.`
146 146
 )
147 147
 
148 148
 // NewCmdCreate is a wrapper for the Kubernetes cli create command
149
-func NewCmdCreate(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Command {
149
+func NewCmdCreate(parentName string, f *clientcmd.Factory, out io.Writer) *cobra.Command {
150 150
 	cmd := kcmd.NewCmdCreate(f.Factory, out)
151 151
 	cmd.Long = createLong
152
-	cmd.Example = fmt.Sprintf(createExample, fullName)
152
+	cmd.Example = fmt.Sprintf(createExample, parentName)
153 153
 
154 154
 	// create subcommands
155
-	cmd.AddCommand(NewCmdCreateRoute(fullName, f, out))
155
+	cmd.AddCommand(NewCmdCreateRoute(parentName, f, out))
156
+
157
+	adjustCmdExamples(cmd, parentName, "create")
158
+
156 159
 	return cmd
157 160
 }
158 161
 
... ...
@@ -552,3 +558,54 @@ func NewCmdEdit(fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Com
552 552
 	cmd.Example = fmt.Sprintf(editExample, fullName)
553 553
 	return cmd
554 554
 }
555
+
556
+const (
557
+	configLong = `
558
+Manage the client config files
559
+
560
+The client stores configuration in the current user's home directory (under the .kube directory as
561
+config). When you login the first time, a new config file is created, and subsequent project changes with the
562
+'project' command will set the current context. These subcommands allow you to manage the config directly.
563
+
564
+Reference: https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/kubeconfig-file.md`
565
+
566
+	configExample = `  # Change the config context to use
567
+  %[1]s %[2]s use-context my-context
568
+
569
+  # Set the value of a config preference
570
+  %[1]s %[2]s set preferences.some true`
571
+)
572
+
573
+func NewCmdConfig(parentName, name string) *cobra.Command {
574
+	pathOptions := &config.PathOptions{
575
+		GlobalFile:       cmdconfig.RecommendedHomeFile,
576
+		EnvVar:           cmdconfig.OpenShiftConfigPathEnvVar,
577
+		ExplicitFileFlag: cmdconfig.OpenShiftConfigFlagName,
578
+
579
+		GlobalFileSubpath: cmdconfig.OpenShiftConfigHomeDirFileName,
580
+
581
+		LoadingRules: cmdconfig.NewOpenShiftClientConfigLoadingRules(),
582
+	}
583
+	pathOptions.LoadingRules.DoNotResolvePaths = true
584
+
585
+	cmd := config.NewCmdConfig(pathOptions, os.Stdout)
586
+	cmd.Short = "Change configuration files for the client"
587
+	cmd.Long = configLong
588
+	cmd.Example = fmt.Sprintf(configExample, parentName, name)
589
+	adjustCmdExamples(cmd, parentName, name)
590
+	return cmd
591
+}
592
+
593
+func adjustCmdExamples(cmd *cobra.Command, parentName string, name string) {
594
+	for _, subCmd := range cmd.Commands() {
595
+		adjustCmdExamples(subCmd, parentName, cmd.Name())
596
+	}
597
+	cmd.Example = strings.Replace(cmd.Example, "kubectl", parentName, -1)
598
+	tabbing := "  "
599
+	examples := []string{}
600
+	scanner := bufio.NewScanner(strings.NewReader(cmd.Example))
601
+	for scanner.Scan() {
602
+		examples = append(examples, tabbing+strings.TrimSpace(scanner.Text()))
603
+	}
604
+	cmd.Example = strings.Join(examples, "\n")
605
+}
... ...
@@ -6,7 +6,7 @@ import (
6 6
 	"reflect"
7 7
 	"strings"
8 8
 
9
-	client "k8s.io/kubernetes/pkg/client/unversioned"
9
+	"k8s.io/kubernetes/pkg/client/restclient"
10 10
 	clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
11 11
 	"k8s.io/kubernetes/third_party/golang/netutil"
12 12
 
... ...
@@ -15,7 +15,7 @@ import (
15 15
 )
16 16
 
17 17
 // GetClusterNicknameFromConfig returns host:port of the clientConfig.Host, with .'s replaced by -'s
18
-func GetClusterNicknameFromConfig(clientCfg *client.Config) (string, error) {
18
+func GetClusterNicknameFromConfig(clientCfg *restclient.Config) (string, error) {
19 19
 	return GetClusterNicknameFromURL(clientCfg.Host)
20 20
 }
21 21
 
... ...
@@ -33,7 +33,7 @@ func GetClusterNicknameFromURL(apiServerLocation string) (string, error) {
33 33
 
34 34
 // GetUserNicknameFromConfig returns "username(as known by the server)/GetClusterNicknameFromConfig".  This allows tab completion for switching users to
35 35
 // work easily and obviously.
36
-func GetUserNicknameFromConfig(clientCfg *client.Config) (string, error) {
36
+func GetUserNicknameFromConfig(clientCfg *restclient.Config) (string, error) {
37 37
 	client, err := osclient.New(clientCfg)
38 38
 	if err != nil {
39 39
 		return "", err
... ...
@@ -63,7 +63,7 @@ func GetUserNicknameFromCert(clusterNick string, chain ...*x509.Certificate) (st
63 63
 // GetContextNicknameFromConfig returns "namespace/GetClusterNicknameFromConfig/username(as known by the server)".  This allows tab completion for switching projects/context
64 64
 // to work easily.  First tab is the most selective on project.  Second stanza in the next most selective on cluster name.  The chances of a user trying having
65 65
 // one projects on a single server that they want to operate against with two identities is low, so username is last.
66
-func GetContextNicknameFromConfig(namespace string, clientCfg *client.Config) (string, error) {
66
+func GetContextNicknameFromConfig(namespace string, clientCfg *restclient.Config) (string, error) {
67 67
 	client, err := osclient.New(clientCfg)
68 68
 	if err != nil {
69 69
 		return "", err
... ...
@@ -87,7 +87,7 @@ func GetContextNickname(namespace, clusterNick, userNick string) string {
87 87
 }
88 88
 
89 89
 // CreateConfig takes a clientCfg and builds a config (kubeconfig style) from it.
90
-func CreateConfig(namespace string, clientCfg *client.Config) (*clientcmdapi.Config, error) {
90
+func CreateConfig(namespace string, clientCfg *restclient.Config) (*clientcmdapi.Config, error) {
91 91
 	clusterNick, err := GetClusterNicknameFromConfig(clientCfg)
92 92
 	if err != nil {
93 93
 		return nil, err
... ...
@@ -9,6 +9,7 @@ import (
9 9
 	"github.com/spf13/cobra"
10 10
 
11 11
 	kapi "k8s.io/kubernetes/pkg/api"
12
+	"k8s.io/kubernetes/pkg/client/restclient"
12 13
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
13 14
 	"k8s.io/kubernetes/pkg/kubectl"
14 15
 
... ...
@@ -51,7 +52,7 @@ func NewCommandDeployer(name string) *cobra.Command {
51 51
 				glog.Fatal("namespace is required")
52 52
 			}
53 53
 
54
-			kcfg, err := kclient.InClusterConfig()
54
+			kcfg, err := restclient.InClusterConfig()
55 55
 			if err != nil {
56 56
 				glog.Fatal(err)
57 57
 			}
... ...
@@ -10,6 +10,7 @@ import (
10 10
 	"time"
11 11
 
12 12
 	"k8s.io/kubernetes/pkg/api/unversioned"
13
+	"k8s.io/kubernetes/pkg/client/restclient"
13 14
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
14 15
 	"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
15 16
 	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
... ...
@@ -285,7 +286,7 @@ func GetNodeFileReferences(config *NodeConfig) []*string {
285 285
 
286 286
 // TODO: clients should be copied and instantiated from a common client config, tweaked, then
287 287
 // given to individual controllers and other infrastructure components.
288
-func GetKubeClient(kubeConfigFile string) (*kclient.Client, *kclient.Config, error) {
288
+func GetKubeClient(kubeConfigFile string) (*kclient.Client, *restclient.Config, error) {
289 289
 	loadingRules := &clientcmd.ClientConfigLoadingRules{}
290 290
 	loadingRules.ExplicitPath = kubeConfigFile
291 291
 	loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{})
... ...
@@ -311,7 +312,7 @@ func GetKubeClient(kubeConfigFile string) (*kclient.Client, *kclient.Config, err
311 311
 
312 312
 // TODO: clients should be copied and instantiated from a common client config, tweaked, then
313 313
 // given to individual controllers and other infrastructure components.
314
-func GetOpenShiftClient(kubeConfigFile string) (*client.Client, *kclient.Config, error) {
314
+func GetOpenShiftClient(kubeConfigFile string) (*client.Client, *restclient.Config, error) {
315 315
 	loadingRules := &clientcmd.ClientConfigLoadingRules{}
316 316
 	loadingRules.ExplicitPath = kubeConfigFile
317 317
 	loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{})
... ...
@@ -12,7 +12,7 @@ import (
12 12
 	"github.com/golang/glog"
13 13
 	"golang.org/x/net/context"
14 14
 
15
-	client "k8s.io/kubernetes/pkg/client/unversioned"
15
+	"k8s.io/kubernetes/pkg/client/restclient"
16 16
 	etcdutil "k8s.io/kubernetes/pkg/storage/etcd/util"
17 17
 	knet "k8s.io/kubernetes/pkg/util/net"
18 18
 
... ...
@@ -36,8 +36,8 @@ func GetAndTestEtcdClient(etcdClientInfo configapi.EtcdConnectionInfo) (*etcdcli
36 36
 
37 37
 // EtcdClient creates an etcd client based on the provided config.
38 38
 func EtcdClient(etcdClientInfo configapi.EtcdConnectionInfo) (*etcdclient.Client, error) {
39
-	tlsConfig, err := client.TLSConfigFor(&client.Config{
40
-		TLSClientConfig: client.TLSClientConfig{
39
+	tlsConfig, err := restclient.TLSConfigFor(&restclient.Config{
40
+		TLSClientConfig: restclient.TLSClientConfig{
41 41
 			CertFile: etcdClientInfo.ClientCert.CertFile,
42 42
 			KeyFile:  etcdClientInfo.ClientCert.KeyFile,
43 43
 			CAFile:   etcdClientInfo.CA,
... ...
@@ -67,8 +67,8 @@ func EtcdClient(etcdClientInfo configapi.EtcdConnectionInfo) (*etcdclient.Client
67 67
 
68 68
 // MakeNewEtcdClient creates an etcd client based on the provided config.
69 69
 func MakeNewEtcdClient(etcdClientInfo configapi.EtcdConnectionInfo) (newetcdclient.Client, error) {
70
-	tlsConfig, err := client.TLSConfigFor(&client.Config{
71
-		TLSClientConfig: client.TLSClientConfig{
70
+	tlsConfig, err := restclient.TLSConfigFor(&restclient.Config{
71
+		TLSClientConfig: restclient.TLSClientConfig{
72 72
 			CertFile: etcdClientInfo.ClientCert.CertFile,
73 73
 			KeyFile:  etcdClientInfo.ClientCert.KeyFile,
74 74
 			CAFile:   etcdClientInfo.CA,
... ...
@@ -11,7 +11,7 @@ import (
11 11
 	"k8s.io/kubernetes/pkg/auth/authenticator"
12 12
 	kauthorizer "k8s.io/kubernetes/pkg/auth/authorizer"
13 13
 	"k8s.io/kubernetes/pkg/auth/user"
14
-	client "k8s.io/kubernetes/pkg/client/unversioned"
14
+	"k8s.io/kubernetes/pkg/client/restclient"
15 15
 
16 16
 	oauthenticator "github.com/openshift/origin/pkg/auth/authenticator"
17 17
 	"github.com/openshift/origin/pkg/auth/authenticator/anonymous"
... ...
@@ -30,7 +30,7 @@ import (
30 30
 	"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
31 31
 )
32 32
 
33
-func newAuthenticator(clientCAs *x509.CertPool, anonymousConfig client.Config, cacheTTL time.Duration, cacheSize int) (authenticator.Request, error) {
33
+func newAuthenticator(clientCAs *x509.CertPool, anonymousConfig restclient.Config, cacheTTL time.Duration, cacheSize int) (authenticator.Request, error) {
34 34
 	authenticators := []oauthenticator.Request{}
35 35
 
36 36
 	// API token auth
... ...
@@ -4,14 +4,15 @@ import (
4 4
 	"fmt"
5 5
 	"net/url"
6 6
 
7
+	"k8s.io/kubernetes/pkg/client/restclient"
8
+
7 9
 	restful "github.com/emicklei/go-restful"
8
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
9 10
 
10 11
 	"github.com/openshift/origin/pkg/util/httpproxy"
11 12
 )
12 13
 
13 14
 type ProxyConfig struct {
14
-	ClientConfig *kclient.Config
15
+	ClientConfig *restclient.Config
15 16
 }
16 17
 
17 18
 func (c *ProxyConfig) InstallAPI(container *restful.Container) ([]string, error) {
... ...
@@ -22,6 +22,7 @@ import (
22 22
 	"k8s.io/kubernetes/pkg/apimachinery/registered"
23 23
 	v1beta1extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
24 24
 	"k8s.io/kubernetes/pkg/apiserver"
25
+	"k8s.io/kubernetes/pkg/client/restclient"
25 26
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
26 27
 	"k8s.io/kubernetes/pkg/genericapiserver"
27 28
 	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
... ...
@@ -355,11 +356,11 @@ func (c *MasterConfig) GetRestStorage() map[string]rest.Storage {
355 355
 	}
356 356
 
357 357
 	// TODO: allow the system CAs and the local CAs to be joined together.
358
-	importTransport, err := kclient.TransportFor(&kclient.Config{})
358
+	importTransport, err := restclient.TransportFor(&restclient.Config{})
359 359
 	if err != nil {
360 360
 		glog.Fatalf("Unable to configure a default transport for importing: %v", err)
361 361
 	}
362
-	insecureImportTransport, err := kclient.TransportFor(&kclient.Config{Insecure: true})
362
+	insecureImportTransport, err := restclient.TransportFor(&restclient.Config{Insecure: true})
363 363
 	if err != nil {
364 364
 		glog.Fatalf("Unable to configure a default transport for importing: %v", err)
365 365
 	}
... ...
@@ -634,7 +635,7 @@ func (c *MasterConfig) defaultAPIGroupVersion() *apiserver.APIGroupVersion {
634 634
 
635 635
 		Admit:                       c.AdmissionControl,
636 636
 		Context:                     c.getRequestContextMapper(),
637
-		NonDefaultGroupVersionKinds: map[string]unversioned.GroupVersionKind{},
637
+		SubresourceGroupVersionKind: map[string]unversioned.GroupVersionKind{},
638 638
 	}
639 639
 }
640 640
 
... ...
@@ -653,7 +654,7 @@ func (c *MasterConfig) api_v1beta3(all map[string]rest.Storage) *apiserver.APIGr
653 653
 	version.GroupVersion = v1beta3.SchemeGroupVersion
654 654
 	version.Serializer = kapi.Codecs
655 655
 	version.ParameterCodec = runtime.NewParameterCodec(kapi.Scheme)
656
-	version.NonDefaultGroupVersionKinds["deploymentconfigs/scale"] = v1beta1extensions.SchemeGroupVersion.WithKind("Scale")
656
+	version.SubresourceGroupVersionKind["deploymentconfigs/scale"] = v1beta1extensions.SchemeGroupVersion.WithKind("Scale")
657 657
 	return version
658 658
 }
659 659
 
... ...
@@ -671,7 +672,7 @@ func (c *MasterConfig) api_v1(all map[string]rest.Storage) *apiserver.APIGroupVe
671 671
 	version.GroupVersion = v1.SchemeGroupVersion
672 672
 	version.Serializer = kapi.Codecs
673 673
 	version.ParameterCodec = runtime.NewParameterCodec(kapi.Scheme)
674
-	version.NonDefaultGroupVersionKinds["deploymentconfigs/scale"] = v1beta1extensions.SchemeGroupVersion.WithKind("Scale")
674
+	version.SubresourceGroupVersionKind["deploymentconfigs/scale"] = v1beta1extensions.SchemeGroupVersion.WithKind("Scale")
675 675
 	return version
676 676
 }
677 677
 
... ...
@@ -15,6 +15,7 @@ import (
15 15
 	kapi "k8s.io/kubernetes/pkg/api"
16 16
 	"k8s.io/kubernetes/pkg/api/unversioned"
17 17
 	"k8s.io/kubernetes/pkg/apiserver"
18
+	"k8s.io/kubernetes/pkg/client/restclient"
18 19
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
19 20
 	sacontroller "k8s.io/kubernetes/pkg/controller/serviceaccount"
20 21
 	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
... ...
@@ -112,7 +113,7 @@ type MasterConfig struct {
112 112
 
113 113
 	// PrivilegedLoopbackClientConfig is the client configuration used to call OpenShift APIs from system components
114 114
 	// To apply different access control to a system component, create a client config specifically for that component.
115
-	PrivilegedLoopbackClientConfig kclient.Config
115
+	PrivilegedLoopbackClientConfig restclient.Config
116 116
 
117 117
 	// PrivilegedLoopbackKubernetesClient is the client used to call Kubernetes APIs from system components,
118 118
 	// built from KubeClientConfig. It should only be accessed via the *Client() helper methods. To apply
... ...
@@ -6,7 +6,7 @@ import (
6 6
 
7 7
 	"github.com/spf13/pflag"
8 8
 
9
-	client "k8s.io/kubernetes/pkg/client/unversioned"
9
+	"k8s.io/kubernetes/pkg/client/restclient"
10 10
 	"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
11 11
 
12 12
 	"github.com/openshift/origin/pkg/cmd/flagtypes"
... ...
@@ -50,7 +50,7 @@ func (args KubeConnectionArgs) Validate() error {
50 50
 	return nil
51 51
 }
52 52
 
53
-func (args KubeConnectionArgs) GetExternalKubernetesClientConfig() (*client.Config, bool, error) {
53
+func (args KubeConnectionArgs) GetExternalKubernetesClientConfig() (*restclient.Config, bool, error) {
54 54
 	if len(args.ClientConfigLoadingRules.ExplicitPath) == 0 || args.ClientConfig == nil {
55 55
 		return nil, false, nil
56 56
 	}
... ...
@@ -11,14 +11,14 @@ import (
11 11
 
12 12
 	kapi "k8s.io/kubernetes/pkg/api"
13 13
 	"k8s.io/kubernetes/pkg/api/unversioned"
14
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
14
+	"k8s.io/kubernetes/pkg/client/typed/discovery"
15 15
 	"k8s.io/kubernetes/pkg/runtime"
16 16
 )
17 17
 
18 18
 // CachedDiscoveryClient implements the functions that dicovery server-supported API groups,
19 19
 // versions and resources.
20 20
 type CachedDiscoveryClient struct {
21
-	kclient.DiscoveryInterface
21
+	discovery.DiscoveryInterface
22 22
 
23 23
 	// cacheDirectory is the directory where discovery docs are held.  It must be unique per host:port combination to work well.
24 24
 	cacheDirectory string
... ...
@@ -58,7 +58,7 @@ func (d *CachedDiscoveryClient) ServerResources() (map[string]*unversioned.APIRe
58 58
 	if err != nil {
59 59
 		return nil, err
60 60
 	}
61
-	groupVersions := kclient.ExtractGroupVersions(apiGroups)
61
+	groupVersions := unversioned.ExtractGroupVersions(apiGroups)
62 62
 	result := map[string]*unversioned.APIResourceList{}
63 63
 	for _, groupVersion := range groupVersions {
64 64
 		resources, err := d.ServerResourcesForGroupVersion(groupVersion)
... ...
@@ -131,6 +131,6 @@ func (d *CachedDiscoveryClient) writeCachedFile(filename string, obj runtime.Obj
131 131
 }
132 132
 
133 133
 // NewCachedDiscoveryClient creates a new DiscoveryClient.  cacheDirectory is the directory where discovery docs are held.  It must be unique per host:port combination to work well.
134
-func NewCachedDiscoveryClient(delegate kclient.DiscoveryInterface, cacheDirectory string, ttl time.Duration) *CachedDiscoveryClient {
134
+func NewCachedDiscoveryClient(delegate discovery.DiscoveryInterface, cacheDirectory string, ttl time.Duration) *CachedDiscoveryClient {
135 135
 	return &CachedDiscoveryClient{DiscoveryInterface: delegate, cacheDirectory: cacheDirectory, ttl: ttl}
136 136
 }
... ...
@@ -8,6 +8,7 @@ import (
8 8
 	"github.com/golang/glog"
9 9
 	"github.com/spf13/pflag"
10 10
 	"k8s.io/kubernetes/pkg/api"
11
+	"k8s.io/kubernetes/pkg/client/restclient"
11 12
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
12 13
 	"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
13 14
 
... ...
@@ -26,7 +27,7 @@ type Config struct {
26 26
 	// If omitted defaults to the master.
27 27
 	KubernetesAddr flagtypes.Addr
28 28
 	// CommonConfig is the shared base config for both the OpenShift config and Kubernetes config
29
-	CommonConfig kclient.Config
29
+	CommonConfig restclient.Config
30 30
 	// Namespace is the namespace to act in
31 31
 	Namespace string
32 32
 
... ...
@@ -42,20 +43,20 @@ func NewConfig() *Config {
42 42
 	return &Config{
43 43
 		MasterAddr:     flagtypes.Addr{Value: "localhost:8080", DefaultScheme: "http", DefaultPort: 8080, AllowPrefix: true}.Default(),
44 44
 		KubernetesAddr: flagtypes.Addr{Value: "localhost:8080", DefaultScheme: "http", DefaultPort: 8080}.Default(),
45
-		CommonConfig:   kclient.Config{},
45
+		CommonConfig:   restclient.Config{},
46 46
 	}
47 47
 }
48 48
 
49 49
 // AnonymousClientConfig returns a copy of the given config with all user credentials (cert/key, bearer token, and username/password) removed
50
-func AnonymousClientConfig(config *kclient.Config) kclient.Config {
50
+func AnonymousClientConfig(config *restclient.Config) restclient.Config {
51 51
 	// copy only known safe fields
52 52
 	// TODO: expose a copy method on the config that is "auth free"
53
-	return kclient.Config{
53
+	return restclient.Config{
54 54
 		Host:          config.Host,
55 55
 		APIPath:       config.APIPath,
56 56
 		Prefix:        config.Prefix,
57 57
 		ContentConfig: config.ContentConfig,
58
-		TLSClientConfig: kclient.TLSClientConfig{
58
+		TLSClientConfig: restclient.TLSClientConfig{
59 59
 			CAFile: config.TLSClientConfig.CAFile,
60 60
 			CAData: config.TLSClientConfig.CAData,
61 61
 		},
... ...
@@ -69,7 +70,7 @@ func AnonymousClientConfig(config *kclient.Config) kclient.Config {
69 69
 }
70 70
 
71 71
 // BindClientConfigSecurityFlags adds flags for the supplied client config
72
-func BindClientConfigSecurityFlags(config *kclient.Config, flags *pflag.FlagSet) {
72
+func BindClientConfigSecurityFlags(config *restclient.Config, flags *pflag.FlagSet) {
73 73
 	flags.BoolVar(&config.Insecure, "insecure-skip-tls-verify", config.Insecure, "If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure.")
74 74
 	flags.StringVar(&config.CertFile, "client-certificate", config.CertFile, "Path to a client certificate file for TLS.")
75 75
 	flags.StringVar(&config.KeyFile, "client-key", config.KeyFile, "Path to a client key file for TLS.")
... ...
@@ -195,7 +196,7 @@ func (cfg *Config) bindEnv() error {
195 195
 }
196 196
 
197 197
 // KubeConfig returns the Kubernetes configuration
198
-func (cfg *Config) KubeConfig() *kclient.Config {
198
+func (cfg *Config) KubeConfig() *restclient.Config {
199 199
 	err := cfg.bindEnv()
200 200
 	if err != nil {
201 201
 		glog.Error(err)
... ...
@@ -213,7 +214,7 @@ func (cfg *Config) KubeConfig() *kclient.Config {
213 213
 }
214 214
 
215 215
 // OpenShiftConfig returns the OpenShift configuration
216
-func (cfg *Config) OpenShiftConfig() *kclient.Config {
216
+func (cfg *Config) OpenShiftConfig() *restclient.Config {
217 217
 	err := cfg.bindEnv()
218 218
 	if err != nil {
219 219
 		glog.Error(err)
... ...
@@ -7,7 +7,7 @@ import (
7 7
 
8 8
 	fuzz "github.com/google/gofuzz"
9 9
 
10
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
10
+	"k8s.io/kubernetes/pkg/client/restclient"
11 11
 	"k8s.io/kubernetes/pkg/runtime"
12 12
 	"k8s.io/kubernetes/pkg/util"
13 13
 )
... ...
@@ -20,13 +20,13 @@ func TestAnonymousConfig(t *testing.T) {
20 20
 		func(fn *func(http.RoundTripper) http.RoundTripper, f fuzz.Continue) {},
21 21
 	)
22 22
 	for i := 0; i < 20; i++ {
23
-		original := &kclient.Config{}
23
+		original := &restclient.Config{}
24 24
 		f.Fuzz(original)
25 25
 		actual := AnonymousClientConfig(original)
26 26
 		expected := *original
27 27
 
28 28
 		// this is the list of known security related fields, add to this list if a new field
29
-		// is added to client.Config, update AnonymousClientConfig to preserve the field otherwise.
29
+		// is added to restclient.Config, update AnonymousClientConfig to preserve the field otherwise.
30 30
 		expected.BearerToken = ""
31 31
 		expected.Username = ""
32 32
 		expected.Password = ""
... ...
@@ -22,6 +22,7 @@ import (
22 22
 	"k8s.io/kubernetes/pkg/api/meta"
23 23
 	"k8s.io/kubernetes/pkg/api/unversioned"
24 24
 	"k8s.io/kubernetes/pkg/apimachinery/registered"
25
+	"k8s.io/kubernetes/pkg/client/restclient"
25 26
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
26 27
 	kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
27 28
 	kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
... ...
@@ -109,7 +110,7 @@ func (c defaultingClientConfig) Namespace() (string, bool, error) {
109 109
 }
110 110
 
111 111
 // ClientConfig returns a complete client config
112
-func (c defaultingClientConfig) ClientConfig() (*kclient.Config, error) {
112
+func (c defaultingClientConfig) ClientConfig() (*restclient.Config, error) {
113 113
 	cfg, err := c.nested.ClientConfig()
114 114
 	if err == nil {
115 115
 		return cfg, nil
... ...
@@ -120,7 +121,7 @@ func (c defaultingClientConfig) ClientConfig() (*kclient.Config, error) {
120 120
 	}
121 121
 
122 122
 	// TODO: need to expose inClusterConfig upstream and use that
123
-	if icc, err := kclient.InClusterConfig(); err == nil {
123
+	if icc, err := restclient.InClusterConfig(); err == nil {
124 124
 		glog.V(4).Infof("Using in-cluster configuration")
125 125
 		return icc, nil
126 126
 	}
... ...
@@ -173,7 +174,7 @@ func NewFactory(clientConfig kclientcmd.ClientConfig) *Factory {
173 173
 
174 174
 	clients := &clientCache{
175 175
 		clients: make(map[string]*client.Client),
176
-		configs: make(map[string]*kclient.Config),
176
+		configs: make(map[string]*restclient.Config),
177 177
 		loader:  clientConfig,
178 178
 	}
179 179
 
... ...
@@ -339,7 +340,7 @@ func NewFactory(clientConfig kclientcmd.ClientConfig) *Factory {
339 339
 		}
340 340
 	}
341 341
 	kLogsForObjectFunc := w.Factory.LogsForObject
342
-	w.LogsForObject = func(object, options runtime.Object) (*kclient.Request, error) {
342
+	w.LogsForObject = func(object, options runtime.Object) (*restclient.Request, error) {
343 343
 		oc, _, err := w.Clients()
344 344
 		if err != nil {
345 345
 			return nil, err
... ...
@@ -596,7 +597,7 @@ func (f *Factory) Clients() (*client.Client, *kclient.Client, error) {
596 596
 }
597 597
 
598 598
 // OriginSwaggerSchema returns a swagger API doc for an Origin schema under the /oapi prefix.
599
-func (f *Factory) OriginSwaggerSchema(client *kclient.RESTClient, version unversioned.GroupVersion) (*swagger.ApiDeclaration, error) {
599
+func (f *Factory) OriginSwaggerSchema(client *restclient.RESTClient, version unversioned.GroupVersion) (*swagger.ApiDeclaration, error) {
600 600
 	if version.IsEmpty() {
601 601
 		return nil, fmt.Errorf("groupVersion cannot be empty")
602 602
 	}
... ...
@@ -618,14 +619,14 @@ func (f *Factory) OriginSwaggerSchema(client *kclient.RESTClient, version unvers
618 618
 type clientCache struct {
619 619
 	loader        kclientcmd.ClientConfig
620 620
 	clients       map[string]*client.Client
621
-	configs       map[string]*kclient.Config
622
-	defaultConfig *kclient.Config
621
+	configs       map[string]*restclient.Config
622
+	defaultConfig *restclient.Config
623 623
 	// negotiatingClient is used only for negotiating versions with the server.
624 624
 	negotiatingClient *kclient.Client
625 625
 }
626 626
 
627 627
 // ClientConfigForVersion returns the correct config for a server
628
-func (c *clientCache) ClientConfigForVersion(version *unversioned.GroupVersion) (*kclient.Config, error) {
628
+func (c *clientCache) ClientConfigForVersion(version *unversioned.GroupVersion) (*restclient.Config, error) {
629 629
 	if c.defaultConfig == nil {
630 630
 		config, err := c.loader.ClientConfig()
631 631
 		if err != nil {
... ...
@@ -5,7 +5,7 @@ import (
5 5
 	"net/http/httptest"
6 6
 	"testing"
7 7
 
8
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
8
+	"k8s.io/kubernetes/pkg/client/restclient"
9 9
 
10 10
 	"github.com/openshift/origin/pkg/api/v1"
11 11
 	"github.com/openshift/origin/pkg/api/v1beta3"
... ...
@@ -24,12 +24,12 @@ func TestClientConfigForVersion(t *testing.T) {
24 24
 	}))
25 25
 	defer server.Close()
26 26
 
27
-	defaultConfig := &kclient.Config{Host: server.URL}
27
+	defaultConfig := &restclient.Config{Host: server.URL}
28 28
 	client.SetOpenShiftDefaults(defaultConfig)
29 29
 
30 30
 	clients := &clientCache{
31 31
 		clients:       make(map[string]*client.Client),
32
-		configs:       make(map[string]*kclient.Config),
32
+		configs:       make(map[string]*restclient.Config),
33 33
 		defaultConfig: defaultConfig,
34 34
 	}
35 35
 
... ...
@@ -5,6 +5,7 @@ import (
5 5
 	"fmt"
6 6
 
7 7
 	"k8s.io/kubernetes/pkg/api/unversioned"
8
+	"k8s.io/kubernetes/pkg/client/restclient"
8 9
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
9 10
 )
10 11
 
... ...
@@ -14,7 +15,7 @@ import (
14 14
 //   commandline flag), and is unsupported by the server, print a warning to
15 15
 //   stderr and try client's registered versions in order of preference.
16 16
 // - If version is config default, and the server does not support it, return an error.
17
-func negotiateVersion(client *kclient.Client, config *kclient.Config, requestedGV *unversioned.GroupVersion, clientGVs []unversioned.GroupVersion) (*unversioned.GroupVersion, error) {
17
+func negotiateVersion(client *kclient.Client, config *restclient.Config, requestedGV *unversioned.GroupVersion, clientGVs []unversioned.GroupVersion) (*unversioned.GroupVersion, error) {
18 18
 	// Ensure we have a client
19 19
 	var err error
20 20
 	if client == nil {
... ...
@@ -3,7 +3,7 @@ package clientcmd
3 3
 import (
4 4
 	"k8s.io/kubernetes/pkg/api/meta"
5 5
 	"k8s.io/kubernetes/pkg/api/unversioned"
6
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
6
+	"k8s.io/kubernetes/pkg/client/typed/discovery"
7 7
 )
8 8
 
9 9
 // ShortcutExpander is a RESTMapper that can be used for OpenShift resources.   It expands the resource first, then invokes the wrapped
... ...
@@ -15,7 +15,7 @@ type ShortcutExpander struct {
15 15
 
16 16
 var _ meta.RESTMapper = &ShortcutExpander{}
17 17
 
18
-func NewShortcutExpander(discoveryClient kclient.DiscoveryInterface, delegate meta.RESTMapper) ShortcutExpander {
18
+func NewShortcutExpander(discoveryClient discovery.DiscoveryInterface, delegate meta.RESTMapper) ShortcutExpander {
19 19
 	defaultMapper := ShortcutExpander{RESTMapper: delegate}
20 20
 
21 21
 	// this assumes that legacy kube versions and legacy origin versions are the same, probably fair
... ...
@@ -65,10 +65,6 @@ func (e ShortcutExpander) ResourceFor(resource unversioned.GroupVersionResource)
65 65
 	return e.RESTMapper.ResourceFor(expandResourceShortcut(resource))
66 66
 }
67 67
 
68
-func (e ShortcutExpander) ResourceIsValid(resource unversioned.GroupVersionResource) bool {
69
-	return e.RESTMapper.ResourceIsValid(expandResourceShortcut(resource))
70
-}
71
-
72 68
 func (e ShortcutExpander) ResourceSingularizer(resource string) (string, error) {
73 69
 	return e.RESTMapper.ResourceSingularizer(expandResourceShortcut(unversioned.GroupVersionResource{Resource: resource}).Resource)
74 70
 }
... ...
@@ -3,7 +3,7 @@ package util_test
3 3
 import (
4 4
 	"testing"
5 5
 
6
-	kapi "k8s.io/kubernetes/pkg/api"
6
+	"k8s.io/kubernetes/pkg/apimachinery/registered"
7 7
 	"k8s.io/kubernetes/pkg/kubectl"
8 8
 
9 9
 	_ "github.com/openshift/origin/pkg/api/install"
... ...
@@ -12,7 +12,7 @@ import (
12 12
 )
13 13
 
14 14
 func TestResolveResource(t *testing.T) {
15
-	mapper := clientcmd.ShortcutExpander{RESTMapper: kubectl.ShortcutExpander{RESTMapper: kapi.RESTMapper}}
15
+	mapper := clientcmd.ShortcutExpander{RESTMapper: kubectl.ShortcutExpander{RESTMapper: registered.RESTMapper()}}
16 16
 
17 17
 	tests := []struct {
18 18
 		name             string
... ...
@@ -11,7 +11,7 @@ import (
11 11
 
12 12
 	apierrs "k8s.io/kubernetes/pkg/api/errors"
13 13
 	"k8s.io/kubernetes/pkg/api/unversioned"
14
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
14
+	"k8s.io/kubernetes/pkg/client/restclient"
15 15
 	"k8s.io/kubernetes/pkg/util/sets"
16 16
 )
17 17
 
... ...
@@ -21,7 +21,7 @@ const CSRFTokenHeader = "X-CSRF-Token"
21 21
 
22 22
 // RequestToken uses the cmd arguments to locate an openshift oauth server and attempts to authenticate
23 23
 // it returns the access token if it gets one.  An error if it does not
24
-func RequestToken(clientCfg *kclient.Config, reader io.Reader, defaultUsername string, defaultPassword string) (string, error) {
24
+func RequestToken(clientCfg *restclient.Config, reader io.Reader, defaultUsername string, defaultPassword string) (string, error) {
25 25
 	challengeHandler := &BasicChallengeHandler{
26 26
 		Host:     clientCfg.Host,
27 27
 		Reader:   reader,
... ...
@@ -29,7 +29,7 @@ func RequestToken(clientCfg *kclient.Config, reader io.Reader, defaultUsername s
29 29
 		Password: defaultPassword,
30 30
 	}
31 31
 
32
-	rt, err := kclient.TransportFor(clientCfg)
32
+	rt, err := restclient.TransportFor(clientCfg)
33 33
 	if err != nil {
34 34
 		return "", err
35 35
 	}
... ...
@@ -5,6 +5,8 @@ import (
5 5
 	"testing"
6 6
 
7 7
 	kapi "k8s.io/kubernetes/pkg/api"
8
+	// required to register defaulting functions for containers
9
+	_ "k8s.io/kubernetes/pkg/api/install"
8 10
 	kapiv1 "k8s.io/kubernetes/pkg/api/v1"
9 11
 	"k8s.io/kubernetes/pkg/runtime"
10 12
 	"k8s.io/kubernetes/pkg/util"
... ...
@@ -15,7 +15,7 @@ import (
15 15
 	"github.com/openshift/origin/pkg/cmd/util/clientcmd"
16 16
 	"github.com/openshift/origin/pkg/diagnostics/types"
17 17
 
18
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
18
+	"k8s.io/kubernetes/pkg/client/restclient"
19 19
 )
20 20
 
21 21
 const (
... ...
@@ -63,8 +63,8 @@ func (d PodCheckAuth) authenticateToMaster(token string, r types.DiagnosticResul
63 63
 	clientConfig := &clientcmd.Config{
64 64
 		MasterAddr:     flagtypes.Addr{Value: d.MasterUrl}.Default(),
65 65
 		KubernetesAddr: flagtypes.Addr{Value: d.MasterUrl}.Default(),
66
-		CommonConfig: kclient.Config{
67
-			TLSClientConfig: kclient.TLSClientConfig{CAFile: d.MasterCaPath},
66
+		CommonConfig: restclient.Config{
67
+			TLSClientConfig: restclient.TLSClientConfig{CAFile: d.MasterCaPath},
68 68
 			BearerToken:     token,
69 69
 		},
70 70
 	}
... ...
@@ -7,6 +7,7 @@ import (
7 7
 	"k8s.io/kubernetes/pkg/api"
8 8
 	"k8s.io/kubernetes/pkg/api/errors"
9 9
 	"k8s.io/kubernetes/pkg/client/cache"
10
+	"k8s.io/kubernetes/pkg/client/restclient"
10 11
 	client "k8s.io/kubernetes/pkg/client/unversioned"
11 12
 	"k8s.io/kubernetes/pkg/fields"
12 13
 	"k8s.io/kubernetes/pkg/watch"
... ...
@@ -124,6 +125,6 @@ func (a cachedServiceNamespacer) Delete(name string) error {
124 124
 func (a cachedServiceNamespacer) Watch(options api.ListOptions) (watch.Interface, error) {
125 125
 	return nil, fmt.Errorf("not implemented")
126 126
 }
127
-func (a cachedServiceNamespacer) ProxyGet(scheme, name, port, path string, params map[string]string) client.ResponseWrapper {
127
+func (a cachedServiceNamespacer) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {
128 128
 	return nil
129 129
 }
... ...
@@ -12,6 +12,7 @@ import (
12 12
 	registryauth "github.com/docker/distribution/registry/auth"
13 13
 
14 14
 	kerrors "k8s.io/kubernetes/pkg/api/errors"
15
+	"k8s.io/kubernetes/pkg/client/restclient"
15 16
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
16 17
 
17 18
 	authorizationapi "github.com/openshift/origin/pkg/authorization/api"
... ...
@@ -39,7 +40,7 @@ func (r *RegistryClient) Clients() (client.Interface, kclient.Interface, error)
39 39
 }
40 40
 
41 41
 // SafeClientConfig returns a client config without authentication info.
42
-func (r *RegistryClient) SafeClientConfig() kclient.Config {
42
+func (r *RegistryClient) SafeClientConfig() restclient.Config {
43 43
 	return clientcmd.AnonymousClientConfig(r.config.OpenShiftConfig())
44 44
 }
45 45
 
... ...
@@ -62,7 +63,7 @@ func UserClientFrom(ctx context.Context) (client.Interface, bool) {
62 62
 
63 63
 type AccessController struct {
64 64
 	realm  string
65
-	config kclient.Config
65
+	config restclient.Config
66 66
 }
67 67
 
68 68
 var _ registryauth.AccessController = &AccessController{}
... ...
@@ -12,7 +12,7 @@ import (
12 12
 
13 13
 	kapi "k8s.io/kubernetes/pkg/api"
14 14
 	"k8s.io/kubernetes/pkg/apimachinery/registered"
15
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
15
+	"k8s.io/kubernetes/pkg/client/restclient"
16 16
 	"k8s.io/kubernetes/pkg/runtime"
17 17
 
18 18
 	"github.com/docker/distribution/context"
... ...
@@ -66,7 +66,7 @@ func TestVerifyImageStreamAccess(t *testing.T) {
66 66
 	for _, test := range tests {
67 67
 		ctx := context.Background()
68 68
 		server, _ := simulateOpenShiftMaster([]response{test.openshiftResponse})
69
-		client, err := client.New(&kclient.Config{BearerToken: "magic bearer token", Host: server.URL})
69
+		client, err := client.New(&restclient.Config{BearerToken: "magic bearer token", Host: server.URL})
70 70
 		if err != nil {
71 71
 			t.Fatal(err)
72 72
 		}
... ...
@@ -278,7 +278,7 @@ func TestAccessController(t *testing.T) {
278 278
 
279 279
 		server, actions := simulateOpenShiftMaster(test.openshiftResponses)
280 280
 		DefaultRegistryClient = NewRegistryClient(&clientcmd.Config{
281
-			CommonConfig: kclient.Config{
281
+			CommonConfig: restclient.Config{
282 282
 				Host:     server.URL,
283 283
 				Insecure: true,
284 284
 			},
... ...
@@ -17,6 +17,7 @@ import (
17 17
 
18 18
 	kapi "k8s.io/kubernetes/pkg/api"
19 19
 	kerrors "k8s.io/kubernetes/pkg/api/errors"
20
+	"k8s.io/kubernetes/pkg/client/restclient"
20 21
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
21 22
 	"k8s.io/kubernetes/pkg/util/sets"
22 23
 
... ...
@@ -57,7 +58,7 @@ func init() {
57 57
 	)
58 58
 
59 59
 	secureTransport = http.DefaultTransport
60
-	insecureTransport, err = kclient.TransportFor(&kclient.Config{Insecure: true})
60
+	insecureTransport, err = restclient.TransportFor(&restclient.Config{Insecure: true})
61 61
 	if err != nil {
62 62
 		panic(fmt.Sprintf("Unable to configure a default transport for importing insecure images: %v", err))
63 63
 	}
... ...
@@ -8,7 +8,7 @@ import (
8 8
 	"path/filepath"
9 9
 
10 10
 	kapi "k8s.io/kubernetes/pkg/api"
11
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
11
+	"k8s.io/kubernetes/pkg/client/restclient"
12 12
 	kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
13 13
 	"k8s.io/kubernetes/pkg/util/errors"
14 14
 
... ...
@@ -72,9 +72,9 @@ func NewAutoLinkBuildsFromEnvironment() (*AutoLinkBuilds, error) {
72 72
 	return config, nil
73 73
 }
74 74
 
75
-func clientFromConfig(path string) (*kclient.Config, string, error) {
75
+func clientFromConfig(path string) (*restclient.Config, string, error) {
76 76
 	if path == "-" {
77
-		cfg, err := kclient.InClusterConfig()
77
+		cfg, err := restclient.InClusterConfig()
78 78
 		if err != nil {
79 79
 			return nil, "", fmt.Errorf("cluster config not available: %v", err)
80 80
 		}
... ...
@@ -3,7 +3,9 @@ package imagestreamimage
3 3
 import (
4 4
 	"testing"
5 5
 
6
-	goetcd "github.com/coreos/go-etcd/etcd"
6
+	"golang.org/x/net/context"
7
+
8
+	etcd "github.com/coreos/etcd/client"
7 9
 
8 10
 	kapi "k8s.io/kubernetes/pkg/api"
9 11
 	"k8s.io/kubernetes/pkg/api/v1"
... ...
@@ -34,10 +36,10 @@ func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx kapi.Con
34 34
 	return nil, nil
35 35
 }
36 36
 
37
-func setup(t *testing.T) (*goetcd.Client, *etcdtesting.EtcdTestServer, *REST) {
37
+func setup(t *testing.T) (etcd.KeysAPI, *etcdtesting.EtcdTestServer, *REST) {
38 38
 
39 39
 	etcdStorage, server := registrytest.NewEtcdStorage(t, "")
40
-	etcdClient := goetcd.NewClient(server.ClientURLs.StringSlice())
40
+	etcdClient := etcd.NewKeysAPI(server.Client)
41 41
 
42 42
 	imageStorage := imageetcd.NewREST(etcdStorage)
43 43
 	imageStreamStorage, imageStreamStatus, internalStorage := imagestreametcd.NewREST(etcdStorage, testDefaultRegistry, &fakeSubjectAccessReviewRegistry{})
... ...
@@ -248,14 +250,22 @@ func TestGet(t *testing.T) {
248 248
 		ctx := kapi.NewDefaultContext()
249 249
 		if test.repo != nil {
250 250
 			ctx = kapi.WithNamespace(kapi.NewContext(), test.repo.Namespace)
251
-			_, err := client.Create(etcdtest.AddPrefix("/imagestreams/"+test.repo.Namespace+"/"+test.repo.Name), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), test.repo), 0)
251
+			_, err := client.Create(
252
+				context.TODO(),
253
+				etcdtest.AddPrefix("/imagestreams/"+test.repo.Namespace+"/"+test.repo.Name),
254
+				runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), test.repo),
255
+			)
252 256
 			if err != nil {
253 257
 				t.Errorf("Unexpected error: %v", err)
254 258
 				continue
255 259
 			}
256 260
 		}
257 261
 		if test.image != nil {
258
-			_, err := client.Create(etcdtest.AddPrefix("/images/"+test.image.Name), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), test.image), 0)
262
+			_, err := client.Create(
263
+				context.TODO(),
264
+				etcdtest.AddPrefix("/images/"+test.image.Name),
265
+				runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), test.image),
266
+			)
259 267
 			if err != nil {
260 268
 				t.Errorf("Unexpected error: %v", err)
261 269
 				continue
... ...
@@ -7,7 +7,9 @@ import (
7 7
 	"strings"
8 8
 	"testing"
9 9
 
10
-	"github.com/coreos/go-etcd/etcd"
10
+	"golang.org/x/net/context"
11
+
12
+	etcd "github.com/coreos/etcd/client"
11 13
 
12 14
 	kapi "k8s.io/kubernetes/pkg/api"
13 15
 	"k8s.io/kubernetes/pkg/api/errors"
... ...
@@ -41,10 +43,10 @@ func (f *fakeSubjectAccessReviewRegistry) CreateSubjectAccessReview(ctx kapi.Con
41 41
 	return nil, nil
42 42
 }
43 43
 
44
-func setup(t *testing.T) (*etcd.Client, *etcdtesting.EtcdTestServer, *REST) {
44
+func setup(t *testing.T) (etcd.KeysAPI, *etcdtesting.EtcdTestServer, *REST) {
45 45
 
46 46
 	etcdStorage, server := registrytest.NewEtcdStorage(t, "")
47
-	etcdClient := etcd.NewClient(server.ClientURLs.StringSlice())
47
+	etcdClient := etcd.NewKeysAPI(server.Client)
48 48
 
49 49
 	imageStorage := imageetcd.NewREST(etcdStorage)
50 50
 	imageStreamStorage, imageStreamStatus, internalStorage := imagestreametcd.NewREST(etcdStorage, testDefaultRegistry, &fakeSubjectAccessReviewRegistry{})
... ...
@@ -145,7 +147,11 @@ func TestCreateSuccessWithName(t *testing.T) {
145 145
 		ObjectMeta: kapi.ObjectMeta{Namespace: "default", Name: "somerepo"},
146 146
 	}
147 147
 
148
-	_, err := client.Create(etcdtest.AddPrefix("/imagestreams/default/somerepo"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), initialRepo), 0)
148
+	_, err := client.Create(
149
+		context.TODO(),
150
+		etcdtest.AddPrefix("/imagestreams/default/somerepo"),
151
+		runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), initialRepo),
152
+	)
149 153
 	if err != nil {
150 154
 		t.Fatalf("Unexpected error: %v", err)
151 155
 	}
... ...
@@ -223,12 +229,19 @@ func TestAddExistingImageWithNewTag(t *testing.T) {
223 223
 	client, server, storage := setup(t)
224 224
 	defer server.Terminate(t)
225 225
 
226
-	_, err := client.Create(etcdtest.AddPrefix("/imagestreams/default/somerepo"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingRepo), 0)
226
+	_, err := client.Create(
227
+		context.TODO(),
228
+		etcdtest.AddPrefix("/imagestreams/default/somerepo"),
229
+		runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingRepo),
230
+	)
227 231
 	if err != nil {
228 232
 		t.Fatalf("Unexpected error: %v", err)
229 233
 	}
230 234
 
231
-	_, err = client.Create(etcdtest.AddPrefix("/images/default/"+imageID), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingImage), 0)
235
+	_, err = client.Create(
236
+		context.TODO(),
237
+		etcdtest.AddPrefix("/images/default/"+imageID), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingImage),
238
+	)
232 239
 	if err != nil {
233 240
 		t.Fatalf("Unexpected error: %v", err)
234 241
 	}
... ...
@@ -285,12 +298,20 @@ func TestAddExistingImageAndTag(t *testing.T) {
285 285
 	client, server, storage := setup(t)
286 286
 	defer server.Terminate(t)
287 287
 
288
-	_, err := client.Create(etcdtest.AddPrefix("/imagestreams/default/somerepo"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingRepo), 0)
288
+	_, err := client.Create(
289
+		context.TODO(),
290
+		etcdtest.AddPrefix("/imagestreams/default/somerepo"),
291
+		runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingRepo),
292
+	)
289 293
 	if err != nil {
290 294
 		t.Fatalf("Unexpected error: %v", err)
291 295
 	}
292 296
 
293
-	_, err = client.Create(etcdtest.AddPrefix("/images/default/existingImage"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingImage), 0)
297
+	_, err = client.Create(
298
+		context.TODO(),
299
+		etcdtest.AddPrefix("/images/default/existingImage"),
300
+		runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), existingImage),
301
+	)
294 302
 	if err != nil {
295 303
 		t.Fatalf("Unexpected error: %v", err)
296 304
 	}
... ...
@@ -360,7 +381,11 @@ func TestTrackingTags(t *testing.T) {
360 360
 		},
361 361
 	}
362 362
 
363
-	_, err := client.Create(etcdtest.AddPrefix("/imagestreams/default/stream"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), stream), 0)
363
+	_, err := client.Create(
364
+		context.TODO(),
365
+		etcdtest.AddPrefix("/imagestreams/default/stream"),
366
+		runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), stream),
367
+	)
364 368
 	if err != nil {
365 369
 		t.Fatalf("Unexpected error: %v", err)
366 370
 	}
... ...
@@ -5,7 +5,9 @@ import (
5 5
 	"testing"
6 6
 	"time"
7 7
 
8
-	"github.com/coreos/go-etcd/etcd"
8
+	"golang.org/x/net/context"
9
+
10
+	etcd "github.com/coreos/etcd/client"
9 11
 	kapi "k8s.io/kubernetes/pkg/api"
10 12
 	"k8s.io/kubernetes/pkg/api/errors"
11 13
 	"k8s.io/kubernetes/pkg/api/unversioned"
... ...
@@ -55,10 +57,10 @@ func (u *fakeUser) GetGroups() []string {
55 55
 	return []string{"group1"}
56 56
 }
57 57
 
58
-func setup(t *testing.T) (*etcd.Client, *etcdtesting.EtcdTestServer, *REST) {
58
+func setup(t *testing.T) (etcd.KeysAPI, *etcdtesting.EtcdTestServer, *REST) {
59 59
 
60 60
 	etcdStorage, server := registrytest.NewEtcdStorage(t, "")
61
-	etcdClient := etcd.NewClient(server.ClientURLs.StringSlice())
61
+	etcdClient := etcd.NewKeysAPI(server.Client)
62 62
 
63 63
 	imageStorage := imageetcd.NewREST(etcdStorage)
64 64
 	imageStreamStorage, imageStreamStatus, internalStorage := imagestreametcd.NewREST(etcdStorage, testDefaultRegistry, &fakeSubjectAccessReviewRegistry{})
... ...
@@ -215,10 +217,18 @@ func TestGetImageStreamTag(t *testing.T) {
215 215
 		defer server.Terminate(t)
216 216
 
217 217
 		if testCase.image != nil {
218
-			client.Create(etcdtest.AddPrefix("/images/"+testCase.image.Name), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), testCase.image), 0)
218
+			client.Create(
219
+				context.TODO(),
220
+				etcdtest.AddPrefix("/images/"+testCase.image.Name),
221
+				runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), testCase.image),
222
+			)
219 223
 		}
220 224
 		if testCase.repo != nil {
221
-			client.Create(etcdtest.AddPrefix("/imagestreams/default/test"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), testCase.repo), 0)
225
+			client.Create(
226
+				context.TODO(),
227
+				etcdtest.AddPrefix("/imagestreams/default/test"),
228
+				runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), testCase.repo),
229
+			)
222 230
 		}
223 231
 
224 232
 		obj, err := storage.Get(kapi.NewDefaultContext(), "test:latest")
... ...
@@ -280,8 +290,16 @@ func TestGetImageStreamTagDIR(t *testing.T) {
280 280
 
281 281
 	client, server, storage := setup(t)
282 282
 	defer server.Terminate(t)
283
-	client.Create(etcdtest.AddPrefix("/images/"+image.Name), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), image), 0)
284
-	client.Create(etcdtest.AddPrefix("/imagestreams/default/test"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), repo), 0)
283
+	client.Create(
284
+		context.TODO(),
285
+		etcdtest.AddPrefix("/images/"+image.Name),
286
+		runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), image),
287
+	)
288
+	client.Create(
289
+		context.TODO(),
290
+		etcdtest.AddPrefix("/imagestreams/default/test"),
291
+		runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), repo),
292
+	)
285 293
 	obj, err := storage.Get(kapi.NewDefaultContext(), "test:latest")
286 294
 	if err != nil {
287 295
 		t.Fatalf("Unexpected error: %v", err)
... ...
@@ -401,7 +419,11 @@ func TestDeleteImageStreamTag(t *testing.T) {
401 401
 		defer server.Terminate(t)
402 402
 
403 403
 		if testCase.repo != nil {
404
-			client.Create(etcdtest.AddPrefix("/imagestreams/default/test"), runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), testCase.repo), 0)
404
+			client.Create(
405
+				context.TODO(),
406
+				etcdtest.AddPrefix("/imagestreams/default/test"),
407
+				runtime.EncodeOrDie(kapi.Codecs.LegacyCodec(v1.SchemeGroupVersion), testCase.repo),
408
+			)
405 409
 		}
406 410
 
407 411
 		ctx := kapi.WithUser(kapi.NewDefaultContext(), &fakeUser{})
... ...
@@ -5,7 +5,7 @@ import (
5 5
 	"strconv"
6 6
 
7 7
 	kapi "k8s.io/kubernetes/pkg/api"
8
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
8
+	"k8s.io/kubernetes/pkg/client/restclient"
9 9
 	kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
10 10
 
11 11
 	dapi "github.com/openshift/origin/pkg/deploy/api"
... ...
@@ -19,7 +19,7 @@ const libModulesPath = "/lib/modules"
19 19
 
20 20
 //  Get kube client configuration from a file containing credentials for
21 21
 //  connecting to the master.
22
-func getClientConfig(path string) (*kclient.Config, error) {
22
+func getClientConfig(path string) (*restclient.Config, error) {
23 23
 	if 0 == len(path) {
24 24
 		return nil, fmt.Errorf("You must specify a .kubeconfig file path containing credentials for connecting to the master with --credentials")
25 25
 	}
... ...
@@ -35,7 +35,7 @@ func getClientConfig(path string) (*kclient.Config, error) {
35 35
 		return nil, fmt.Errorf("Credentials %q error: %v", path, err)
36 36
 	}
37 37
 
38
-	if err := kclient.LoadTLSFiles(config); err != nil {
38
+	if err := restclient.LoadTLSFiles(config); err != nil {
39 39
 		return nil, fmt.Errorf("Unable to load certificate info using credentials from %q: %v", path, err)
40 40
 	}
41 41
 
... ...
@@ -43,7 +43,7 @@ func getClientConfig(path string) (*kclient.Config, error) {
43 43
 }
44 44
 
45 45
 //  Generate the IP failover monitor (keepalived) container environment entries.
46
-func generateEnvEntries(name string, options *ipfailover.IPFailoverConfigCmdOptions, kconfig *kclient.Config) app.Environment {
46
+func generateEnvEntries(name string, options *ipfailover.IPFailoverConfigCmdOptions, kconfig *restclient.Config) app.Environment {
47 47
 	watchPort := strconv.Itoa(options.WatchPort)
48 48
 	replicas := strconv.Itoa(options.Replicas)
49 49
 	insecureStr := strconv.FormatBool(kconfig.Insecure)
... ...
@@ -9,7 +9,7 @@ import (
9 9
 	kapi "k8s.io/kubernetes/pkg/api"
10 10
 	"k8s.io/kubernetes/pkg/api/unversioned"
11 11
 	"k8s.io/kubernetes/pkg/client/cache"
12
-	clientsetfake "k8s.io/kubernetes/pkg/client/testing/fake"
12
+	clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
13 13
 	"k8s.io/kubernetes/pkg/client/unversioned/testclient"
14 14
 	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
15 15
 	"k8s.io/kubernetes/pkg/runtime"
... ...
@@ -6,7 +6,7 @@ import (
6 6
 	"k8s.io/kubernetes/pkg/admission"
7 7
 	kapi "k8s.io/kubernetes/pkg/api"
8 8
 	"k8s.io/kubernetes/pkg/client/cache"
9
-	clientsetfake "k8s.io/kubernetes/pkg/client/testing/fake"
9
+	clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
10 10
 	"k8s.io/kubernetes/pkg/client/unversioned/testclient"
11 11
 
12 12
 	projectcache "github.com/openshift/origin/pkg/project/cache"
... ...
@@ -9,7 +9,7 @@ import (
9 9
 
10 10
 	"github.com/openshift/origin/pkg/client/testclient"
11 11
 	"github.com/openshift/origin/pkg/project/api"
12
-	"k8s.io/kubernetes/pkg/client/testing/fake"
12
+	"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
13 13
 )
14 14
 
15 15
 func TestSyncNamespaceThatIsTerminating(t *testing.T) {
... ...
@@ -12,7 +12,7 @@ import (
12 12
 	"k8s.io/kubernetes/pkg/api/unversioned"
13 13
 	"k8s.io/kubernetes/pkg/auth/user"
14 14
 	"k8s.io/kubernetes/pkg/client/cache"
15
-	"k8s.io/kubernetes/pkg/client/testing/fake"
15
+	"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
16 16
 	ktestclient "k8s.io/kubernetes/pkg/client/unversioned/testclient"
17 17
 	"k8s.io/kubernetes/pkg/runtime"
18 18
 
... ...
@@ -10,7 +10,7 @@ import (
10 10
 	"k8s.io/kubernetes/pkg/auth/user"
11 11
 	"k8s.io/kubernetes/pkg/client/cache"
12 12
 	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
13
-	clientsetfake "k8s.io/kubernetes/pkg/client/testing/fake"
13
+	clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
14 14
 	kscc "k8s.io/kubernetes/pkg/securitycontextconstraints"
15 15
 	"k8s.io/kubernetes/pkg/util"
16 16
 
... ...
@@ -6,8 +6,8 @@ import (
6 6
 	kadmission "k8s.io/kubernetes/pkg/admission"
7 7
 	kapi "k8s.io/kubernetes/pkg/api"
8 8
 	"k8s.io/kubernetes/pkg/auth/user"
9
+	clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
9 10
 	testingcore "k8s.io/kubernetes/pkg/client/testing/core"
10
-	clientsetfake "k8s.io/kubernetes/pkg/client/testing/fake"
11 11
 	"k8s.io/kubernetes/pkg/runtime"
12 12
 	"k8s.io/kubernetes/pkg/watch"
13 13
 )
... ...
@@ -5,6 +5,7 @@ import (
5 5
 	"time"
6 6
 
7 7
 	kapi "k8s.io/kubernetes/pkg/api"
8
+	"k8s.io/kubernetes/pkg/client/restclient"
8 9
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
9 10
 
10 11
 	"github.com/openshift/origin/pkg/client"
... ...
@@ -54,7 +55,7 @@ func (s *ClientLookupTokenRetriever) GetToken(namespace, name string) (string, e
54 54
 
55 55
 // Clients returns an OpenShift and Kubernetes client with the credentials of the named service account
56 56
 // TODO: change return types to client.Interface/kclient.Interface to allow auto-reloading credentials
57
-func Clients(config kclient.Config, tokenRetriever TokenRetriever, namespace, name string) (*client.Client, *kclient.Client, error) {
57
+func Clients(config restclient.Config, tokenRetriever TokenRetriever, namespace, name string) (*client.Client, *kclient.Client, error) {
58 58
 	// Clear existing auth info
59 59
 	config.Username = ""
60 60
 	config.Password = ""
... ...
@@ -34,7 +34,7 @@ func NewDockercfgDeletedController(cl client.Interface, options DockercfgDeleted
34 34
 		client: cl,
35 35
 	}
36 36
 
37
-	dockercfgSelector := fields.OneTermEqualSelector(client.SecretType, string(api.SecretTypeDockercfg))
37
+	dockercfgSelector := fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeDockercfg))
38 38
 	_, e.secretController = framework.NewInformer(
39 39
 		&cache.ListWatch{
40 40
 			ListFunc: func(options api.ListOptions) (runtime.Object, error) {
... ...
@@ -28,7 +28,7 @@ func NewDockercfgTokenDeletedController(cl client.Interface, options DockercfgTo
28 28
 		client: cl,
29 29
 	}
30 30
 
31
-	dockercfgSelector := fields.OneTermEqualSelector(client.SecretType, string(api.SecretTypeServiceAccountToken))
31
+	dockercfgSelector := fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeServiceAccountToken))
32 32
 	_, e.secretController = framework.NewInformer(
33 33
 		&cache.ListWatch{
34 34
 			ListFunc: func(options api.ListOptions) (runtime.Object, error) {
... ...
@@ -104,7 +104,7 @@ func (e *DockercfgTokenDeletedController) secretDeleted(obj interface{}) {
104 104
 func (e *DockercfgTokenDeletedController) findDockercfgSecrets(tokenSecret *api.Secret) ([]*api.Secret, error) {
105 105
 	dockercfgSecrets := []*api.Secret{}
106 106
 
107
-	options := api.ListOptions{FieldSelector: fields.OneTermEqualSelector(client.SecretType, string(api.SecretTypeDockercfg))}
107
+	options := api.ListOptions{FieldSelector: fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeDockercfg))}
108 108
 	potentialSecrets, err := e.client.Secrets(tokenSecret.Namespace).List(options)
109 109
 	if err != nil {
110 110
 		return nil, err
... ...
@@ -6,7 +6,6 @@ import (
6 6
 	"testing"
7 7
 
8 8
 	"k8s.io/kubernetes/pkg/api"
9
-	client "k8s.io/kubernetes/pkg/client/unversioned"
10 9
 	"k8s.io/kubernetes/pkg/client/unversioned/testclient"
11 10
 	"k8s.io/kubernetes/pkg/fields"
12 11
 	"k8s.io/kubernetes/pkg/runtime"
... ...
@@ -123,7 +122,7 @@ func serviceAccountTokenSecretWithoutTokenData() *api.Secret {
123 123
 }
124 124
 
125 125
 func TestTokenDeletion(t *testing.T) {
126
-	dockercfgSecretFieldSelector := fields.OneTermEqualSelector(client.SecretType, string(api.SecretTypeDockercfg))
126
+	dockercfgSecretFieldSelector := fields.OneTermEqualSelector(api.SecretTypeField, string(api.SecretTypeDockercfg))
127 127
 
128 128
 	testcases := map[string]struct {
129 129
 		ClientObjects []runtime.Object
... ...
@@ -199,7 +199,7 @@ func (e *DockerRegistryServiceController) handleLocationChange(serviceLocation s
199 199
 }
200 200
 
201 201
 func (e *DockerRegistryServiceController) listDockercfgSecrets() ([]*api.Secret, error) {
202
-	options := api.ListOptions{FieldSelector: fields.SelectorFromSet(map[string]string{client.SecretType: string(api.SecretTypeDockercfg)})}
202
+	options := api.ListOptions{FieldSelector: fields.SelectorFromSet(map[string]string{api.SecretTypeField: string(api.SecretTypeDockercfg)})}
203 203
 	potentialSecrets, err := e.client.Secrets(api.NamespaceAll).List(options)
204 204
 	if err != nil {
205 205
 		return nil, err
... ...
@@ -22,7 +22,7 @@ func TestNewRESTInvalidType(t *testing.T) {
22 22
 		t.Errorf("Expected type error.")
23 23
 	}
24 24
 
25
-	if _, err := registered.GroupOrDie(template.GroupName).RESTMapper.KindFor(template.Resource("processedtemplates").WithVersion("")); err != nil {
25
+	if _, err := registered.RESTMapper().KindFor(template.Resource("processedtemplates").WithVersion("")); err != nil {
26 26
 		t.Errorf("no processed templates: %v", err)
27 27
 	}
28 28
 }
... ...
@@ -13,7 +13,7 @@ import (
13 13
 	"strings"
14 14
 	"time"
15 15
 
16
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
16
+	"k8s.io/kubernetes/pkg/client/restclient"
17 17
 	utilruntime "k8s.io/kubernetes/pkg/util/runtime"
18 18
 	"k8s.io/kubernetes/third_party/golang/netutil"
19 19
 
... ...
@@ -24,15 +24,15 @@ import (
24 24
 // connections and those that require upgrading (e.g. web sockets). It implements
25 25
 // the http.RoundTripper and http.Handler interfaces.
26 26
 type UpgradeAwareSingleHostReverseProxy struct {
27
-	clientConfig *kclient.Config
27
+	clientConfig *restclient.Config
28 28
 	backendAddr  *url.URL
29 29
 	transport    http.RoundTripper
30 30
 	reverseProxy *httputil.ReverseProxy
31 31
 }
32 32
 
33 33
 // NewUpgradeAwareSingleHostReverseProxy creates a new UpgradeAwareSingleHostReverseProxy.
34
-func NewUpgradeAwareSingleHostReverseProxy(clientConfig *kclient.Config, backendAddr *url.URL) (*UpgradeAwareSingleHostReverseProxy, error) {
35
-	transport, err := kclient.TransportFor(clientConfig)
34
+func NewUpgradeAwareSingleHostReverseProxy(clientConfig *restclient.Config, backendAddr *url.URL) (*UpgradeAwareSingleHostReverseProxy, error) {
35
+	transport, err := restclient.TransportFor(clientConfig)
36 36
 	if err != nil {
37 37
 		return nil, err
38 38
 	}
... ...
@@ -147,7 +147,7 @@ func (p *UpgradeAwareSingleHostReverseProxy) dialBackend(req *http.Request) (net
147 147
 	case "http":
148 148
 		return net.Dial("tcp", dialAddr)
149 149
 	case "https":
150
-		tlsConfig, err := kclient.TLSConfigFor(p.clientConfig)
150
+		tlsConfig, err := restclient.TLSConfigFor(p.clientConfig)
151 151
 		if err != nil {
152 152
 			return nil, err
153 153
 		}
... ...
@@ -261,7 +261,7 @@ func removeCORSHeaders(resp *http.Response) {
261 261
 
262 262
 // addAuthHeaders adds basic/bearer auth from the given config (if specified)
263 263
 // This should be run on any requests not handled by the transport returned from TransportFor(config)
264
-func addAuthHeaders(req *http.Request, clientConfig *kclient.Config) {
264
+func addAuthHeaders(req *http.Request, clientConfig *restclient.Config) {
265 265
 	if clientConfig.BearerToken != "" {
266 266
 		req.Header.Set("Authorization", "Bearer "+clientConfig.BearerToken)
267 267
 	} else if clientConfig.Username != "" || clientConfig.Password != "" {
... ...
@@ -37,7 +37,7 @@ var _ = g.Describe("[job] openshift can execute jobs", func() {
37 37
 			o.Expect(logs).Should(o.Equal("3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068"))
38 38
 
39 39
 			g.By("checking job status")
40
-			jobs, err := oc.KubeREST().Jobs(oc.Namespace()).List(kapi.ListOptions{LabelSelector: exeutil.ParseLabelsOrDie("app=pi")})
40
+			jobs, err := oc.KubeREST().ExtensionsClient.Jobs(oc.Namespace()).List(kapi.ListOptions{LabelSelector: exeutil.ParseLabelsOrDie("app=pi")})
41 41
 			o.Expect(err).NotTo(o.HaveOccurred())
42 42
 
43 43
 			o.Expect(len(jobs.Items)).Should(o.Equal(1))
... ...
@@ -9,8 +9,8 @@ import (
9 9
 )
10 10
 
11 11
 var _ = Describe("[networking] network isolation", func() {
12
-	f1 := e2e.NewFramework("net-isolation1")
13
-	f2 := e2e.NewFramework("net-isolation2")
12
+	f1 := e2e.NewDefaultFramework("net-isolation1")
13
+	f2 := e2e.NewDefaultFramework("net-isolation2")
14 14
 
15 15
 	Specify("multi-tenant plugins should prevent communication between pods in different namespaces on the same node", func() {
16 16
 		skipIfSingleTenant()
... ...
@@ -10,7 +10,7 @@ var _ = Describe("[networking] basic openshift networking", func() {
10 10
 	svcname := "net-sanity"
11 11
 	timeout := 10
12 12
 
13
-	f := e2e.NewFramework(svcname)
13
+	f := e2e.NewDefaultFramework(svcname)
14 14
 
15 15
 	It("should function for pod communication on a single node", func() {
16 16
 		By("Picking a node")
... ...
@@ -19,7 +19,7 @@ var _ = g.Describe("[security] supplemental groups", func() {
19 19
 	defer g.GinkgoRecover()
20 20
 
21 21
 	var (
22
-		f = e2e.NewFramework("security-supgroups")
22
+		f = e2e.NewDefaultFramework("security-supgroups")
23 23
 	)
24 24
 
25 25
 	g.Describe("Ensure supplemental groups propagate to docker", func() {
... ...
@@ -9,7 +9,7 @@ import (
9 9
 	"testing"
10 10
 
11 11
 	"k8s.io/kubernetes/pkg/api/unversioned"
12
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
12
+	"k8s.io/kubernetes/pkg/client/restclient"
13 13
 	"k8s.io/kubernetes/pkg/util/sets"
14 14
 
15 15
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
... ...
@@ -38,7 +38,7 @@ func TestRootAPIPaths(t *testing.T) {
38 38
 		t.Fatalf("unexpected error getting cluster admin client config: %v", err)
39 39
 	}
40 40
 
41
-	transport, err := kclient.TransportFor(clientConfig)
41
+	transport, err := restclient.TransportFor(clientConfig)
42 42
 	if err != nil {
43 43
 		t.Fatalf("unexpected error getting transport for client config: %v", err)
44 44
 	}
... ...
@@ -53,8 +53,7 @@ func TestDeployScale(t *testing.T) {
53 53
 	}
54 54
 	updatedScale, err := osClient.DeploymentConfigs(namespace).UpdateScale(scaleUpdate)
55 55
 	if err != nil {
56
-		// If this complains about "Scale" not being registered in "v1", check the kind overrides in the API registration
57
-		// See "UPSTREAM: <carry>: allow specific, skewed group/versions" and NonDefaultGroupVersionKinds
56
+		// If this complains about "Scale" not being registered in "v1", check the kind overrides in the API registration in SubresourceGroupVersionKind
58 57
 		t.Fatalf("Couldn't update DeploymentConfig scale to %#v: %v", scaleUpdate, err)
59 58
 	}
60 59
 	if updatedScale.Spec.Replicas != 3 {
... ...
@@ -18,7 +18,7 @@ import (
18 18
 	kapi "k8s.io/kubernetes/pkg/api"
19 19
 	"k8s.io/kubernetes/pkg/api/errors"
20 20
 	"k8s.io/kubernetes/pkg/api/unversioned"
21
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
21
+	"k8s.io/kubernetes/pkg/client/restclient"
22 22
 	kerrors "k8s.io/kubernetes/pkg/util/errors"
23 23
 	"k8s.io/kubernetes/pkg/watch"
24 24
 
... ...
@@ -498,7 +498,7 @@ func TestImageStreamImportScheduled(t *testing.T) {
498 498
 }
499 499
 
500 500
 func TestImageStreamImportDockerHub(t *testing.T) {
501
-	rt, _ := kclient.TransportFor(&kclient.Config{})
501
+	rt, _ := restclient.TransportFor(&restclient.Config{})
502 502
 	importCtx := importer.NewContext(rt, nil).WithCredentials(importer.NoCredentials)
503 503
 
504 504
 	imports := &api.ImageStreamImport{
... ...
@@ -559,7 +559,7 @@ func TestImageStreamImportDockerHub(t *testing.T) {
559 559
 }
560 560
 
561 561
 func TestImageStreamImportQuayIO(t *testing.T) {
562
-	rt, _ := kclient.TransportFor(&kclient.Config{})
562
+	rt, _ := restclient.TransportFor(&restclient.Config{})
563 563
 	importCtx := importer.NewContext(rt, nil).WithCredentials(importer.NoCredentials)
564 564
 
565 565
 	repositoryName := quayRegistryName + "/coreos/etcd"
... ...
@@ -612,7 +612,7 @@ func TestImageStreamImportQuayIO(t *testing.T) {
612 612
 }
613 613
 
614 614
 func TestImageStreamImportRedHatRegistry(t *testing.T) {
615
-	rt, _ := kclient.TransportFor(&kclient.Config{})
615
+	rt, _ := restclient.TransportFor(&restclient.Config{})
616 616
 	importCtx := importer.NewContext(rt, nil).WithCredentials(importer.NoCredentials)
617 617
 
618 618
 	repositoryName := pulpRegistryName + "/rhel7"
... ...
@@ -8,7 +8,7 @@ import (
8 8
 
9 9
 	"github.com/spf13/pflag"
10 10
 
11
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
11
+	"k8s.io/kubernetes/pkg/client/restclient"
12 12
 	"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
13 13
 	clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
14 14
 
... ...
@@ -140,7 +140,7 @@ func newLoginOptions(server string, username string, password string, insecure b
140 140
 	return loginOptions
141 141
 }
142 142
 
143
-func whoami(clientCfg *kclient.Config) (*api.User, error) {
143
+func whoami(clientCfg *restclient.Config) (*api.User, error) {
144 144
 	oClient, err := client.New(clientCfg)
145 145
 	if err != nil {
146 146
 		return nil, err
... ...
@@ -9,7 +9,7 @@ import (
9 9
 	"testing"
10 10
 
11 11
 	kapi "k8s.io/kubernetes/pkg/api"
12
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
12
+	"k8s.io/kubernetes/pkg/client/restclient"
13 13
 	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
14 14
 
15 15
 	"github.com/openshift/origin/pkg/cmd/admin/policy"
... ...
@@ -99,7 +99,7 @@ func TestNodeAuth(t *testing.T) {
99 99
 	}
100 100
 	nodeTLS := configapi.UseTLS(nodeConfig.ServingInfo)
101 101
 
102
-	kubeletClientConfig := func(config *kclient.Config) *kubeletclient.KubeletClientConfig {
102
+	kubeletClientConfig := func(config *restclient.Config) *kubeletclient.KubeletClientConfig {
103 103
 		return &kubeletclient.KubeletClientConfig{
104 104
 			Port:            uint(nodePortInt),
105 105
 			EnableHttps:     nodeTLS,
... ...
@@ -12,7 +12,7 @@ import (
12 12
 	"testing"
13 13
 	"time"
14 14
 
15
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
15
+	"k8s.io/kubernetes/pkg/client/restclient"
16 16
 
17 17
 	"github.com/openshift/origin/pkg/client"
18 18
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
... ...
@@ -261,7 +261,7 @@ func TestOAuthBasicAuthPassword(t *testing.T) {
261 261
 	}
262 262
 
263 263
 	// Use the server and CA info
264
-	anonConfig := kclient.Config{}
264
+	anonConfig := restclient.Config{}
265 265
 	anonConfig.Host = clientConfig.Host
266 266
 	anonConfig.CAFile = clientConfig.CAFile
267 267
 	anonConfig.CAData = clientConfig.CAData
... ...
@@ -6,7 +6,7 @@ import (
6 6
 	"testing"
7 7
 
8 8
 	kapi "k8s.io/kubernetes/pkg/api"
9
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
9
+	"k8s.io/kubernetes/pkg/client/restclient"
10 10
 
11 11
 	"github.com/openshift/origin/pkg/cmd/util/tokencmd"
12 12
 	testutil "github.com/openshift/origin/test/util"
... ...
@@ -50,7 +50,7 @@ func TestOAuthDisabled(t *testing.T) {
50 50
 	}
51 51
 
52 52
 	// Use the server and CA info
53
-	anonConfig := kclient.Config{}
53
+	anonConfig := restclient.Config{}
54 54
 	anonConfig.Host = clientConfig.Host
55 55
 	anonConfig.CAFile = clientConfig.CAFile
56 56
 	anonConfig.CAData = clientConfig.CAData
... ...
@@ -7,7 +7,7 @@ import (
7 7
 	"os"
8 8
 	"testing"
9 9
 
10
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
10
+	"k8s.io/kubernetes/pkg/client/restclient"
11 11
 
12 12
 	"github.com/openshift/origin/pkg/client"
13 13
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
... ...
@@ -50,7 +50,7 @@ func TestOAuthHTPasswd(t *testing.T) {
50 50
 	}
51 51
 
52 52
 	// Use the server and CA info
53
-	anonConfig := kclient.Config{}
53
+	anonConfig := restclient.Config{}
54 54
 	anonConfig.Host = clientConfig.Host
55 55
 	anonConfig.CAFile = clientConfig.CAFile
56 56
 	anonConfig.CAData = clientConfig.CAData
... ...
@@ -10,7 +10,7 @@ import (
10 10
 	"reflect"
11 11
 	"testing"
12 12
 
13
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
13
+	"k8s.io/kubernetes/pkg/client/restclient"
14 14
 	kutil "k8s.io/kubernetes/pkg/util"
15 15
 	"k8s.io/kubernetes/pkg/util/sets"
16 16
 
... ...
@@ -164,7 +164,7 @@ func TestOAuthLDAP(t *testing.T) {
164 164
 	}
165 165
 
166 166
 	// Use the server and CA info
167
-	anonConfig := kclient.Config{}
167
+	anonConfig := restclient.Config{}
168 168
 	anonConfig.Host = clusterAdminClientConfig.Host
169 169
 	anonConfig.CAFile = clusterAdminClientConfig.CAFile
170 170
 	anonConfig.CAData = clusterAdminClientConfig.CAData
... ...
@@ -13,7 +13,7 @@ import (
13 13
 	"regexp"
14 14
 	"testing"
15 15
 
16
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
16
+	"k8s.io/kubernetes/pkg/client/restclient"
17 17
 	clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
18 18
 
19 19
 	"github.com/openshift/origin/pkg/client"
... ...
@@ -188,11 +188,11 @@ func TestOAuthRequestHeader(t *testing.T) {
188 188
 	}
189 189
 
190 190
 	// Use the server and CA info, but no client cert info
191
-	anonConfig := kclient.Config{}
191
+	anonConfig := restclient.Config{}
192 192
 	anonConfig.Host = clientConfig.Host
193 193
 	anonConfig.CAFile = clientConfig.CAFile
194 194
 	anonConfig.CAData = clientConfig.CAData
195
-	anonTransport, err := kclient.TransportFor(&anonConfig)
195
+	anonTransport, err := restclient.TransportFor(&anonConfig)
196 196
 	if err != nil {
197 197
 		t.Fatalf("unexpected error: %v", err)
198 198
 	}
... ...
@@ -201,7 +201,7 @@ func TestOAuthRequestHeader(t *testing.T) {
201 201
 	proxyConfig := anonConfig
202 202
 	proxyConfig.CertData = clientCert
203 203
 	proxyConfig.KeyData = clientKey
204
-	proxyTransport, err = kclient.TransportFor(&proxyConfig)
204
+	proxyTransport, err = restclient.TransportFor(&proxyConfig)
205 205
 	if err != nil {
206 206
 		t.Fatalf("unexpected error: %v", err)
207 207
 	}
... ...
@@ -188,7 +188,7 @@ func testPodNodeConstraintsReplicaSet(nodeName string, nodeSelector map[string]s
188 188
 	rs := &extensions.ReplicaSet{}
189 189
 	rs.Name = "testrs"
190 190
 	rs.Spec.Replicas = 1
191
-	rs.Spec.Template = &kapi.PodTemplateSpec{}
191
+	rs.Spec.Template = kapi.PodTemplateSpec{}
192 192
 	rs.Spec.Template.Labels = map[string]string{"foo": "bar"}
193 193
 	rs.Spec.Template.Spec = testPodNodeConstraintsPodSpec(nodeName, nodeSelector)
194 194
 	rs.Spec.Selector = &unversioned.LabelSelector{
... ...
@@ -203,9 +203,8 @@ func testPodNodeConstraintsJob(nodeName string, nodeSelector map[string]string)
203 203
 	job.Spec.Template.Labels = map[string]string{"foo": "bar"}
204 204
 	job.Spec.Template.Spec = testPodNodeConstraintsPodSpec(nodeName, nodeSelector)
205 205
 	job.Spec.Template.Spec.RestartPolicy = kapi.RestartPolicyNever
206
-	job.Spec.Selector = &unversioned.LabelSelector{
207
-		MatchLabels: map[string]string{"foo": "bar"},
208
-	}
206
+	// Matching selector is now generated automatically
207
+	// job.Spec.Selector = ...
209 208
 	return job
210 209
 }
211 210
 
... ...
@@ -7,6 +7,7 @@ import (
7 7
 
8 8
 	kapi "k8s.io/kubernetes/pkg/api"
9 9
 	apierrors "k8s.io/kubernetes/pkg/api/errors"
10
+	"k8s.io/kubernetes/pkg/client/restclient"
10 11
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
11 12
 	"k8s.io/kubernetes/pkg/labels"
12 13
 
... ...
@@ -19,7 +20,7 @@ import (
19 19
 	testserver "github.com/openshift/origin/test/util/server"
20 20
 )
21 21
 
22
-func setupProjectRequestLimitTest(t *testing.T, pluginConfig *requestlimit.ProjectRequestLimitConfig) (kclient.Interface, client.Interface, *kclient.Config) {
22
+func setupProjectRequestLimitTest(t *testing.T, pluginConfig *requestlimit.ProjectRequestLimitConfig) (kclient.Interface, client.Interface, *restclient.Config) {
23 23
 	testutil.RequireEtcd(t)
24 24
 	masterConfig, err := testserver.DefaultMasterOptions()
25 25
 	if err != nil {
... ...
@@ -167,7 +168,7 @@ func TestProjectRequestLimitSingleConfig(t *testing.T) {
167 167
 	})
168 168
 }
169 169
 
170
-func testProjectRequestLimitAdmission(t *testing.T, errorPrefix string, clientConfig *kclient.Config, tests map[string]bool) {
170
+func testProjectRequestLimitAdmission(t *testing.T, errorPrefix string, clientConfig *restclient.Config, tests map[string]bool) {
171 171
 	for user, expectSuccess := range tests {
172 172
 		oclient, _, _, err := testutil.GetClientForUser(*clientConfig, user)
173 173
 		if err != nil {
... ...
@@ -12,6 +12,7 @@ import (
12 12
 
13 13
 	"k8s.io/kubernetes/pkg/api"
14 14
 	"k8s.io/kubernetes/pkg/api/errors"
15
+	"k8s.io/kubernetes/pkg/client/restclient"
15 16
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
16 17
 	"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
17 18
 	clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
... ...
@@ -57,10 +58,10 @@ func TestServiceAccountAuthorization(t *testing.T) {
57 57
 	if len(saToken) == 0 {
58 58
 		t.Fatalf("token was not created")
59 59
 	}
60
-	cluster1SAClientConfig := kclient.Config{
60
+	cluster1SAClientConfig := restclient.Config{
61 61
 		Host:        cluster1AdminConfig.Host,
62 62
 		BearerToken: saToken,
63
-		TLSClientConfig: kclient.TLSClientConfig{
63
+		TLSClientConfig: restclient.TLSClientConfig{
64 64
 			CAFile: cluster1AdminConfig.CAFile,
65 65
 			CAData: cluster1AdminConfig.CAData,
66 66
 		},
... ...
@@ -188,7 +189,7 @@ func TestServiceAccountAuthorization(t *testing.T) {
188 188
 	}
189 189
 }
190 190
 
191
-func writeClientConfigToKubeConfig(config kclient.Config, path string) error {
191
+func writeClientConfigToKubeConfig(config restclient.Config, path string) error {
192 192
 	kubeConfig := &clientcmdapi.Config{
193 193
 		Clusters:       map[string]*clientcmdapi.Cluster{"myserver": {Server: config.Host, CertificateAuthority: config.CAFile, CertificateAuthorityData: config.CAData}},
194 194
 		AuthInfos:      map[string]*clientcmdapi.AuthInfo{"myuser": {Token: config.BearerToken}},
... ...
@@ -10,7 +10,7 @@ import (
10 10
 	"time"
11 11
 
12 12
 	kapi "k8s.io/kubernetes/pkg/api"
13
-	kclient "k8s.io/kubernetes/pkg/client/unversioned"
13
+	"k8s.io/kubernetes/pkg/client/restclient"
14 14
 
15 15
 	buildapi "github.com/openshift/origin/pkg/build/api"
16 16
 	"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
... ...
@@ -270,7 +270,7 @@ func TestWebhookGitHubPing(t *testing.T) {
270 270
 	}
271 271
 }
272 272
 
273
-func postFile(client kclient.HTTPClient, event, filename, url string, expStatusCode int, t *testing.T) {
273
+func postFile(client restclient.HTTPClient, event, filename, url string, expStatusCode int, t *testing.T) {
274 274
 	data, err := ioutil.ReadFile("../../pkg/build/webhook/github/fixtures/" + filename)
275 275
 	if err != nil {
276 276
 		t.Fatalf("Failed to open %s: %v", filename, err)
... ...
@@ -8,6 +8,7 @@ import (
8 8
 
9 9
 	kapi "k8s.io/kubernetes/pkg/api"
10 10
 	kerrs "k8s.io/kubernetes/pkg/api/errors"
11
+	"k8s.io/kubernetes/pkg/client/restclient"
11 12
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
12 13
 	"k8s.io/kubernetes/pkg/fields"
13 14
 	"k8s.io/kubernetes/pkg/util/wait"
... ...
@@ -49,7 +50,7 @@ func GetClusterAdminClient(adminKubeConfigFile string) (*client.Client, error) {
49 49
 	return osClient, nil
50 50
 }
51 51
 
52
-func GetClusterAdminClientConfig(adminKubeConfigFile string) (*kclient.Config, error) {
52
+func GetClusterAdminClientConfig(adminKubeConfigFile string) (*restclient.Config, error) {
53 53
 	_, conf, err := configapi.GetKubeClient(adminKubeConfigFile)
54 54
 	if err != nil {
55 55
 		return nil, err
... ...
@@ -57,7 +58,7 @@ func GetClusterAdminClientConfig(adminKubeConfigFile string) (*kclient.Config, e
57 57
 	return conf, nil
58 58
 }
59 59
 
60
-func GetClientForUser(clientConfig kclient.Config, username string) (*client.Client, *kclient.Client, *kclient.Config, error) {
60
+func GetClientForUser(clientConfig restclient.Config, username string) (*client.Client, *kclient.Client, *restclient.Config, error) {
61 61
 	token, err := tokencmd.RequestToken(&clientConfig, nil, username, "password")
62 62
 	if err != nil {
63 63
 		return nil, nil, nil, err
... ...
@@ -79,7 +80,7 @@ func GetClientForUser(clientConfig kclient.Config, username string) (*client.Cli
79 79
 	return osClient, kubeClient, &userClientConfig, nil
80 80
 }
81 81
 
82
-func GetClientForServiceAccount(adminClient *kclient.Client, clientConfig kclient.Config, namespace, name string) (*client.Client, *kclient.Client, *kclient.Config, error) {
82
+func GetClientForServiceAccount(adminClient *kclient.Client, clientConfig restclient.Config, namespace, name string) (*client.Client, *kclient.Client, *restclient.Config, error) {
83 83
 	_, err := adminClient.Namespaces().Create(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: namespace}})
84 84
 	if err != nil && !kerrs.IsAlreadyExists(err) {
85 85
 		return nil, nil, nil, err
... ...
@@ -95,7 +96,7 @@ func GetClientForServiceAccount(adminClient *kclient.Client, clientConfig kclien
95 95
 
96 96
 	token := ""
97 97
 	err = wait.Poll(time.Second, 30*time.Second, func() (bool, error) {
98
-		selector := fields.OneTermEqualSelector(kclient.SecretType, string(kapi.SecretTypeServiceAccountToken))
98
+		selector := fields.OneTermEqualSelector(kapi.SecretTypeField, string(kapi.SecretTypeServiceAccountToken))
99 99
 		secrets, err := adminClient.Secrets(namespace).List(kapi.ListOptions{FieldSelector: selector})
100 100
 		if err != nil {
101 101
 			return false, err
... ...
@@ -33,7 +33,7 @@ var url string
33 33
 
34 34
 // RequireEtcd verifies if the etcd is running and accessible for testing
35 35
 func RequireEtcd(t *testing.T) *etcdtest.EtcdTestServer {
36
-	s := etcdtest.NewEtcdTestClientServer(t)
36
+	s := etcdtest.NewUnsecuredEtcdTestClientServer(t)
37 37
 	url = s.Client.Endpoints()[0]
38 38
 	return s
39 39
 }
... ...
@@ -13,6 +13,7 @@ import (
13 13
 	"github.com/golang/glog"
14 14
 	"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
15 15
 	kapi "k8s.io/kubernetes/pkg/api"
16
+	"k8s.io/kubernetes/pkg/client/restclient"
16 17
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
17 18
 	"k8s.io/kubernetes/pkg/util/wait"
18 19
 
... ...
@@ -414,7 +415,7 @@ func WaitForServiceAccounts(client *kclient.Client, namespace string, accounts [
414 414
 
415 415
 // CreateNewProject creates a new project using the clusterAdminClient, then gets a token for the adminUser and returns
416 416
 // back a client for the admin user
417
-func CreateNewProject(clusterAdminClient *client.Client, clientConfig kclient.Config, projectName, adminUser string) (*client.Client, error) {
417
+func CreateNewProject(clusterAdminClient *client.Client, clientConfig restclient.Config, projectName, adminUser string) (*client.Client, error) {
418 418
 	newProjectOptions := &newproject.NewProjectOptions{
419 419
 		Client:      clusterAdminClient,
420 420
 		ProjectName: projectName,