1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package graph
- import (
- "fmt"
- "io"
- "github.com/Sirupsen/logrus"
- "github.com/docker/docker/api/types"
- )
- func (s *TagStore) LookupRaw(name string) ([]byte, error) {
- image, err := s.LookupImage(name)
- if err != nil || image == nil {
- return nil, fmt.Errorf("No such image %s", name)
- }
- imageInspectRaw, err := image.RawJson()
- if err != nil {
- return nil, err
- }
- return imageInspectRaw, nil
- }
- // Lookup return an image encoded in JSON
- func (s *TagStore) Lookup(name string) (*types.ImageInspect, error) {
- image, err := s.LookupImage(name)
- if err != nil || image == nil {
- return nil, fmt.Errorf("No such image: %s", name)
- }
- imageInspect := &types.ImageInspect{
- Id: image.ID,
- Parent: image.Parent,
- Comment: image.Comment,
- Created: image.Created,
- Container: image.Container,
- ContainerConfig: &image.ContainerConfig,
- DockerVersion: image.DockerVersion,
- Author: image.Author,
- Config: image.Config,
- Architecture: image.Architecture,
- Os: image.OS,
- Size: image.Size,
- VirtualSize: image.GetParentsSize(0) + image.Size,
- }
- return imageInspect, nil
- }
- // ImageTarLayer return the tarLayer of the image
- func (s *TagStore) ImageTarLayer(name string, dest io.Writer) error {
- if image, err := s.LookupImage(name); err == nil && image != nil {
- fs, err := image.TarLayer()
- if err != nil {
- return err
- }
- defer fs.Close()
- written, err := io.Copy(dest, fs)
- if err != nil {
- return err
- }
- logrus.Debugf("rendered layer for %s of [%d] size", image.ID, written)
- return nil
- }
- return fmt.Errorf("No such image: %s", name)
- }
|