From f755759997aade111f7ccee6d864be582cb9e33d Mon Sep 17 00:00:00 2001 From: zhengjiajin Date: Fri, 15 Sep 2017 17:55:40 +0800 Subject: [PATCH] add age column for storageclass and cronjob test --- pkg/printers/internalversion/printers.go | 3 +- pkg/printers/internalversion/printers_test.go | 114 ++++++++++++++++++ 2 files changed, 116 insertions(+), 1 deletion(-) diff --git a/pkg/printers/internalversion/printers.go b/pkg/printers/internalversion/printers.go index 7fb8f7c347f..41ee8f8f0cf 100644 --- a/pkg/printers/internalversion/printers.go +++ b/pkg/printers/internalversion/printers.go @@ -411,6 +411,7 @@ func AddHandlers(h printers.PrintHandler) { storageClassColumnDefinitions := []metav1alpha1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Provisioner", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["provisioner"]}, + {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, } h.TableHandler(storageClassColumnDefinitions, printStorageClass) @@ -1707,7 +1708,7 @@ func printStorageClass(obj *storage.StorageClass, options printers.PrintOptions) name += " (default)" } provtype := obj.Provisioner - row.Cells = append(row.Cells, name, provtype) + row.Cells = append(row.Cells, name, provtype, translateTimestamp(obj.CreationTimestamp)) return []metav1alpha1.TableRow{row}, nil } diff --git a/pkg/printers/internalversion/printers_test.go b/pkg/printers/internalversion/printers_test.go index ababeaca3bf..0c2454ebd2b 100644 --- a/pkg/printers/internalversion/printers_test.go +++ b/pkg/printers/internalversion/printers_test.go @@ -48,6 +48,7 @@ import ( "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/policy" + "k8s.io/kubernetes/pkg/apis/storage" kubectltesting "k8s.io/kubernetes/pkg/kubectl/testing" "k8s.io/kubernetes/pkg/printers" ) @@ -3017,3 +3018,116 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { buf.Reset() } } + +func TestPrintCronJob(t *testing.T) { + suspend := false + tests := []struct { + cronjob batch.CronJob + expect string + }{ + { + batch.CronJob{ + ObjectMeta: metav1.ObjectMeta{ + Name: "cronjob1", + CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)}, + }, + Spec: batch.CronJobSpec{ + Schedule: "0/5 * * * ?", + Suspend: &suspend, + }, + Status: batch.CronJobStatus{ + LastScheduleTime: &metav1.Time{Time: time.Now().Add(1.9e9)}, + }, + }, + "cronjob1\t0/5 * * * ?\tFalse\t0\t0s\t0s\n", + }, + { + batch.CronJob{ + ObjectMeta: metav1.ObjectMeta{ + Name: "cronjob2", + CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)}, + }, + Spec: batch.CronJobSpec{ + Schedule: "0/5 * * * ?", + Suspend: &suspend, + }, + Status: batch.CronJobStatus{ + LastScheduleTime: &metav1.Time{Time: time.Now().Add(-3e10)}, + }, + }, + "cronjob2\t0/5 * * * ?\tFalse\t0\t30s\t5m\n", + }, + { + batch.CronJob{ + ObjectMeta: metav1.ObjectMeta{ + Name: "cronjob3", + CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)}, + }, + Spec: batch.CronJobSpec{ + Schedule: "0/5 * * * ?", + Suspend: &suspend, + }, + Status: batch.CronJobStatus{}, + }, + "cronjob3\t0/5 * * * ?\tFalse\t0\t\t5m\n", + }, + } + + buf := bytes.NewBuffer([]byte{}) + for _, test := range tests { + table, err := printers.NewTablePrinter().With(AddHandlers).PrintTable(&test.cronjob, printers.PrintOptions{}) + if err != nil { + t.Fatal(err) + } + if err := printers.PrintTable(table, buf, printers.PrintOptions{NoHeaders: true}); err != nil { + t.Fatal(err) + } + if buf.String() != test.expect { + t.Fatalf("Expected: %s, got: %s", test.expect, buf.String()) + } + buf.Reset() + } +} + +func TestPrintStorageClass(t *testing.T) { + tests := []struct { + sc storage.StorageClass + expect string + }{ + { + storage.StorageClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "sc1", + CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)}, + }, + Provisioner: "kubernetes.io/glusterfs", + }, + "sc1\tkubernetes.io/glusterfs\t0s\n", + }, + { + storage.StorageClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "sc2", + CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)}, + }, + Provisioner: "kubernetes.io/nfs", + }, + "sc2\tkubernetes.io/nfs\t5m\n", + }, + } + + buf := bytes.NewBuffer([]byte{}) + for _, test := range tests { + table, err := printers.NewTablePrinter().With(AddHandlers).PrintTable(&test.sc, printers.PrintOptions{}) + if err != nil { + t.Fatal(err) + } + if err := printers.PrintTable(table, buf, printers.PrintOptions{NoHeaders: true}); err != nil { + t.Fatal(err) + } + if buf.String() != test.expect { + t.Fatalf("Expected: %s, got: %s", test.expect, buf.String()) + } + buf.Reset() + } +}