diff --git a/pkg/kubectl/describe.go b/pkg/kubectl/describe.go index 4e79253fdf5..4ca06681fa7 100644 --- a/pkg/kubectl/describe.go +++ b/pkg/kubectl/describe.go @@ -38,29 +38,13 @@ type Describer interface { func DescriberFor(kind string, c *client.Client) (Describer, bool) { switch kind { case "Pod": - return &PodDescriber{ - PodClient: func(namespace string) (client.PodInterface, error) { - return c.Pods(namespace), nil - }, - ReplicationControllerClient: func(namespace string) (client.ReplicationControllerInterface, error) { - return c.ReplicationControllers(namespace), nil - }, - }, true + return &PodDescriber{c}, true case "ReplicationController": - return &ReplicationControllerDescriber{ - PodClient: func(namespace string) (client.PodInterface, error) { - return c.Pods(namespace), nil - }, - ReplicationControllerClient: func(namespace string) (client.ReplicationControllerInterface, error) { - return c.ReplicationControllers(namespace), nil - }, - }, true + return &ReplicationControllerDescriber{c}, true case "Service": - return &ServiceDescriber{ - ServiceClient: func(namespace string) (client.ServiceInterface, error) { - return c.Services(namespace), nil - }, - }, true + return &ServiceDescriber{c}, true + case "Minion", "Node": + return &MinionDescriber{c}, true } return nil, false } @@ -68,19 +52,12 @@ func DescriberFor(kind string, c *client.Client) (Describer, bool) { // PodDescriber generates information about a pod and the replication controllers that // create it. type PodDescriber struct { - PodClient func(namespace string) (client.PodInterface, error) - ReplicationControllerClient func(namespace string) (client.ReplicationControllerInterface, error) + client.Interface } func (d *PodDescriber) Describe(namespace, name string) (string, error) { - rc, err := d.ReplicationControllerClient(namespace) - if err != nil { - return "", err - } - pc, err := d.PodClient(namespace) - if err != nil { - return "", err - } + rc := d.ReplicationControllers(namespace) + pc := d.Pods(namespace) pod, err := pc.Get(name) if err != nil { @@ -107,19 +84,12 @@ func (d *PodDescriber) Describe(namespace, name string) (string, error) { // ReplicationControllerDescriber generates information about a replication controller // and the pods it has created. type ReplicationControllerDescriber struct { - ReplicationControllerClient func(namespace string) (client.ReplicationControllerInterface, error) - PodClient func(namespace string) (client.PodInterface, error) + client.Interface } func (d *ReplicationControllerDescriber) Describe(namespace, name string) (string, error) { - rc, err := d.ReplicationControllerClient(namespace) - if err != nil { - return "", err - } - pc, err := d.PodClient(namespace) - if err != nil { - return "", err - } + rc := d.ReplicationControllers(namespace) + pc := d.Pods(namespace) controller, err := rc.Get(name) if err != nil { @@ -144,14 +114,11 @@ func (d *ReplicationControllerDescriber) Describe(namespace, name string) (strin // ServiceDescriber generates information about a service. type ServiceDescriber struct { - ServiceClient func(namespace string) (client.ServiceInterface, error) + client.Interface } func (d *ServiceDescriber) Describe(namespace, name string) (string, error) { - c, err := d.ServiceClient(namespace) - if err != nil { - return "", err - } + c := d.Services(namespace) service, err := c.Get(name) if err != nil { @@ -169,14 +136,11 @@ func (d *ServiceDescriber) Describe(namespace, name string) (string, error) { // MinionDescriber generates information about a minion. type MinionDescriber struct { - MinionClient func() (client.MinionInterface, error) + client.Interface } func (d *MinionDescriber) Describe(namespace, name string) (string, error) { - mc, err := d.MinionClient() - if err != nil { - return "", err - } + mc := d.Minions() minion, err := mc.Get(name) if err != nil { return "", err diff --git a/pkg/kubectl/describe_test.go b/pkg/kubectl/describe_test.go index c0b2ac8d057..d1f54a67ccc 100644 --- a/pkg/kubectl/describe_test.go +++ b/pkg/kubectl/describe_test.go @@ -27,37 +27,13 @@ type describeClient struct { T *testing.T Namespace string Err error - Fake *client.Fake -} - -func (c *describeClient) Pod(namespace string) (client.PodInterface, error) { - if namespace != c.Namespace { - c.T.Errorf("unexpected namespace arg: %s", namespace) - } - return c.Fake.Pods(namespace), c.Err -} - -func (c *describeClient) ReplicationController(namespace string) (client.ReplicationControllerInterface, error) { - if namespace != c.Namespace { - c.T.Errorf("unexpected namespace arg: %s", namespace) - } - return c.Fake.ReplicationControllers(namespace), c.Err -} - -func (c *describeClient) Service(namespace string) (client.ServiceInterface, error) { - if namespace != c.Namespace { - c.T.Errorf("unexpected namespace arg: %s", namespace) - } - return c.Fake.Services(namespace), c.Err + *client.Fake } func TestDescribePod(t *testing.T) { fake := &client.Fake{} c := &describeClient{T: t, Namespace: "foo", Fake: fake} - d := PodDescriber{ - PodClient: c.Pod, - ReplicationControllerClient: c.ReplicationController, - } + d := PodDescriber{c} out, err := d.Describe("foo", "bar") if err != nil { t.Errorf("unexpected error: %v", err) @@ -70,9 +46,7 @@ func TestDescribePod(t *testing.T) { func TestDescribeService(t *testing.T) { fake := &client.Fake{} c := &describeClient{T: t, Namespace: "foo", Fake: fake} - d := ServiceDescriber{ - ServiceClient: c.Service, - } + d := ServiceDescriber{c} out, err := d.Describe("foo", "bar") if err != nil { t.Errorf("unexpected error: %v", err)