From e1c2dced23a58a5961ceacf9a9198756bb97994e Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Fri, 16 Jan 2015 22:33:58 +0000 Subject: [PATCH] refactor Images() and refresh images on pull event Signed-off-by: Victor Vieux --- cluster/node.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/cluster/node.go b/cluster/node.go index eaa72d0f00..d349538755 100644 --- a/cluster/node.go +++ b/cluster/node.go @@ -379,9 +379,13 @@ func (n *Node) Containers() []*Container { } func (n *Node) Images() []*dockerclient.Image { + images := []*dockerclient.Image{} n.RLock() - defer n.RUnlock() - return n.images + for _, image := range n.images { + images = append(images, image) + } + n.RUnlock() + return images } func (n *Node) String() string { @@ -390,7 +394,11 @@ func (n *Node) String() string { func (n *Node) handler(ev *dockerclient.Event, args ...interface{}) { // 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 n.eventHandler == nil {