mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Simplify kubectl describe code
This commit is contained in:
		@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user