- use daemon member directly rather than through a function call
- create GetImage method for use external to deamon
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
| ... | ... |
@@ -425,7 +425,7 @@ func (s *router) postBuild(ctx context.Context, w http.ResponseWriter, r *http.R |
| 425 | 425 |
} |
| 426 | 426 |
|
| 427 | 427 |
if repoName != "" {
|
| 428 |
- if err := s.daemon.Repositories().Tag(repoName, tag, string(imgID), true); err != nil {
|
|
| 428 |
+ if err := s.daemon.TagImage(repoName, tag, string(imgID), true); err != nil {
|
|
| 429 | 429 |
return errf(err) |
| 430 | 430 |
} |
| 431 | 431 |
} |
| ... | ... |
@@ -1011,11 +1011,6 @@ func (daemon *Daemon) Graph() *graph.Graph {
|
| 1011 | 1011 |
return daemon.graph |
| 1012 | 1012 |
} |
| 1013 | 1013 |
|
| 1014 |
-// Repositories returns all repositories. |
|
| 1015 |
-func (daemon *Daemon) Repositories() *graph.TagStore {
|
|
| 1016 |
- return daemon.repositories |
|
| 1017 |
-} |
|
| 1018 |
- |
|
| 1019 | 1014 |
// TagImage creates a tag in the repository reponame, pointing to the image named |
| 1020 | 1015 |
// imageName. If force is true, an existing tag with the same name may be |
| 1021 | 1016 |
// overwritten. |
| ... | ... |
@@ -1079,6 +1074,13 @@ func (daemon *Daemon) ImageHistory(name string) ([]*types.ImageHistory, error) {
|
| 1079 | 1079 |
return daemon.repositories.History(name) |
| 1080 | 1080 |
} |
| 1081 | 1081 |
|
| 1082 |
+// GetImage returns pointer to an Image struct corresponding to the given |
|
| 1083 |
+// name. The name can include an optional tag; otherwise the default tag will |
|
| 1084 |
+// be used. |
|
| 1085 |
+func (daemon *Daemon) GetImage(name string) (*image.Image, error) {
|
|
| 1086 |
+ return daemon.repositories.LookupImage(name) |
|
| 1087 |
+} |
|
| 1088 |
+ |
|
| 1082 | 1089 |
func (daemon *Daemon) config() *Config {
|
| 1083 | 1090 |
return daemon.configStore |
| 1084 | 1091 |
} |
| ... | ... |
@@ -39,7 +39,7 @@ var _ builder.Docker = Docker{}
|
| 39 | 39 |
|
| 40 | 40 |
// LookupImage looks up a Docker image referenced by `name`. |
| 41 | 41 |
func (d Docker) LookupImage(name string) (*image.Image, error) {
|
| 42 |
- return d.Daemon.Repositories().LookupImage(name) |
|
| 42 |
+ return d.Daemon.GetImage(name) |
|
| 43 | 43 |
} |
| 44 | 44 |
|
| 45 | 45 |
// Pull tells Docker to pull image referenced by `name`. |
| ... | ... |
@@ -69,11 +69,11 @@ func (d Docker) Pull(name string) (*image.Image, error) {
|
| 69 | 69 |
OutStream: ioutils.NopWriteCloser(d.OutOld), |
| 70 | 70 |
} |
| 71 | 71 |
|
| 72 |
- if err := d.Daemon.Repositories().Pull(remote, tag, imagePullConfig); err != nil {
|
|
| 72 |
+ if err := d.Daemon.PullImage(remote, tag, imagePullConfig); err != nil {
|
|
| 73 | 73 |
return nil, err |
| 74 | 74 |
} |
| 75 | 75 |
|
| 76 |
- return d.Daemon.Repositories().LookupImage(name) |
|
| 76 |
+ return d.Daemon.GetImage(name) |
|
| 77 | 77 |
} |
| 78 | 78 |
|
| 79 | 79 |
// Container looks up a Docker container referenced by `id`. |
| ... | ... |
@@ -53,7 +53,7 @@ import ( |
| 53 | 53 |
func (daemon *Daemon) ImageDelete(imageRef string, force, prune bool) ([]types.ImageDelete, error) {
|
| 54 | 54 |
records := []types.ImageDelete{}
|
| 55 | 55 |
|
| 56 |
- img, err := daemon.Repositories().LookupImage(imageRef) |
|
| 56 |
+ img, err := daemon.repositories.LookupImage(imageRef) |
|
| 57 | 57 |
if err != nil {
|
| 58 | 58 |
return nil, err |
| 59 | 59 |
} |
| ... | ... |
@@ -90,7 +90,7 @@ func (daemon *Daemon) ImageDelete(imageRef string, force, prune bool) ([]types.I |
| 90 | 90 |
// repository reference to the image then we will want to |
| 91 | 91 |
// remove that reference. |
| 92 | 92 |
// FIXME: Is this the behavior we want? |
| 93 |
- repoRefs := daemon.Repositories().ByID()[img.ID] |
|
| 93 |
+ repoRefs := daemon.repositories.ByID()[img.ID] |
|
| 94 | 94 |
if len(repoRefs) == 1 {
|
| 95 | 95 |
parsedRef, err := daemon.removeImageRef(repoRefs[0]) |
| 96 | 96 |
if err != nil {
|
| ... | ... |
@@ -116,7 +116,7 @@ func isImageIDPrefix(imageID, possiblePrefix string) bool {
|
| 116 | 116 |
// imageHasMultipleRepositoryReferences returns whether there are multiple |
| 117 | 117 |
// repository references to the given imageID. |
| 118 | 118 |
func (daemon *Daemon) imageHasMultipleRepositoryReferences(imageID string) bool {
|
| 119 |
- return len(daemon.Repositories().ByID()[imageID]) > 1 |
|
| 119 |
+ return len(daemon.repositories.ByID()[imageID]) > 1 |
|
| 120 | 120 |
} |
| 121 | 121 |
|
| 122 | 122 |
// getContainerUsingImage returns a container that was created using the given |
| ... | ... |
@@ -145,7 +145,7 @@ func (daemon *Daemon) removeImageRef(repositoryRef string) (string, error) {
|
| 145 | 145 |
// Ignore the boolean value returned, as far as we're concerned, this |
| 146 | 146 |
// is an idempotent operation and it's okay if the reference didn't |
| 147 | 147 |
// exist in the first place. |
| 148 |
- _, err := daemon.Repositories().Delete(repository, ref) |
|
| 148 |
+ _, err := daemon.repositories.Delete(repository, ref) |
|
| 149 | 149 |
|
| 150 | 150 |
return utils.ImageReference(repository, ref), err |
| 151 | 151 |
} |
| ... | ... |
@@ -156,7 +156,7 @@ func (daemon *Daemon) removeImageRef(repositoryRef string) (string, error) {
|
| 156 | 156 |
// daemon's event service. An "Untagged" types.ImageDelete is added to the |
| 157 | 157 |
// given list of records. |
| 158 | 158 |
func (daemon *Daemon) removeAllReferencesToImageID(imgID string, records *[]types.ImageDelete) error {
|
| 159 |
- imageRefs := daemon.Repositories().ByID()[imgID] |
|
| 159 |
+ imageRefs := daemon.repositories.ByID()[imgID] |
|
| 160 | 160 |
|
| 161 | 161 |
for _, imageRef := range imageRefs {
|
| 162 | 162 |
parsedRef, err := daemon.removeImageRef(imageRef) |
| ... | ... |
@@ -308,7 +308,7 @@ func (daemon *Daemon) checkImageDeleteHardConflict(img *image.Image) *imageDelet |
| 308 | 308 |
|
| 309 | 309 |
func (daemon *Daemon) checkImageDeleteSoftConflict(img *image.Image) *imageDeleteConflict {
|
| 310 | 310 |
// Check if any repository tags/digest reference this image. |
| 311 |
- if daemon.Repositories().HasReferences(img) {
|
|
| 311 |
+ if daemon.repositories.HasReferences(img) {
|
|
| 312 | 312 |
return &imageDeleteConflict{
|
| 313 | 313 |
imgID: img.ID, |
| 314 | 314 |
message: "image is referenced in one or more repositories", |
| ... | ... |
@@ -337,5 +337,5 @@ func (daemon *Daemon) checkImageDeleteSoftConflict(img *image.Image) *imageDelet |
| 337 | 337 |
// that there are no repository references to the given image and it has no |
| 338 | 338 |
// child images. |
| 339 | 339 |
func (daemon *Daemon) imageIsDangling(img *image.Image) bool {
|
| 340 |
- return !(daemon.Repositories().HasReferences(img) || daemon.Graph().HasChildren(img)) |
|
| 340 |
+ return !(daemon.repositories.HasReferences(img) || daemon.Graph().HasChildren(img)) |
|
| 341 | 341 |
} |
| ... | ... |
@@ -163,7 +163,7 @@ func (daemon *Daemon) foldFilter(config *ContainersConfig) (*listContext, error) |
| 163 | 163 |
// The idea is to walk the graph down the most "efficient" way. |
| 164 | 164 |
for _, ancestor := range ancestors {
|
| 165 | 165 |
// First, get the imageId of the ancestor filter (yay) |
| 166 |
- image, err := daemon.Repositories().LookupImage(ancestor) |
|
| 166 |
+ image, err := daemon.repositories.LookupImage(ancestor) |
|
| 167 | 167 |
if err != nil {
|
| 168 | 168 |
logrus.Warnf("Error while looking up for image %v", ancestor)
|
| 169 | 169 |
continue |
| ... | ... |
@@ -297,7 +297,7 @@ func (daemon *Daemon) transformContainer(container *Container, ctx *listContext) |
| 297 | 297 |
newC.Names = []string{}
|
| 298 | 298 |
} |
| 299 | 299 |
|
| 300 |
- img, err := daemon.Repositories().LookupImage(container.Config.Image) |
|
| 300 |
+ img, err := daemon.repositories.LookupImage(container.Config.Image) |
|
| 301 | 301 |
if err != nil {
|
| 302 | 302 |
// If the image can no longer be found by its original reference, |
| 303 | 303 |
// it makes sense to show the ID instead of a stale reference. |