Move "viz" to graph/viz.go

Signed-off-by: Solomon Hykes <solomon@docker.com>
This commit is contained in:
Solomon Hykes
2014-08-06 17:18:50 -04:00
committed by Tibor Vass
parent 51dd68d659
commit 77781440f1
4 changed files with 39 additions and 31 deletions
+1
View File
@@ -18,6 +18,7 @@ func (s *TagStore) Install(eng *engine.Engine) error {
eng.Register("image_export", s.CmdImageExport)
eng.Register("history", s.CmdHistory)
eng.Register("images", s.CmdImages)
eng.Register("viz", s.CmdViz)
return nil
}
+38
View File
@@ -0,0 +1,38 @@
package graph
import (
"strings"
"github.com/docker/docker/engine"
"github.com/docker/docker/image"
)
func (s *TagStore) CmdViz(job *engine.Job) engine.Status {
images, _ := s.graph.Map()
if images == nil {
return engine.StatusOK
}
job.Stdout.Write([]byte("digraph docker {\n"))
var (
parentImage *image.Image
err error
)
for _, image := range images {
parentImage, err = image.GetParent()
if err != nil {
return job.Errorf("Error while getting parent image: %v", err)
}
if parentImage != nil {
job.Stdout.Write([]byte(" \"" + parentImage.ID + "\" -> \"" + image.ID + "\"\n"))
} else {
job.Stdout.Write([]byte(" base -> \"" + image.ID + "\" [style=invis]\n"))
}
}
for id, repos := range s.GetRepoRefs() {
job.Stdout.Write([]byte(" \"" + id + "\" [label=\"" + id + "\\n" + strings.Join(repos, "\\n") + "\",shape=box,fillcolor=\"paleturquoise\",style=\"filled,rounded\"];\n"))
}
job.Stdout.Write([]byte(" base [style=invisible]\n}\n"))
return engine.StatusOK
}