Browse code

Remove unnecessary GetImageIDAndOS use GetImage

Signed-off-by: Daniel Nephin <dnephin@docker.com>

Daniel Nephin authored on 2018/02/15 05:19:37
Showing 4 changed files
... ...
@@ -24,32 +24,30 @@ func (e ErrImageDoesNotExist) Error() string {
24 24
 // NotFound implements the NotFound interface
25 25
 func (e ErrImageDoesNotExist) NotFound() {}
26 26
 
27
-// GetImageIDAndOS returns an image ID and operating system corresponding to the image referred to by
28
-// refOrID.
29
-// called from list.go foldFilter()
30
-func (i ImageService) GetImageIDAndOS(refOrID string) (image.ID, string, error) {
27
+// GetImage returns an image corresponding to the image referred to by refOrID.
28
+func (i *ImageService) GetImage(refOrID string) (*image.Image, error) {
31 29
 	ref, err := reference.ParseAnyReference(refOrID)
32 30
 	if err != nil {
33
-		return "", "", errdefs.InvalidParameter(err)
31
+		return nil, errdefs.InvalidParameter(err)
34 32
 	}
35 33
 	namedRef, ok := ref.(reference.Named)
36 34
 	if !ok {
37 35
 		digested, ok := ref.(reference.Digested)
38 36
 		if !ok {
39
-			return "", "", ErrImageDoesNotExist{ref}
37
+			return nil, ErrImageDoesNotExist{ref}
40 38
 		}
41 39
 		id := image.IDFromDigest(digested.Digest())
42 40
 		if img, err := i.imageStore.Get(id); err == nil {
43
-			return id, img.OperatingSystem(), nil
41
+			return img, nil
44 42
 		}
45
-		return "", "", ErrImageDoesNotExist{ref}
43
+		return nil, ErrImageDoesNotExist{ref}
46 44
 	}
47 45
 
48 46
 	if digest, err := i.referenceStore.Get(namedRef); err == nil {
49 47
 		// Search the image stores to get the operating system, defaulting to host OS.
50 48
 		id := image.IDFromDigest(digest)
51 49
 		if img, err := i.imageStore.Get(id); err == nil {
52
-			return id, img.OperatingSystem(), nil
50
+			return img, nil
53 51
 		}
54 52
 	}
55 53
 
... ...
@@ -57,19 +55,10 @@ func (i ImageService) GetImageIDAndOS(refOrID string) (image.ID, string, error)
57 57
 	if id, err := i.imageStore.Search(refOrID); err == nil {
58 58
 		img, err := i.imageStore.Get(id)
59 59
 		if err != nil {
60
-			return "", "", ErrImageDoesNotExist{ref}
60
+			return nil, ErrImageDoesNotExist{ref}
61 61
 		}
62
-		return id, img.OperatingSystem(), nil
62
+		return img, nil
63 63
 	}
64 64
 
65
-	return "", "", ErrImageDoesNotExist{ref}
66
-}
67
-
68
-// GetImage returns an image corresponding to the image referred to by refOrID.
69
-func (i *ImageService) GetImage(refOrID string) (*image.Image, error) {
70
-	imgID, _, err := i.GetImageIDAndOS(refOrID)
71
-	if err != nil {
72
-		return nil, err
73
-	}
74
-	return i.imageStore.Get(imgID)
65
+	return nil, ErrImageDoesNotExist{ref}
75 66
 }
... ...
@@ -64,14 +64,15 @@ func (i *ImageService) ImageDelete(imageRef string, force, prune bool) ([]types.
64 64
 	start := time.Now()
65 65
 	records := []types.ImageDeleteResponseItem{}
66 66
 
67
-	imgID, operatingSystem, err := i.GetImageIDAndOS(imageRef)
67
+	img, err := i.GetImage(imageRef)
68 68
 	if err != nil {
69 69
 		return nil, err
70 70
 	}
71
-	if !system.IsOSSupported(operatingSystem) {
71
+	if !system.IsOSSupported(img.OperatingSystem()) {
72 72
 		return nil, errors.Errorf("unable to delete image: %q", system.ErrNotSupportedOperatingSystem)
73 73
 	}
74 74
 
75
+	imgID := img.ID()
75 76
 	repoRefs := i.referenceStore.References(imgID.Digest())
76 77
 
77 78
 	using := func(c *container.Container) bool {
... ...
@@ -8,7 +8,7 @@ import (
8 8
 // TagImage creates the tag specified by newTag, pointing to the image named
9 9
 // imageName (alternatively, imageName can also be an image ID).
10 10
 func (i *ImageService) TagImage(imageName, repository, tag string) (string, error) {
11
-	imageID, _, err := i.GetImageIDAndOS(imageName)
11
+	img, err := i.GetImage(imageName)
12 12
 	if err != nil {
13 13
 		return "", err
14 14
 	}
... ...
@@ -23,7 +23,7 @@ func (i *ImageService) TagImage(imageName, repository, tag string) (string, erro
23 23
 		}
24 24
 	}
25 25
 
26
-	err = i.TagImageWithReference(imageID, newTag)
26
+	err = i.TagImageWithReference(img.ID(), newTag)
27 27
 	return reference.FamiliarString(newTag), err
28 28
 }
29 29
 
... ...
@@ -324,17 +324,17 @@ func (daemon *Daemon) foldFilter(view container.View, config *types.ContainerLis
324 324
 	if psFilters.Contains("ancestor") {
325 325
 		ancestorFilter = true
326 326
 		psFilters.WalkValues("ancestor", func(ancestor string) error {
327
-			id, _, err := daemon.imageService.GetImageIDAndOS(ancestor)
327
+			img, err := daemon.imageService.GetImage(ancestor)
328 328
 			if err != nil {
329 329
 				logrus.Warnf("Error while looking up for image %v", ancestor)
330 330
 				return nil
331 331
 			}
332
-			if imagesFilter[id] {
332
+			if imagesFilter[img.ID()] {
333 333
 				// Already seen this ancestor, skip it
334 334
 				return nil
335 335
 			}
336 336
 			// Then walk down the graph and put the imageIds in imagesFilter
337
-			populateImageFilterByParents(imagesFilter, id, daemon.imageService.Children)
337
+			populateImageFilterByParents(imagesFilter, img.ID(), daemon.imageService.Children)
338 338
 			return nil
339 339
 		})
340 340
 	}
... ...
@@ -592,11 +592,11 @@ func (daemon *Daemon) refreshImage(s *container.Snapshot, ctx *listContext) (*ty
592 592
 	c := s.Container
593 593
 	image := s.Image // keep the original ref if still valid (hasn't changed)
594 594
 	if image != s.ImageID {
595
-		id, _, err := daemon.imageService.GetImageIDAndOS(image)
595
+		img, err := daemon.imageService.GetImage(image)
596 596
 		if _, isDNE := err.(images.ErrImageDoesNotExist); err != nil && !isDNE {
597 597
 			return nil, err
598 598
 		}
599
-		if err != nil || id.String() != s.ImageID {
599
+		if err != nil || img.ImageID() != s.ImageID {
600 600
 			// ref changed, we need to use original ID
601 601
 			image = s.ImageID
602 602
 		}