Remove unused client in rollout status

pull/58/head
Sean Sullivan 2018-09-19 12:35:59 -07:00
parent f3e0750754
commit d73583552c
5 changed files with 15 additions and 38 deletions

View File

@ -128,7 +128,7 @@ func (o *RolloutStatusOptions) Complete(f cmdutil.Factory, args []string) error
o.BuilderArgs = args o.BuilderArgs = args
o.StatusViewer = func(mapping *meta.RESTMapping) (kubectl.StatusViewer, error) { o.StatusViewer = func(mapping *meta.RESTMapping) (kubectl.StatusViewer, error) {
return polymorphichelpers.StatusViewerFn(f, mapping) return polymorphichelpers.StatusViewerFn(mapping)
} }
clientConfig, err := f.ToRESTConfig() clientConfig, err := f.ToRESTConfig()

View File

@ -47,7 +47,7 @@ type HistoryViewerFunc func(restClientGetter genericclioptions.RESTClientGetter,
var HistoryViewerFn HistoryViewerFunc = historyViewer var HistoryViewerFn HistoryViewerFunc = historyViewer
// StatusViewerFunc is a function type that can tell you how to print rollout status // StatusViewerFunc is a function type that can tell you how to print rollout status
type StatusViewerFunc func(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (kubectl.StatusViewer, error) type StatusViewerFunc func(mapping *meta.RESTMapping) (kubectl.StatusViewer, error)
// StatusViewerFn gives a way to easily override the function for unit testing if needed // StatusViewerFn gives a way to easily override the function for unit testing if needed
var StatusViewerFn StatusViewerFunc = statusViewer var StatusViewerFn StatusViewerFunc = statusViewer

View File

@ -18,20 +18,10 @@ package polymorphichelpers
import ( import (
"k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/meta"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl"
) )
// statusViewer returns a StatusViewer for printing rollout status. // statusViewer returns a StatusViewer for printing rollout status.
func statusViewer(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (kubectl.StatusViewer, error) { func statusViewer(mapping *meta.RESTMapping) (kubectl.StatusViewer, error) {
clientConfig, err := restClientGetter.ToRESTConfig() return kubectl.StatusViewerFor(mapping.GroupVersionKind.GroupKind())
if err != nil {
return nil, err
}
clientset, err := kubernetes.NewForConfig(clientConfig)
if err != nil {
return nil, err
}
return kubectl.StatusViewerFor(mapping.GroupVersionKind.GroupKind(), clientset)
} }

View File

@ -23,8 +23,6 @@ import (
extensionsv1beta1 "k8s.io/api/extensions/v1beta1" extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/kubernetes"
clientappsv1 "k8s.io/client-go/kubernetes/typed/apps/v1"
"k8s.io/kubernetes/pkg/controller/deployment/util" "k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/scheme"
) )
@ -35,34 +33,28 @@ type StatusViewer interface {
} }
// StatusViewerFor returns a StatusViewer for the resource specified by kind. // StatusViewerFor returns a StatusViewer for the resource specified by kind.
func StatusViewerFor(kind schema.GroupKind, c kubernetes.Interface) (StatusViewer, error) { func StatusViewerFor(kind schema.GroupKind) (StatusViewer, error) {
switch kind { switch kind {
case extensionsv1beta1.SchemeGroupVersion.WithKind("Deployment").GroupKind(), case extensionsv1beta1.SchemeGroupVersion.WithKind("Deployment").GroupKind(),
appsv1.SchemeGroupVersion.WithKind("Deployment").GroupKind(): appsv1.SchemeGroupVersion.WithKind("Deployment").GroupKind():
return &DeploymentStatusViewer{c.AppsV1()}, nil return &DeploymentStatusViewer{}, nil
case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSet").GroupKind(), case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSet").GroupKind(),
appsv1.SchemeGroupVersion.WithKind("DaemonSet").GroupKind(): appsv1.SchemeGroupVersion.WithKind("DaemonSet").GroupKind():
return &DaemonSetStatusViewer{c.AppsV1()}, nil return &DaemonSetStatusViewer{}, nil
case appsv1.SchemeGroupVersion.WithKind("StatefulSet").GroupKind(): case appsv1.SchemeGroupVersion.WithKind("StatefulSet").GroupKind():
return &StatefulSetStatusViewer{c.AppsV1()}, nil return &StatefulSetStatusViewer{}, nil
} }
return nil, fmt.Errorf("no status viewer has been implemented for %v", kind) return nil, fmt.Errorf("no status viewer has been implemented for %v", kind)
} }
// DeploymentStatusViewer implements the StatusViewer interface. // DeploymentStatusViewer implements the StatusViewer interface.
type DeploymentStatusViewer struct { type DeploymentStatusViewer struct{}
c clientappsv1.DeploymentsGetter
}
// DaemonSetStatusViewer implements the StatusViewer interface. // DaemonSetStatusViewer implements the StatusViewer interface.
type DaemonSetStatusViewer struct { type DaemonSetStatusViewer struct{}
c clientappsv1.DaemonSetsGetter
}
// StatefulSetStatusViewer implements the StatusViewer interface. // StatefulSetStatusViewer implements the StatusViewer interface.
type StatefulSetStatusViewer struct { type StatefulSetStatusViewer struct{}
c clientappsv1.StatefulSetsGetter
}
// Status returns a message describing deployment status, and a bool value indicating if the status is considered done. // Status returns a message describing deployment status, and a bool value indicating if the status is considered done.
func (s *DeploymentStatusViewer) Status(obj runtime.Unstructured, revision int64) (string, bool, error) { func (s *DeploymentStatusViewer) Status(obj runtime.Unstructured, revision int64) (string, bool, error) {

View File

@ -24,7 +24,6 @@ import (
api "k8s.io/api/core/v1" api "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/scheme"
) )
@ -134,8 +133,7 @@ func TestDeploymentStatusViewerStatus(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
client := fake.NewSimpleClientset(d).Apps() dsv := &DeploymentStatusViewer{}
dsv := &DeploymentStatusViewer{c: client}
msg, done, err := dsv.Status(unstructuredD, 0) msg, done, err := dsv.Status(unstructuredD, 0)
if err != nil { if err != nil {
t.Fatalf("DeploymentStatusViewer.Status(): %v", err) t.Fatalf("DeploymentStatusViewer.Status(): %v", err)
@ -240,8 +238,7 @@ func TestDaemonSetStatusViewerStatus(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
client := fake.NewSimpleClientset(d).Apps() dsv := &DaemonSetStatusViewer{}
dsv := &DaemonSetStatusViewer{c: client}
msg, done, err := dsv.Status(unstructuredD, 0) msg, done, err := dsv.Status(unstructuredD, 0)
if err != nil { if err != nil {
t.Fatalf("unexpected error: %v", err) t.Fatalf("unexpected error: %v", err)
@ -392,8 +389,7 @@ func TestStatefulSetStatusViewerStatus(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
client := fake.NewSimpleClientset(s).AppsV1() dsv := &StatefulSetStatusViewer{}
dsv := &StatefulSetStatusViewer{c: client}
msg, done, err := dsv.Status(unstructuredS, 0) msg, done, err := dsv.Status(unstructuredS, 0)
if test.err && err == nil { if test.err && err == nil {
t.Fatalf("%s: expected error", test.name) t.Fatalf("%s: expected error", test.name)
@ -431,8 +427,7 @@ func TestDaemonSetStatusViewerStatusWithWrongUpdateStrategyType(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
client := fake.NewSimpleClientset(d).Apps() dsv := &DaemonSetStatusViewer{}
dsv := &DaemonSetStatusViewer{c: client}
msg, done, err := dsv.Status(unstructuredD, 0) msg, done, err := dsv.Status(unstructuredD, 0)
errMsg := "rollout status is only available for RollingUpdate strategy type" errMsg := "rollout status is only available for RollingUpdate strategy type"
if err == nil || err.Error() != errMsg { if err == nil || err.Error() != errMsg {