Make sure the cache lookup returns always the same result

This commit is contained in:
Guillaume J. Charmes 2013-12-26 15:43:27 -08:00
parent 360078d761
commit 1d4b7d8fa1
No known key found for this signature in database
GPG Key ID: B33E4642CB6E3FF3
1 changed files with 5 additions and 7 deletions

View File

@ -21,6 +21,7 @@ import (
"path"
"path/filepath"
"runtime"
"sort"
"strconv"
"strings"
"sync"
@ -1694,16 +1695,13 @@ func (srv *Server) ImageGetCached(imgID string, config *Config) (*Image, error)
}
// Store the tree in a map of map (map[parentId][childId])
imageMap := make(map[string]map[string]struct{})
imageMap := make(map[string][]string)
for _, img := range images {
if _, exists := imageMap[img.Parent]; !exists {
imageMap[img.Parent] = make(map[string]struct{})
}
imageMap[img.Parent][img.ID] = struct{}{}
imageMap[img.Parent] = append(imageMap[img.Parent], img.ID)
}
sort.Strings(imageMap[imgID])
// Loop on the children of the given image and check the config
for elem := range imageMap[imgID] {
for _, elem := range imageMap[imgID] {
img, err := srv.runtime.graph.Get(elem)
if err != nil {
return nil, err