From 09e241294f154d8c8bc5ca1e234dfe7889a4c511 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Wed, 12 Jul 2017 12:34:43 +0200 Subject: [PATCH] Implement kubectl describe --- pkg/printers/internalversion/describe.go | 18 ++++++++++++++++++ pkg/printers/internalversion/describe_test.go | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/pkg/printers/internalversion/describe.go b/pkg/printers/internalversion/describe.go index a32413f0463..57b41dcaef6 100644 --- a/pkg/printers/internalversion/describe.go +++ b/pkg/printers/internalversion/describe.go @@ -26,6 +26,7 @@ import ( "net/url" "reflect" "sort" + "strconv" "strings" "text/tabwriter" "time" @@ -744,6 +745,8 @@ func describeVolumes(volumes []api.Volume, w PrefixWriter, space string) { printCephFSVolumeSource(volume.VolumeSource.CephFS, w) case volume.VolumeSource.StorageOS != nil: printStorageOSVolumeSource(volume.VolumeSource.StorageOS, w) + case volume.VolumeSource.FC != nil: + printFCVolumeSource(volume.VolumeSource.FC, w) default: w.Write(LEVEL_1, "\n") } @@ -960,6 +963,19 @@ func printStorageOSPersistentVolumeSource(storageos *api.StorageOSPersistentVolu storageos.VolumeName, storageos.VolumeNamespace, storageos.FSType, storageos.ReadOnly) } +func printFCVolumeSource(fc *api.FCVolumeSource, w PrefixWriter) { + lun := "" + if fc.Lun != nil { + lun = strconv.Itoa(int(*fc.Lun)) + } + w.Write(LEVEL_2, "Type:\tFC (a Fibre Channel disk)\n"+ + " TargetWWNs:\t%v\n"+ + " LUN:\t%v\n"+ + " FSType:\t%v\n"+ + " ReadOnly:\t%v\n", + strings.Join(fc.TargetWWNs, ", "), lun, fc.FSType, fc.ReadOnly) +} + type PersistentVolumeDescriber struct { clientset.Interface } @@ -1035,6 +1051,8 @@ func describePersistentVolume(pv *api.PersistentVolume, events *api.EventList) ( printCephFSVolumeSource(pv.Spec.CephFS, w) case pv.Spec.StorageOS != nil: printStorageOSPersistentVolumeSource(pv.Spec.StorageOS, w) + case pv.Spec.FC != nil: + printFCVolumeSource(pv.Spec.FC, w) } if events != nil { diff --git a/pkg/printers/internalversion/describe_test.go b/pkg/printers/internalversion/describe_test.go index f1c67dde9f8..3e57d4982c8 100644 --- a/pkg/printers/internalversion/describe_test.go +++ b/pkg/printers/internalversion/describe_test.go @@ -700,6 +700,14 @@ func TestPersistentVolumeDescriber(t *testing.T) { }, }, }, + "fc": { + ObjectMeta: metav1.ObjectMeta{Name: "bar"}, + Spec: api.PersistentVolumeSpec{ + PersistentVolumeSource: api.PersistentVolumeSource{ + FC: &api.FCVolumeSource{}, + }, + }, + }, } for name, pv := range tests {