Return unique containers in Subcontainers().
Before this we'd return an instance for each alias we'd saved. Fixes #592.
This commit is contained in:
parent
8e787e010b
commit
67f6ee48f9
@ -378,22 +378,26 @@ func (self *manager) containerDataToContainerInfo(cont *containerData, query *in
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *manager) SubcontainersInfo(containerName string, query *info.ContainerInfoRequest) ([]*info.ContainerInfo, error) {
|
func (self *manager) SubcontainersInfo(containerName string, query *info.ContainerInfoRequest) ([]*info.ContainerInfo, error) {
|
||||||
var containers []*containerData
|
var containersMap map[string]*containerData
|
||||||
func() {
|
func() {
|
||||||
self.containersLock.RLock()
|
self.containersLock.RLock()
|
||||||
defer self.containersLock.RUnlock()
|
defer self.containersLock.RUnlock()
|
||||||
containers = make([]*containerData, 0, len(self.containers))
|
containersMap = make(map[string]*containerData, len(self.containers))
|
||||||
|
|
||||||
// Get all the subcontainers of the specified container
|
// Get all the unique subcontainers of the specified container
|
||||||
matchedName := path.Join(containerName, "/")
|
matchedName := path.Join(containerName, "/")
|
||||||
for i := range self.containers {
|
for i := range self.containers {
|
||||||
name := self.containers[i].info.Name
|
name := self.containers[i].info.Name
|
||||||
if name == containerName || strings.HasPrefix(name, matchedName) {
|
if name == containerName || strings.HasPrefix(name, matchedName) {
|
||||||
containers = append(containers, self.containers[i])
|
containersMap[self.containers[i].info.Name] = self.containers[i]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
containers := make([]*containerData, 0, len(containersMap))
|
||||||
|
for _, cont := range containersMap {
|
||||||
|
containers = append(containers, cont)
|
||||||
|
}
|
||||||
return self.containerDataSliceToContainerInfoSlice(containers, query)
|
return self.containerDataSliceToContainerInfoSlice(containers, query)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user