MCPcopy
hub / github.com/containerd/containerd / readContainer

Function readContainer

core/metadata/containers.go:356–410  ·  view source on GitHub ↗
(container *containers.Container, bkt *bolt.Bucket)

Source from the content-addressed store, hash-verified

354}
355
356func readContainer(container *containers.Container, bkt *bolt.Bucket) error {
357 labels, err := boltutil.ReadLabels(bkt)
358 if err != nil {
359 return err
360 }
361 container.Labels = labels
362
363 if err := boltutil.ReadTimestamps(bkt, &container.CreatedAt, &container.UpdatedAt); err != nil {
364 return err
365 }
366
367 return bkt.ForEach(func(k, v []byte) error {
368 switch string(k) {
369 case string(bucketKeyImage):
370 container.Image = string(v)
371 case string(bucketKeyRuntime):
372 rbkt := bkt.Bucket(bucketKeyRuntime)
373 if rbkt == nil {
374 return nil // skip runtime. should be an error?
375 }
376
377 n := rbkt.Get(bucketKeyName)
378 if n != nil {
379 container.Runtime.Name = string(n)
380 }
381
382 o, err := boltutil.ReadAny(rbkt, bucketKeyOptions)
383 if err != nil {
384 return err
385 }
386 container.Runtime.Options = o
387 case string(bucketKeySpec):
388 var spec types.Any
389 if err := proto.Unmarshal(v, &spec); err != nil {
390 return err
391 }
392 container.Spec = &spec
393 case string(bucketKeySnapshotKey):
394 container.SnapshotKey = string(v)
395 case string(bucketKeySnapshotter):
396 container.Snapshotter = string(v)
397 case string(bucketKeyExtensions):
398 extensions, err := boltutil.ReadExtensions(bkt)
399 if err != nil {
400 return err
401 }
402
403 container.Extensions = extensions
404 case string(bucketKeySandboxID):
405 container.SandboxID = string(v)
406 }
407
408 return nil
409 })
410}
411
412func writeContainer(bkt *bolt.Bucket, container *containers.Container) error {
413 if err := boltutil.WriteTimestamps(bkt, container.CreatedAt, container.UpdatedAt); err != nil {

Callers 3

GetMethod · 0.85
ListMethod · 0.85
UpdateMethod · 0.85

Calls 6

ReadLabelsFunction · 0.92
ReadTimestampsFunction · 0.92
ReadAnyFunction · 0.92
UnmarshalFunction · 0.92
ReadExtensionsFunction · 0.92
GetMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…