mirror of https://github.com/k3s-io/k3s
fix issue(#50937)Fix kubectl get pvc lose volume name
parent
2ba796fe47
commit
1a1b940ecb
|
@ -277,6 +277,7 @@ func AddHandlers(h printers.PrintHandler) {
|
|||
persistentVolumeClaimColumnDefinitions := []metav1alpha1.TableColumnDefinition{
|
||||
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
|
||||
{Name: "Status", Type: "string", Description: apiv1.PersistentVolumeClaimStatus{}.SwaggerDoc()["phase"]},
|
||||
{Name: "Volume", Type: "string", Description: apiv1.PersistentVolumeSpec{}.SwaggerDoc()["volumeName"]},
|
||||
{Name: "Capacity", Type: "string", Description: apiv1.PersistentVolumeClaimStatus{}.SwaggerDoc()["capacity"]},
|
||||
{Name: "Access Modes", Type: "string", Description: apiv1.PersistentVolumeClaimStatus{}.SwaggerDoc()["accessModes"]},
|
||||
{Name: "StorageClass", Type: "string", Description: "StorageClass of the pvc"},
|
||||
|
|
|
@ -2882,3 +2882,103 @@ func TestPrintReplicaSet(t *testing.T) {
|
|||
buf.Reset()
|
||||
}
|
||||
}
|
||||
|
||||
func TestPrintPersistentVolumeClaim(t *testing.T) {
|
||||
myScn := "my-scn"
|
||||
tests := []struct {
|
||||
pvc api.PersistentVolumeClaim
|
||||
expect string
|
||||
}{
|
||||
{
|
||||
// Test name, num of containers, restarts, container ready status
|
||||
api.PersistentVolumeClaim{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test1",
|
||||
},
|
||||
Spec: api.PersistentVolumeClaimSpec{
|
||||
VolumeName: "my-volume",
|
||||
},
|
||||
Status: api.PersistentVolumeClaimStatus{
|
||||
Phase: api.ClaimBound,
|
||||
AccessModes: []api.PersistentVolumeAccessMode{api.ReadOnlyMany},
|
||||
Capacity: map[api.ResourceName]resource.Quantity{
|
||||
api.ResourceStorage: resource.MustParse("4Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
"test1\tBound\tmy-volume\t4Gi\tROX\t\t<unknown>\n",
|
||||
},
|
||||
{
|
||||
// Test name, num of containers, restarts, container ready status
|
||||
api.PersistentVolumeClaim{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test2",
|
||||
},
|
||||
Spec: api.PersistentVolumeClaimSpec{},
|
||||
Status: api.PersistentVolumeClaimStatus{
|
||||
Phase: api.ClaimLost,
|
||||
AccessModes: []api.PersistentVolumeAccessMode{api.ReadOnlyMany},
|
||||
Capacity: map[api.ResourceName]resource.Quantity{
|
||||
api.ResourceStorage: resource.MustParse("4Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
"test2\tLost\t\t\t\t\t<unknown>\n",
|
||||
},
|
||||
{
|
||||
// Test name, num of containers, restarts, container ready status
|
||||
api.PersistentVolumeClaim{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test3",
|
||||
},
|
||||
Spec: api.PersistentVolumeClaimSpec{
|
||||
VolumeName: "my-volume",
|
||||
},
|
||||
Status: api.PersistentVolumeClaimStatus{
|
||||
Phase: api.ClaimPending,
|
||||
AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteMany},
|
||||
Capacity: map[api.ResourceName]resource.Quantity{
|
||||
api.ResourceStorage: resource.MustParse("10Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
"test3\tPending\tmy-volume\t10Gi\tRWX\t\t<unknown>\n",
|
||||
},
|
||||
{
|
||||
// Test name, num of containers, restarts, container ready status
|
||||
api.PersistentVolumeClaim{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test4",
|
||||
},
|
||||
Spec: api.PersistentVolumeClaimSpec{
|
||||
VolumeName: "my-volume",
|
||||
StorageClassName: &myScn,
|
||||
},
|
||||
Status: api.PersistentVolumeClaimStatus{
|
||||
Phase: api.ClaimPending,
|
||||
AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce},
|
||||
Capacity: map[api.ResourceName]resource.Quantity{
|
||||
api.ResourceStorage: resource.MustParse("10Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
"test4\tPending\tmy-volume\t10Gi\tRWO\tmy-scn\t<unknown>\n",
|
||||
},
|
||||
}
|
||||
buf := bytes.NewBuffer([]byte{})
|
||||
for _, test := range tests {
|
||||
table, err := printers.NewTablePrinter().With(AddHandlers).PrintTable(&test.pvc, 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 {
|
||||
fmt.Println(buf.String())
|
||||
fmt.Println(test.expect)
|
||||
t.Fatalf("Expected: %s, but got: %s", test.expect, buf.String())
|
||||
}
|
||||
buf.Reset()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue