mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 05:03:09 +00:00
Simplify kubectl describe code
This commit is contained in:
parent
d004939b74
commit
d153b98544
@ -38,29 +38,13 @@ type Describer interface {
|
|||||||
func DescriberFor(kind string, c *client.Client) (Describer, bool) {
|
func DescriberFor(kind string, c *client.Client) (Describer, bool) {
|
||||||
switch kind {
|
switch kind {
|
||||||
case "Pod":
|
case "Pod":
|
||||||
return &PodDescriber{
|
return &PodDescriber{c}, true
|
||||||
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
|
|
||||||
case "ReplicationController":
|
case "ReplicationController":
|
||||||
return &ReplicationControllerDescriber{
|
return &ReplicationControllerDescriber{c}, true
|
||||||
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
|
|
||||||
case "Service":
|
case "Service":
|
||||||
return &ServiceDescriber{
|
return &ServiceDescriber{c}, true
|
||||||
ServiceClient: func(namespace string) (client.ServiceInterface, error) {
|
case "Minion", "Node":
|
||||||
return c.Services(namespace), nil
|
return &MinionDescriber{c}, true
|
||||||
},
|
|
||||||
}, true
|
|
||||||
}
|
}
|
||||||
return nil, false
|
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
|
// PodDescriber generates information about a pod and the replication controllers that
|
||||||
// create it.
|
// create it.
|
||||||
type PodDescriber struct {
|
type PodDescriber struct {
|
||||||
PodClient func(namespace string) (client.PodInterface, error)
|
client.Interface
|
||||||
ReplicationControllerClient func(namespace string) (client.ReplicationControllerInterface, error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *PodDescriber) Describe(namespace, name string) (string, error) {
|
func (d *PodDescriber) Describe(namespace, name string) (string, error) {
|
||||||
rc, err := d.ReplicationControllerClient(namespace)
|
rc := d.ReplicationControllers(namespace)
|
||||||
if err != nil {
|
pc := d.Pods(namespace)
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
pc, err := d.PodClient(namespace)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
pod, err := pc.Get(name)
|
pod, err := pc.Get(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -107,19 +84,12 @@ func (d *PodDescriber) Describe(namespace, name string) (string, error) {
|
|||||||
// ReplicationControllerDescriber generates information about a replication controller
|
// ReplicationControllerDescriber generates information about a replication controller
|
||||||
// and the pods it has created.
|
// and the pods it has created.
|
||||||
type ReplicationControllerDescriber struct {
|
type ReplicationControllerDescriber struct {
|
||||||
ReplicationControllerClient func(namespace string) (client.ReplicationControllerInterface, error)
|
client.Interface
|
||||||
PodClient func(namespace string) (client.PodInterface, error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *ReplicationControllerDescriber) Describe(namespace, name string) (string, error) {
|
func (d *ReplicationControllerDescriber) Describe(namespace, name string) (string, error) {
|
||||||
rc, err := d.ReplicationControllerClient(namespace)
|
rc := d.ReplicationControllers(namespace)
|
||||||
if err != nil {
|
pc := d.Pods(namespace)
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
pc, err := d.PodClient(namespace)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
controller, err := rc.Get(name)
|
controller, err := rc.Get(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -144,14 +114,11 @@ func (d *ReplicationControllerDescriber) Describe(namespace, name string) (strin
|
|||||||
|
|
||||||
// ServiceDescriber generates information about a service.
|
// ServiceDescriber generates information about a service.
|
||||||
type ServiceDescriber struct {
|
type ServiceDescriber struct {
|
||||||
ServiceClient func(namespace string) (client.ServiceInterface, error)
|
client.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *ServiceDescriber) Describe(namespace, name string) (string, error) {
|
func (d *ServiceDescriber) Describe(namespace, name string) (string, error) {
|
||||||
c, err := d.ServiceClient(namespace)
|
c := d.Services(namespace)
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
service, err := c.Get(name)
|
service, err := c.Get(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -169,14 +136,11 @@ func (d *ServiceDescriber) Describe(namespace, name string) (string, error) {
|
|||||||
|
|
||||||
// MinionDescriber generates information about a minion.
|
// MinionDescriber generates information about a minion.
|
||||||
type MinionDescriber struct {
|
type MinionDescriber struct {
|
||||||
MinionClient func() (client.MinionInterface, error)
|
client.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *MinionDescriber) Describe(namespace, name string) (string, error) {
|
func (d *MinionDescriber) Describe(namespace, name string) (string, error) {
|
||||||
mc, err := d.MinionClient()
|
mc := d.Minions()
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
minion, err := mc.Get(name)
|
minion, err := mc.Get(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
@ -27,37 +27,13 @@ type describeClient struct {
|
|||||||
T *testing.T
|
T *testing.T
|
||||||
Namespace string
|
Namespace string
|
||||||
Err error
|
Err error
|
||||||
Fake *client.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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDescribePod(t *testing.T) {
|
func TestDescribePod(t *testing.T) {
|
||||||
fake := &client.Fake{}
|
fake := &client.Fake{}
|
||||||
c := &describeClient{T: t, Namespace: "foo", Fake: fake}
|
c := &describeClient{T: t, Namespace: "foo", Fake: fake}
|
||||||
d := PodDescriber{
|
d := PodDescriber{c}
|
||||||
PodClient: c.Pod,
|
|
||||||
ReplicationControllerClient: c.ReplicationController,
|
|
||||||
}
|
|
||||||
out, err := d.Describe("foo", "bar")
|
out, err := d.Describe("foo", "bar")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("unexpected error: %v", err)
|
t.Errorf("unexpected error: %v", err)
|
||||||
@ -70,9 +46,7 @@ func TestDescribePod(t *testing.T) {
|
|||||||
func TestDescribeService(t *testing.T) {
|
func TestDescribeService(t *testing.T) {
|
||||||
fake := &client.Fake{}
|
fake := &client.Fake{}
|
||||||
c := &describeClient{T: t, Namespace: "foo", Fake: fake}
|
c := &describeClient{T: t, Namespace: "foo", Fake: fake}
|
||||||
d := ServiceDescriber{
|
d := ServiceDescriber{c}
|
||||||
ServiceClient: c.Service,
|
|
||||||
}
|
|
||||||
out, err := d.Describe("foo", "bar")
|
out, err := d.Describe("foo", "bar")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("unexpected error: %v", err)
|
t.Errorf("unexpected error: %v", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user