mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Make GetRemainingItemCount/SetRemainingItemCount use pointers
This commit is contained in:
		@@ -112,7 +112,7 @@ func (h *HumanReadablePrinter) GenerateTable(obj runtime.Object, options PrintOp
 | 
				
			|||||||
		table.ResourceVersion = m.GetResourceVersion()
 | 
							table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
		table.SelfLink = m.GetSelfLink()
 | 
							table.SelfLink = m.GetSelfLink()
 | 
				
			||||||
		table.Continue = m.GetContinue()
 | 
							table.Continue = m.GetContinue()
 | 
				
			||||||
		table.SetRemainingItemCount(m.GetRemainingItemCount())
 | 
							table.RemainingItemCount = m.GetRemainingItemCount()
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		if m, err := meta.CommonAccessor(obj); err == nil {
 | 
							if m, err := meta.CommonAccessor(obj); err == nil {
 | 
				
			||||||
			table.ResourceVersion = m.GetResourceVersion()
 | 
								table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -87,7 +87,7 @@ func (c *convertor) ConvertToTable(ctx context.Context, obj runtime.Object, tabl
 | 
				
			|||||||
		table.ResourceVersion = m.GetResourceVersion()
 | 
							table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
		table.SelfLink = m.GetSelfLink()
 | 
							table.SelfLink = m.GetSelfLink()
 | 
				
			||||||
		table.Continue = m.GetContinue()
 | 
							table.Continue = m.GetContinue()
 | 
				
			||||||
		table.SetRemainingItemCount(m.GetRemainingItemCount())
 | 
							table.RemainingItemCount = m.GetRemainingItemCount()
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		if m, err := meta.CommonAccessor(obj); err == nil {
 | 
							if m, err := meta.CommonAccessor(obj); err == nil {
 | 
				
			||||||
			table.ResourceVersion = m.GetResourceVersion()
 | 
								table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -94,8 +94,8 @@ type ListInterface interface {
 | 
				
			|||||||
	SetSelfLink(selfLink string)
 | 
						SetSelfLink(selfLink string)
 | 
				
			||||||
	GetContinue() string
 | 
						GetContinue() string
 | 
				
			||||||
	SetContinue(c string)
 | 
						SetContinue(c string)
 | 
				
			||||||
	GetRemainingItemCount() int64
 | 
						GetRemainingItemCount() *int64
 | 
				
			||||||
	SetRemainingItemCount(c int64)
 | 
						SetRemainingItemCount(c *int64)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Type exposes the type and APIVersion of versioned or internal API objects.
 | 
					// Type exposes the type and APIVersion of versioned or internal API objects.
 | 
				
			||||||
@@ -115,20 +115,8 @@ func (meta *ListMeta) GetSelfLink() string               { return meta.SelfLink
 | 
				
			|||||||
func (meta *ListMeta) SetSelfLink(selfLink string)       { meta.SelfLink = selfLink }
 | 
					func (meta *ListMeta) SetSelfLink(selfLink string)       { meta.SelfLink = selfLink }
 | 
				
			||||||
func (meta *ListMeta) GetContinue() string               { return meta.Continue }
 | 
					func (meta *ListMeta) GetContinue() string               { return meta.Continue }
 | 
				
			||||||
func (meta *ListMeta) SetContinue(c string)              { meta.Continue = c }
 | 
					func (meta *ListMeta) SetContinue(c string)              { meta.Continue = c }
 | 
				
			||||||
 | 
					func (meta *ListMeta) GetRemainingItemCount() *int64     { return meta.RemainingItemCount }
 | 
				
			||||||
func (meta *ListMeta) GetRemainingItemCount() int64 {
 | 
					func (meta *ListMeta) SetRemainingItemCount(c *int64)    { meta.RemainingItemCount = c }
 | 
				
			||||||
	if meta.RemainingItemCount != nil {
 | 
					 | 
				
			||||||
		return *meta.RemainingItemCount
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (meta *ListMeta) SetRemainingItemCount(c int64) {
 | 
					 | 
				
			||||||
	if meta.RemainingItemCount == nil {
 | 
					 | 
				
			||||||
		meta.RemainingItemCount = new(int64)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*meta.RemainingItemCount = c
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj }
 | 
					func (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -283,6 +283,14 @@ func getNestedInt64(obj map[string]interface{}, fields ...string) int64 {
 | 
				
			|||||||
	return val
 | 
						return val
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getNestedInt64Pointer(obj map[string]interface{}, fields ...string) *int64 {
 | 
				
			||||||
 | 
						val, found, err := NestedInt64(obj, fields...)
 | 
				
			||||||
 | 
						if !found || err != nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return &val
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func jsonPath(fields []string) string {
 | 
					func jsonPath(fields []string) string {
 | 
				
			||||||
	return "." + strings.Join(fields, ".")
 | 
						return "." + strings.Join(fields, ".")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -320,12 +320,16 @@ func (u *Unstructured) SetContinue(c string) {
 | 
				
			|||||||
	u.setNestedField(c, "metadata", "continue")
 | 
						u.setNestedField(c, "metadata", "continue")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (u *Unstructured) GetRemainingItemCount() int64 {
 | 
					func (u *Unstructured) GetRemainingItemCount() *int64 {
 | 
				
			||||||
	return getNestedInt64(u.Object, "metadata", "remainingItemCount")
 | 
						return getNestedInt64Pointer(u.Object, "metadata", "remainingItemCount")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (u *Unstructured) SetRemainingItemCount(c int64) {
 | 
					func (u *Unstructured) SetRemainingItemCount(c *int64) {
 | 
				
			||||||
	u.setNestedField(c, "metadata", "remainingItemCount")
 | 
						if c == nil {
 | 
				
			||||||
 | 
							RemoveNestedField(u.Object, "metadata", "remainingItemCount")
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							u.setNestedField(*c, "metadata", "remainingItemCount")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (u *Unstructured) GetCreationTimestamp() metav1.Time {
 | 
					func (u *Unstructured) GetCreationTimestamp() metav1.Time {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -166,12 +166,16 @@ func (u *UnstructuredList) SetContinue(c string) {
 | 
				
			|||||||
	u.setNestedField(c, "metadata", "continue")
 | 
						u.setNestedField(c, "metadata", "continue")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (u *UnstructuredList) GetRemainingItemCount() int64 {
 | 
					func (u *UnstructuredList) GetRemainingItemCount() *int64 {
 | 
				
			||||||
	return getNestedInt64(u.Object, "metadata", "remainingItemCount")
 | 
						return getNestedInt64Pointer(u.Object, "metadata", "remainingItemCount")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (u *UnstructuredList) SetRemainingItemCount(c int64) {
 | 
					func (u *UnstructuredList) SetRemainingItemCount(c *int64) {
 | 
				
			||||||
	u.setNestedField(c, "metadata", "remainingItemCount")
 | 
						if c == nil {
 | 
				
			||||||
 | 
							RemoveNestedField(u.Object, "metadata", "remainingItemCount")
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							u.setNestedField(*c, "metadata", "remainingItemCount")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind) {
 | 
					func (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -209,26 +209,14 @@ type InternalTypeMeta struct {
 | 
				
			|||||||
	OwnerReferences    []metav1.OwnerReference `json:"ownerReferences,omitempty"`
 | 
						OwnerReferences    []metav1.OwnerReference `json:"ownerReferences,omitempty"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (m *InternalTypeMeta) GetResourceVersion() string   { return m.ResourceVersion }
 | 
					func (m *InternalTypeMeta) GetResourceVersion() string     { return m.ResourceVersion }
 | 
				
			||||||
func (m *InternalTypeMeta) SetResourceVersion(rv string) { m.ResourceVersion = rv }
 | 
					func (m *InternalTypeMeta) SetResourceVersion(rv string)   { m.ResourceVersion = rv }
 | 
				
			||||||
func (m *InternalTypeMeta) GetSelfLink() string          { return m.SelfLink }
 | 
					func (m *InternalTypeMeta) GetSelfLink() string            { return m.SelfLink }
 | 
				
			||||||
func (m *InternalTypeMeta) SetSelfLink(link string)      { m.SelfLink = link }
 | 
					func (m *InternalTypeMeta) SetSelfLink(link string)        { m.SelfLink = link }
 | 
				
			||||||
func (m *InternalTypeMeta) GetContinue() string          { return m.Continue }
 | 
					func (m *InternalTypeMeta) GetContinue() string            { return m.Continue }
 | 
				
			||||||
func (m *InternalTypeMeta) SetContinue(c string)         { m.Continue = c }
 | 
					func (m *InternalTypeMeta) SetContinue(c string)           { m.Continue = c }
 | 
				
			||||||
 | 
					func (m *InternalTypeMeta) GetRemainingItemCount() *int64  { return m.RemainingItemCount }
 | 
				
			||||||
func (m *InternalTypeMeta) GetRemainingItemCount() int64 {
 | 
					func (m *InternalTypeMeta) SetRemainingItemCount(c *int64) { m.RemainingItemCount = c }
 | 
				
			||||||
	if m.RemainingItemCount != nil {
 | 
					 | 
				
			||||||
		return *m.RemainingItemCount
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (m *InternalTypeMeta) SetRemainingItemCount(c int64) {
 | 
					 | 
				
			||||||
	if m.RemainingItemCount == nil {
 | 
					 | 
				
			||||||
		m.RemainingItemCount = new(int64)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*m.RemainingItemCount = c
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
type MyAPIObject struct {
 | 
					type MyAPIObject struct {
 | 
				
			||||||
	TypeMeta InternalTypeMeta `json:",inline"`
 | 
						TypeMeta InternalTypeMeta `json:",inline"`
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,7 +67,7 @@ func (c defaultTableConvertor) ConvertToTable(ctx context.Context, object runtim
 | 
				
			|||||||
		table.ResourceVersion = m.GetResourceVersion()
 | 
							table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
		table.SelfLink = m.GetSelfLink()
 | 
							table.SelfLink = m.GetSelfLink()
 | 
				
			||||||
		table.Continue = m.GetContinue()
 | 
							table.Continue = m.GetContinue()
 | 
				
			||||||
		table.SetRemainingItemCount(m.GetRemainingItemCount())
 | 
							table.RemainingItemCount = m.GetRemainingItemCount()
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		if m, err := meta.CommonAccessor(object); err == nil {
 | 
							if m, err := meta.CommonAccessor(object); err == nil {
 | 
				
			||||||
			table.ResourceVersion = m.GetResourceVersion()
 | 
								table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -605,7 +605,7 @@ func (c *Cacher) GetToList(ctx context.Context, key string, resourceVersion stri
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if c.versioner != nil {
 | 
						if c.versioner != nil {
 | 
				
			||||||
		if err := c.versioner.UpdateList(listObj, readResourceVersion, "", 0); err != nil {
 | 
							if err := c.versioner.UpdateList(listObj, readResourceVersion, "", nil); err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -680,7 +680,7 @@ func (c *Cacher) List(ctx context.Context, key string, resourceVersion string, p
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	trace.Step(fmt.Sprintf("Filtered %d items", listVal.Len()))
 | 
						trace.Step(fmt.Sprintf("Filtered %d items", listVal.Len()))
 | 
				
			||||||
	if c.versioner != nil {
 | 
						if c.versioner != nil {
 | 
				
			||||||
		if err := c.versioner.UpdateList(listObj, readResourceVersion, "", 0); err != nil {
 | 
							if err := c.versioner.UpdateList(listObj, readResourceVersion, "", nil); err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -217,7 +217,7 @@ type testVersioner struct{}
 | 
				
			|||||||
func (testVersioner) UpdateObject(obj runtime.Object, resourceVersion uint64) error {
 | 
					func (testVersioner) UpdateObject(obj runtime.Object, resourceVersion uint64) error {
 | 
				
			||||||
	return meta.NewAccessor().SetResourceVersion(obj, strconv.FormatUint(resourceVersion, 10))
 | 
						return meta.NewAccessor().SetResourceVersion(obj, strconv.FormatUint(resourceVersion, 10))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
func (testVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string, count int64) error {
 | 
					func (testVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string, count *int64) error {
 | 
				
			||||||
	listAccessor, err := meta.ListAccessor(obj)
 | 
						listAccessor, err := meta.ListAccessor(obj)
 | 
				
			||||||
	if err != nil || listAccessor == nil {
 | 
						if err != nil || listAccessor == nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,7 +44,7 @@ func (a APIObjectVersioner) UpdateObject(obj runtime.Object, resourceVersion uin
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UpdateList implements Versioner
 | 
					// UpdateList implements Versioner
 | 
				
			||||||
func (a APIObjectVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, nextKey string, count int64) error {
 | 
					func (a APIObjectVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, nextKey string, count *int64) error {
 | 
				
			||||||
	listAccessor, err := meta.ListAccessor(obj)
 | 
						listAccessor, err := meta.ListAccessor(obj)
 | 
				
			||||||
	if err != nil || listAccessor == nil {
 | 
						if err != nil || listAccessor == nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,6 +41,7 @@ go_test(
 | 
				
			|||||||
        "//vendor/github.com/coreos/pkg/capnslog:go_default_library",
 | 
					        "//vendor/github.com/coreos/pkg/capnslog:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/stretchr/testify/assert:go_default_library",
 | 
					        "//vendor/github.com/stretchr/testify/assert:go_default_library",
 | 
				
			||||||
        "//vendor/github.com/stretchr/testify/require:go_default_library",
 | 
					        "//vendor/github.com/stretchr/testify/require:go_default_library",
 | 
				
			||||||
 | 
					        "//vendor/k8s.io/utils/pointer:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -391,7 +391,7 @@ func (s *store) GetToList(ctx context.Context, key string, resourceVersion strin
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// update version with cluster level revision
 | 
						// update version with cluster level revision
 | 
				
			||||||
	return s.versioner.UpdateList(listObj, uint64(getResp.Header.Revision), "", 0)
 | 
						return s.versioner.UpdateList(listObj, uint64(getResp.Header.Revision), "", nil)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (s *store) Count(key string) (int64, error) {
 | 
					func (s *store) Count(key string) (int64, error) {
 | 
				
			||||||
@@ -618,17 +618,19 @@ func (s *store) List(ctx context.Context, key, resourceVersion string, pred stor
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		remainingItemCount := getResp.Count - pred.Limit
 | 
							var remainingItemCount *int64
 | 
				
			||||||
		// getResp.Count counts in objects that do not match the pred.
 | 
							// getResp.Count counts in objects that do not match the pred.
 | 
				
			||||||
		// Instead of returning inaccurate count, return 0.
 | 
							// Instead of returning inaccurate count for non-empty selectors, we return nil.
 | 
				
			||||||
		if !pred.Empty() {
 | 
							// Only set remainingItemCount if the predicate is empty.
 | 
				
			||||||
			remainingItemCount = 0
 | 
							if pred.Empty() {
 | 
				
			||||||
 | 
								c := int64(getResp.Count - pred.Limit)
 | 
				
			||||||
 | 
								remainingItemCount = &c
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return s.versioner.UpdateList(listObj, uint64(returnedRV), next, remainingItemCount)
 | 
							return s.versioner.UpdateList(listObj, uint64(returnedRV), next, remainingItemCount)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// no continuation
 | 
						// no continuation
 | 
				
			||||||
	return s.versioner.UpdateList(listObj, uint64(returnedRV), "", 0)
 | 
						return s.versioner.UpdateList(listObj, uint64(returnedRV), "", nil)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// growSlice takes a slice value and grows its capacity up
 | 
					// growSlice takes a slice value and grows its capacity up
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,6 +47,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apiserver/pkg/storage/etcd"
 | 
						"k8s.io/apiserver/pkg/storage/etcd"
 | 
				
			||||||
	storagetests "k8s.io/apiserver/pkg/storage/tests"
 | 
						storagetests "k8s.io/apiserver/pkg/storage/tests"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/storage/value"
 | 
						"k8s.io/apiserver/pkg/storage/value"
 | 
				
			||||||
 | 
						utilpointer "k8s.io/utils/pointer"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var scheme = runtime.NewScheme()
 | 
					var scheme = runtime.NewScheme()
 | 
				
			||||||
@@ -831,7 +832,7 @@ func TestList(t *testing.T) {
 | 
				
			|||||||
		pred                       storage.SelectionPredicate
 | 
							pred                       storage.SelectionPredicate
 | 
				
			||||||
		expectedOut                []*example.Pod
 | 
							expectedOut                []*example.Pod
 | 
				
			||||||
		expectContinue             bool
 | 
							expectContinue             bool
 | 
				
			||||||
		expectedRemainingItemCount int64
 | 
							expectedRemainingItemCount *int64
 | 
				
			||||||
		expectError                bool
 | 
							expectError                bool
 | 
				
			||||||
	}{
 | 
						}{
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -884,7 +885,7 @@ func TestList(t *testing.T) {
 | 
				
			|||||||
			},
 | 
								},
 | 
				
			||||||
			expectedOut:                []*example.Pod{preset[1].storedObj},
 | 
								expectedOut:                []*example.Pod{preset[1].storedObj},
 | 
				
			||||||
			expectContinue:             true,
 | 
								expectContinue:             true,
 | 
				
			||||||
			expectedRemainingItemCount: 1,
 | 
								expectedRemainingItemCount: utilpointer.Int64Ptr(1),
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			name:          "test List with limit when paging disabled",
 | 
								name:          "test List with limit when paging disabled",
 | 
				
			||||||
@@ -1062,8 +1063,8 @@ func TestList(t *testing.T) {
 | 
				
			|||||||
			t.Errorf("(%s): length of list want=%d, got=%d", tt.name, len(tt.expectedOut), len(out.Items))
 | 
								t.Errorf("(%s): length of list want=%d, got=%d", tt.name, len(tt.expectedOut), len(out.Items))
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if e, a := tt.expectedRemainingItemCount, out.ListMeta.GetRemainingItemCount(); e != a {
 | 
							if e, a := tt.expectedRemainingItemCount, out.ListMeta.GetRemainingItemCount(); (e == nil) != (a == nil) || (e != nil && a != nil && *e != *a) {
 | 
				
			||||||
			t.Errorf("(%s): remainingItemCount want=%d, got=%d", tt.name, e, a)
 | 
								t.Errorf("(%s): remainingItemCount want=%#v, got=%#v", tt.name, e, a)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		for j, wantPod := range tt.expectedOut {
 | 
							for j, wantPod := range tt.expectedOut {
 | 
				
			||||||
			getPod := &out.Items[j]
 | 
								getPod := &out.Items[j]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,8 +44,8 @@ type Versioner interface {
 | 
				
			|||||||
	// database. continueValue is optional and indicates that more results are available if the client
 | 
						// database. continueValue is optional and indicates that more results are available if the client
 | 
				
			||||||
	// passes that value to the server in a subsequent call. remainingItemCount indicates the number
 | 
						// passes that value to the server in a subsequent call. remainingItemCount indicates the number
 | 
				
			||||||
	// of remaining objects if the list is partial. The remainingItemCount field is omitted during
 | 
						// of remaining objects if the list is partial. The remainingItemCount field is omitted during
 | 
				
			||||||
	// serialization if it is set to 0.
 | 
						// serialization if it is set to nil.
 | 
				
			||||||
	UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string, remainingItemCount int64) error
 | 
						UpdateList(obj runtime.Object, resourceVersion uint64, continueValue string, remainingItemCount *int64) error
 | 
				
			||||||
	// PrepareObjectForStorage should set SelfLink and ResourceVersion to the empty value. Should
 | 
						// PrepareObjectForStorage should set SelfLink and ResourceVersion to the empty value. Should
 | 
				
			||||||
	// return an error if the specified object cannot be updated.
 | 
						// return an error if the specified object cannot be updated.
 | 
				
			||||||
	PrepareObjectForStorage(obj runtime.Object) error
 | 
						PrepareObjectForStorage(obj runtime.Object) error
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,7 +73,7 @@ func (c *REST) ConvertToTable(ctx context.Context, obj runtime.Object, tableOpti
 | 
				
			|||||||
		table.ResourceVersion = m.GetResourceVersion()
 | 
							table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
		table.SelfLink = m.GetSelfLink()
 | 
							table.SelfLink = m.GetSelfLink()
 | 
				
			||||||
		table.Continue = m.GetContinue()
 | 
							table.Continue = m.GetContinue()
 | 
				
			||||||
		table.SetRemainingItemCount(m.GetRemainingItemCount())
 | 
							table.RemainingItemCount = m.GetRemainingItemCount()
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		if m, err := meta.CommonAccessor(obj); err == nil {
 | 
							if m, err := meta.CommonAccessor(obj); err == nil {
 | 
				
			||||||
			table.ResourceVersion = m.GetResourceVersion()
 | 
								table.ResourceVersion = m.GetResourceVersion()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,7 +89,12 @@ var _ = SIGDescribe("Servers with support for API chunking", func() {
 | 
				
			|||||||
					lastRV = list.ResourceVersion
 | 
										lastRV = list.ResourceVersion
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				gomega.Expect(list.ResourceVersion).To(gomega.Equal(lastRV))
 | 
									gomega.Expect(list.ResourceVersion).To(gomega.Equal(lastRV))
 | 
				
			||||||
				gomega.Expect(int(list.GetRemainingItemCount()) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
									if list.GetContinue() == "" {
 | 
				
			||||||
 | 
										gomega.Expect(list.GetRemainingItemCount()).To(gomega.BeNil())
 | 
				
			||||||
 | 
									} else {
 | 
				
			||||||
 | 
										gomega.Expect(list.GetRemainingItemCount()).ToNot(gomega.BeNil())
 | 
				
			||||||
 | 
										gomega.Expect(int(*list.GetRemainingItemCount()) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
				for _, item := range list.Items {
 | 
									for _, item := range list.Items {
 | 
				
			||||||
					gomega.Expect(item.Name).To(gomega.Equal(fmt.Sprintf("template-%04d", found)))
 | 
										gomega.Expect(item.Name).To(gomega.Equal(fmt.Sprintf("template-%04d", found)))
 | 
				
			||||||
					found++
 | 
										found++
 | 
				
			||||||
@@ -122,7 +127,12 @@ var _ = SIGDescribe("Servers with support for API chunking", func() {
 | 
				
			|||||||
		gomega.Expect(err).ToNot(gomega.HaveOccurred(), "failed to list pod templates in namespace: %s, given limit: %d", ns, opts.Limit)
 | 
							gomega.Expect(err).ToNot(gomega.HaveOccurred(), "failed to list pod templates in namespace: %s, given limit: %d", ns, opts.Limit)
 | 
				
			||||||
		firstToken := list.Continue
 | 
							firstToken := list.Continue
 | 
				
			||||||
		firstRV := list.ResourceVersion
 | 
							firstRV := list.ResourceVersion
 | 
				
			||||||
		gomega.Expect(int(list.GetRemainingItemCount()) + len(list.Items)).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
							if list.GetContinue() == "" {
 | 
				
			||||||
 | 
								gomega.Expect(list.GetRemainingItemCount()).To(gomega.BeNil())
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								gomega.Expect(list.GetRemainingItemCount()).ToNot(gomega.BeNil())
 | 
				
			||||||
 | 
								gomega.Expect(int(*list.GetRemainingItemCount()) + len(list.Items)).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		e2elog.Logf("Retrieved %d/%d results with rv %s and continue %s", len(list.Items), opts.Limit, list.ResourceVersion, firstToken)
 | 
							e2elog.Logf("Retrieved %d/%d results with rv %s and continue %s", len(list.Items), opts.Limit, list.ResourceVersion, firstToken)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ginkgo.By("retrieving the second page until the token expires")
 | 
							ginkgo.By("retrieving the second page until the token expires")
 | 
				
			||||||
@@ -157,7 +167,12 @@ var _ = SIGDescribe("Servers with support for API chunking", func() {
 | 
				
			|||||||
		gomega.Expect(list.ResourceVersion).ToNot(gomega.Equal(firstRV))
 | 
							gomega.Expect(list.ResourceVersion).ToNot(gomega.Equal(firstRV))
 | 
				
			||||||
		gomega.Expect(len(list.Items)).To(gomega.BeNumerically("==", opts.Limit))
 | 
							gomega.Expect(len(list.Items)).To(gomega.BeNumerically("==", opts.Limit))
 | 
				
			||||||
		found := int(oneTenth)
 | 
							found := int(oneTenth)
 | 
				
			||||||
		gomega.Expect(int(list.GetRemainingItemCount()) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
							if list.GetContinue() == "" {
 | 
				
			||||||
 | 
								gomega.Expect(list.GetRemainingItemCount()).To(gomega.BeNil())
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								gomega.Expect(list.GetRemainingItemCount()).ToNot(gomega.BeNil())
 | 
				
			||||||
 | 
								gomega.Expect(int(*list.GetRemainingItemCount()) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		for _, item := range list.Items {
 | 
							for _, item := range list.Items {
 | 
				
			||||||
			gomega.Expect(item.Name).To(gomega.Equal(fmt.Sprintf("template-%04d", found)))
 | 
								gomega.Expect(item.Name).To(gomega.Equal(fmt.Sprintf("template-%04d", found)))
 | 
				
			||||||
			found++
 | 
								found++
 | 
				
			||||||
@@ -169,7 +184,12 @@ var _ = SIGDescribe("Servers with support for API chunking", func() {
 | 
				
			|||||||
		for {
 | 
							for {
 | 
				
			||||||
			list, err := client.List(opts)
 | 
								list, err := client.List(opts)
 | 
				
			||||||
			gomega.Expect(err).ToNot(gomega.HaveOccurred(), "failed to list pod templates in namespace: %s, given limit: %d", ns, opts.Limit)
 | 
								gomega.Expect(err).ToNot(gomega.HaveOccurred(), "failed to list pod templates in namespace: %s, given limit: %d", ns, opts.Limit)
 | 
				
			||||||
			gomega.Expect(int(list.GetRemainingItemCount()) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
								if list.GetContinue() == "" {
 | 
				
			||||||
 | 
									gomega.Expect(list.GetRemainingItemCount()).To(gomega.BeNil())
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									gomega.Expect(list.GetRemainingItemCount()).ToNot(gomega.BeNil())
 | 
				
			||||||
 | 
									gomega.Expect(int(*list.GetRemainingItemCount()) + len(list.Items) + found).To(gomega.BeNumerically("==", numberOfTotalResources))
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			e2elog.Logf("Retrieved %d/%d results with rv %s and continue %s", len(list.Items), opts.Limit, list.ResourceVersion, list.Continue)
 | 
								e2elog.Logf("Retrieved %d/%d results with rv %s and continue %s", len(list.Items), opts.Limit, list.ResourceVersion, list.Continue)
 | 
				
			||||||
			gomega.Expect(len(list.Items)).To(gomega.BeNumerically("<=", opts.Limit))
 | 
								gomega.Expect(len(list.Items)).To(gomega.BeNumerically("<=", opts.Limit))
 | 
				
			||||||
			gomega.Expect(list.ResourceVersion).To(gomega.Equal(lastRV))
 | 
								gomega.Expect(list.ResourceVersion).To(gomega.Equal(lastRV))
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user