Remove unnecessary GetImageIDAndOS use GetImage
Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
2b1a2b10af
commit
c10e6a4d15
4 changed files with 20 additions and 30 deletions
|
@ -24,32 +24,30 @@ func (e ErrImageDoesNotExist) Error() string {
|
|||
// NotFound implements the NotFound interface
|
||||
func (e ErrImageDoesNotExist) NotFound() {}
|
||||
|
||||
// GetImageIDAndOS returns an image ID and operating system corresponding to the image referred to by
|
||||
// refOrID.
|
||||
// called from list.go foldFilter()
|
||||
func (i ImageService) GetImageIDAndOS(refOrID string) (image.ID, string, error) {
|
||||
// GetImage returns an image corresponding to the image referred to by refOrID.
|
||||
func (i *ImageService) GetImage(refOrID string) (*image.Image, error) {
|
||||
ref, err := reference.ParseAnyReference(refOrID)
|
||||
if err != nil {
|
||||
return "", "", errdefs.InvalidParameter(err)
|
||||
return nil, errdefs.InvalidParameter(err)
|
||||
}
|
||||
namedRef, ok := ref.(reference.Named)
|
||||
if !ok {
|
||||
digested, ok := ref.(reference.Digested)
|
||||
if !ok {
|
||||
return "", "", ErrImageDoesNotExist{ref}
|
||||
return nil, ErrImageDoesNotExist{ref}
|
||||
}
|
||||
id := image.IDFromDigest(digested.Digest())
|
||||
if img, err := i.imageStore.Get(id); err == nil {
|
||||
return id, img.OperatingSystem(), nil
|
||||
return img, nil
|
||||
}
|
||||
return "", "", ErrImageDoesNotExist{ref}
|
||||
return nil, ErrImageDoesNotExist{ref}
|
||||
}
|
||||
|
||||
if digest, err := i.referenceStore.Get(namedRef); err == nil {
|
||||
// Search the image stores to get the operating system, defaulting to host OS.
|
||||
id := image.IDFromDigest(digest)
|
||||
if img, err := i.imageStore.Get(id); err == nil {
|
||||
return id, img.OperatingSystem(), nil
|
||||
return img, nil
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,19 +55,10 @@ func (i ImageService) GetImageIDAndOS(refOrID string) (image.ID, string, error)
|
|||
if id, err := i.imageStore.Search(refOrID); err == nil {
|
||||
img, err := i.imageStore.Get(id)
|
||||
if err != nil {
|
||||
return "", "", ErrImageDoesNotExist{ref}
|
||||
return nil, ErrImageDoesNotExist{ref}
|
||||
}
|
||||
return id, img.OperatingSystem(), nil
|
||||
return img, nil
|
||||
}
|
||||
|
||||
return "", "", ErrImageDoesNotExist{ref}
|
||||
}
|
||||
|
||||
// GetImage returns an image corresponding to the image referred to by refOrID.
|
||||
func (i *ImageService) GetImage(refOrID string) (*image.Image, error) {
|
||||
imgID, _, err := i.GetImageIDAndOS(refOrID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return i.imageStore.Get(imgID)
|
||||
return nil, ErrImageDoesNotExist{ref}
|
||||
}
|
||||
|
|
|
@ -64,14 +64,15 @@ func (i *ImageService) ImageDelete(imageRef string, force, prune bool) ([]types.
|
|||
start := time.Now()
|
||||
records := []types.ImageDeleteResponseItem{}
|
||||
|
||||
imgID, operatingSystem, err := i.GetImageIDAndOS(imageRef)
|
||||
img, err := i.GetImage(imageRef)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !system.IsOSSupported(operatingSystem) {
|
||||
if !system.IsOSSupported(img.OperatingSystem()) {
|
||||
return nil, errors.Errorf("unable to delete image: %q", system.ErrNotSupportedOperatingSystem)
|
||||
}
|
||||
|
||||
imgID := img.ID()
|
||||
repoRefs := i.referenceStore.References(imgID.Digest())
|
||||
|
||||
using := func(c *container.Container) bool {
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
// TagImage creates the tag specified by newTag, pointing to the image named
|
||||
// imageName (alternatively, imageName can also be an image ID).
|
||||
func (i *ImageService) TagImage(imageName, repository, tag string) (string, error) {
|
||||
imageID, _, err := i.GetImageIDAndOS(imageName)
|
||||
img, err := i.GetImage(imageName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ func (i *ImageService) TagImage(imageName, repository, tag string) (string, erro
|
|||
}
|
||||
}
|
||||
|
||||
err = i.TagImageWithReference(imageID, newTag)
|
||||
err = i.TagImageWithReference(img.ID(), newTag)
|
||||
return reference.FamiliarString(newTag), err
|
||||
}
|
||||
|
||||
|
|
|
@ -324,17 +324,17 @@ func (daemon *Daemon) foldFilter(view container.View, config *types.ContainerLis
|
|||
if psFilters.Contains("ancestor") {
|
||||
ancestorFilter = true
|
||||
psFilters.WalkValues("ancestor", func(ancestor string) error {
|
||||
id, _, err := daemon.imageService.GetImageIDAndOS(ancestor)
|
||||
img, err := daemon.imageService.GetImage(ancestor)
|
||||
if err != nil {
|
||||
logrus.Warnf("Error while looking up for image %v", ancestor)
|
||||
return nil
|
||||
}
|
||||
if imagesFilter[id] {
|
||||
if imagesFilter[img.ID()] {
|
||||
// Already seen this ancestor, skip it
|
||||
return nil
|
||||
}
|
||||
// Then walk down the graph and put the imageIds in imagesFilter
|
||||
populateImageFilterByParents(imagesFilter, id, daemon.imageService.Children)
|
||||
populateImageFilterByParents(imagesFilter, img.ID(), daemon.imageService.Children)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
@ -592,11 +592,11 @@ func (daemon *Daemon) refreshImage(s *container.Snapshot, ctx *listContext) (*ty
|
|||
c := s.Container
|
||||
image := s.Image // keep the original ref if still valid (hasn't changed)
|
||||
if image != s.ImageID {
|
||||
id, _, err := daemon.imageService.GetImageIDAndOS(image)
|
||||
img, err := daemon.imageService.GetImage(image)
|
||||
if _, isDNE := err.(images.ErrImageDoesNotExist); err != nil && !isDNE {
|
||||
return nil, err
|
||||
}
|
||||
if err != nil || id.String() != s.ImageID {
|
||||
if err != nil || img.ImageID() != s.ImageID {
|
||||
// ref changed, we need to use original ID
|
||||
image = s.ImageID
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue