瀏覽代碼

Remove unnecessary GetImageIDAndOS use GetImage

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Daniel Nephin 7 年之前
父節點
當前提交
c10e6a4d15
共有 4 個文件被更改,包括 20 次插入30 次删除
  1. 10 21
      daemon/images/image.go
  2. 3 2
      daemon/images/image_delete.go
  3. 2 2
      daemon/images/image_tag.go
  4. 5 5
      daemon/list.go

+ 10 - 21
daemon/images/image.go

@@ -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}
 }

+ 3 - 2
daemon/images/image_delete.go

@@ -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 {

+ 2 - 2
daemon/images/image_tag.go

@@ -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
 }
 

+ 5 - 5
daemon/list.go

@@ -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
 		}