MCPcopy Index your code
hub / github.com/containerd/containerd / Walk

Method Walk

core/metadata/content.go:151–202  ·  view source on GitHub ↗
(ctx context.Context, fn content.WalkFunc, fs ...string)

Source from the content-addressed store, hash-verified

149}
150
151func (cs *contentStore) Walk(ctx context.Context, fn content.WalkFunc, fs ...string) error {
152 ns, err := namespaces.NamespaceRequired(ctx)
153 if err != nil {
154 return err
155 }
156
157 filter, err := filters.ParseAll(fs...)
158 if err != nil {
159 return err
160 }
161
162 // TODO: Batch results to keep from reading all info into memory
163 var infos []content.Info
164 if err := view(ctx, cs.db, func(tx *bolt.Tx) error {
165 bkt := getBlobsBucket(tx, ns)
166 if bkt == nil {
167 return nil
168 }
169
170 return bkt.ForEach(func(k, v []byte) error {
171 dgst, err := digest.Parse(string(k))
172 if err != nil {
173 // Not a digest, skip
174 return nil
175 }
176 bbkt := bkt.Bucket(k)
177 if bbkt == nil {
178 return nil
179 }
180 info := content.Info{
181 Digest: dgst,
182 }
183 if err := readInfo(&info, bkt.Bucket(k)); err != nil {
184 return err
185 }
186 if filter.Match(content.AdaptInfo(info)) {
187 infos = append(infos, info)
188 }
189 return nil
190 })
191 }); err != nil {
192 return err
193 }
194
195 for _, info := range infos {
196 if err := fn(info); err != nil {
197 return err
198 }
199 }
200
201 return nil
202}
203
204func (cs *contentStore) Delete(ctx context.Context, dgst digest.Digest) error {
205 ns, err := namespaces.NamespaceRequired(ctx)

Callers

nothing calls this directly

Calls 7

NamespaceRequiredFunction · 0.92
ParseAllFunction · 0.92
AdaptInfoFunction · 0.92
getBlobsBucketFunction · 0.85
readInfoFunction · 0.85
viewFunction · 0.70
MatchMethod · 0.65

Tested by

no test coverage detected