From 1416a2a4ab95661fa8b6cc195d7f9299f6a63cae Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 29 May 2013 17:01:54 +0000 Subject: [PATCH] refacto Upstream-commit: 94f0d478de6e50e8b26e9779da22dbd74cc5952f Component: engine --- components/engine/server.go | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/components/engine/server.go b/components/engine/server.go index 2e819728b4..64bde12c4d 100644 --- a/components/engine/server.go +++ b/components/engine/server.go @@ -739,19 +739,15 @@ func (srv *Server) ImageDelete(name string) error { } } // check is the image to delete isn't parent of another image - images, _ := srv.runtime.graph.All() - for _, image := range images { - if imgParent, err := image.GetParent(); err == nil && imgParent != nil { - if imgParent.Id == img.Id { - if strings.Contains(img.Id, name) { - return fmt.Errorf("Conflict with %s, %s was not removed", image.ShortId(), name) - } - if err := srv.runtime.repositories.Delete(name, tag, img.Id); err != nil { - return err - } - return nil - } + byParent, _ := srv.runtime.graph.ByParent() + if childs, exists := byParent[img.Id]; exists { + if strings.Contains(img.Id, name) { + return fmt.Errorf("Conflict with %s, %s was not removed", childs[0].ShortId(), name) } + if err := srv.runtime.repositories.Delete(name, tag, img.Id); err != nil { + return err + } + return nil } if err := srv.runtime.graph.Delete(img.Id); err != nil { return fmt.Errorf("Error deleting image %s: %s", name, err.Error())