From 4708f50419b5bfa34ecbf0c71fab3231678ca643 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Sat, 18 May 2013 14:29:32 +0000 Subject: [PATCH] check if the image to delete isn't parent of another Upstream-commit: d7673274d22140dc6dfa288351f1d4d2e2fa4b63 Component: engine --- components/engine/server.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/engine/server.go b/components/engine/server.go index 1ad1d80a4f..d709aba7e2 100644 --- a/components/engine/server.go +++ b/components/engine/server.go @@ -729,6 +729,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 { + return fmt.Errorf("Can't delete %s, otherwise %s will be broken", name, image.ShortId()) + } + } + } if err := srv.runtime.graph.Delete(img.Id); err != nil { return fmt.Errorf("Error deleting image %s: %s", name, err.Error()) }