refactor Images() and refresh images on pull event

Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
Victor Vieux 2015-01-16 22:33:58 +00:00
parent 98914a122c
commit e1c2dced23
1 changed files with 11 additions and 3 deletions

View File

@ -379,9 +379,13 @@ func (n *Node) Containers() []*Container {
} }
func (n *Node) Images() []*dockerclient.Image { func (n *Node) Images() []*dockerclient.Image {
images := []*dockerclient.Image{}
n.RLock() n.RLock()
defer n.RUnlock() for _, image := range n.images {
return n.images images = append(images, image)
}
n.RUnlock()
return images
} }
func (n *Node) String() string { func (n *Node) String() string {
@ -390,7 +394,11 @@ func (n *Node) String() string {
func (n *Node) handler(ev *dockerclient.Event, args ...interface{}) { func (n *Node) handler(ev *dockerclient.Event, args ...interface{}) {
// Something changed - refresh our internal state. // Something changed - refresh our internal state.
n.refreshContainer(ev.Id) if ev.Status == "pull" {
n.refreshImages()
} else {
n.refreshContainer(ev.Id)
}
// If there is no event handler registered, abort right now. // If there is no event handler registered, abort right now.
if n.eventHandler == nil { if n.eventHandler == nil {