From d92664f491bcb5a7e5eb4ef6e59719d4e75e2f12 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Mon, 28 Jan 2013 23:22:45 -0800 Subject: [PATCH] 'docker inspect' can be used on images and containers Upstream-commit: 1b898574cf8d814c453755d83065b22c211f6a29 Component: engine --- components/engine/dockerd/dockerd.go | 31 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/components/engine/dockerd/dockerd.go b/components/engine/dockerd/dockerd.go index d1623cd40c..d99ffc7022 100644 --- a/components/engine/dockerd/dockerd.go +++ b/components/engine/dockerd/dockerd.go @@ -200,21 +200,26 @@ func (srv *Server) CmdInspect(stdin io.ReadCloser, stdout io.Writer, args ...str return nil } name := cmd.Arg(0) + var obj interface{} if container := srv.containers.Get(name); container != nil { - data, err := json.Marshal(container) - if err != nil { - return err - } - indented := new(bytes.Buffer) - if err = json.Indent(indented, data, "", " "); err != nil { - return err - } - if _, err := io.Copy(stdout, indented); err != nil { - return err - } - return nil + obj = container + } else if image := srv.images.Find(name); image != nil { + obj = image + } else { + return errors.New("No such container or image: " + name) } - return errors.New("No such container: " + name) + data, err := json.Marshal(obj) + if err != nil { + return err + } + indented := new(bytes.Buffer) + if err = json.Indent(indented, data, "", " "); err != nil { + return err + } + if _, err := io.Copy(stdout, indented); err != nil { + return err + } + return nil } func (srv *Server) CmdRm(stdin io.ReadCloser, stdout io.Writer, args ...string) error {