From 45f52321e52c5e5705a1c7ad3c17e52de262f469 Mon Sep 17 00:00:00 2001 From: Iceber Gu Date: Wed, 22 Dec 2021 13:48:12 +0800 Subject: [PATCH] set RemainingItemCount to ParitalObjectMetadataList --- .../pkg/endpoints/handlers/response.go | 2 ++ .../pkg/endpoints/handlers/response_test.go | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go index f9b38e07d37..e19cafdda11 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go @@ -247,6 +247,7 @@ func asPartialObjectMetadataList(result runtime.Object, groupVersion schema.Grou list.SelfLink = li.GetSelfLink() list.ResourceVersion = li.GetResourceVersion() list.Continue = li.GetContinue() + list.RemainingItemCount = li.GetRemainingItemCount() return list, nil case groupVersion == metav1.SchemeGroupVersion: @@ -267,6 +268,7 @@ func asPartialObjectMetadataList(result runtime.Object, groupVersion schema.Grou list.SelfLink = li.GetSelfLink() list.ResourceVersion = li.GetResourceVersion() list.Continue = li.GetContinue() + list.RemainingItemCount = li.GetRemainingItemCount() return list, nil default: diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response_test.go index d47a81e0c91..4cd37aa7c34 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response_test.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response_test.go @@ -171,3 +171,36 @@ func TestCacheableObject(t *testing.T) { }) } } + +func TestAsPartialObjectMetadataList(t *testing.T) { + var remainingItemCount int64 = 10 + pods := &examplev1.PodList{ + ListMeta: metav1.ListMeta{ + SelfLink: "/test/link", + ResourceVersion: "10", + Continue: "continuetoken", + RemainingItemCount: &remainingItemCount, + }, + } + + pomGVs := []schema.GroupVersion{metav1beta1.SchemeGroupVersion, metav1.SchemeGroupVersion} + for _, gv := range pomGVs { + t.Run(fmt.Sprintf("as %s PartialObjectMetadataList", gv), func(t *testing.T) { + list, err := asPartialObjectMetadataList(pods, gv) + if err != nil { + t.Fatalf("failed to transform object: %v", err) + } + + var listMeta metav1.ListMeta + switch gv { + case metav1beta1.SchemeGroupVersion: + listMeta = list.(*metav1beta1.PartialObjectMetadataList).ListMeta + case metav1.SchemeGroupVersion: + listMeta = list.(*metav1.PartialObjectMetadataList).ListMeta + } + if !reflect.DeepEqual(pods.ListMeta, listMeta) { + t.Errorf("unexpected list metadata: %v, expected: %v", listMeta, pods.ListMeta) + } + }) + } +}