// List returns a list object, with its resource version set. func (f *FakePVCControllerSource) List(options v1.ListOptions) (runtime.Object, error) { f.lock.RLock() defer f.lock.RUnlock() list, err := f.FakeControllerSource.getListItemsLocked() if err != nil { return nil, err } listObj := &v1.PersistentVolumeClaimList{} if err := meta.SetList(listObj, list); err != nil { return nil, err } objMeta, err := api.ListMetaFor(listObj) if err != nil { return nil, err } resourceVersion := len(f.changes) objMeta.ResourceVersion = strconv.Itoa(resourceVersion) return listObj, nil }
func (t *tracker) List(gvk schema.GroupVersionKind, ns string) (runtime.Object, error) { // Heuristic for list kind: original kind + List suffix. Might // not always be true but this tracker has a pretty limited // understanding of the actual API model. listGVK := gvk listGVK.Kind = listGVK.Kind + "List" list, err := t.scheme.New(listGVK) if err != nil { return nil, err } if !meta.IsListType(list) { return nil, fmt.Errorf("%q is not a list type", listGVK.Kind) } t.lock.RLock() defer t.lock.RUnlock() objs, ok := t.objects[gvk] if !ok { return list, nil } matchingObjs, err := filterByNamespaceAndName(objs, ns, "") if err != nil { return nil, err } if err := meta.SetList(list, matchingObjs); err != nil { return nil, err } if list, err = t.scheme.Copy(list); err != nil { return nil, err } return list, nil }