Skip to content

Commit

Permalink
Move "viz" to graph/viz.go
Browse files Browse the repository at this point in the history
Signed-off-by: Solomon Hykes <[email protected]>
  • Loading branch information
Solomon Hykes authored and tiborvass committed Aug 6, 2014
1 parent 51dd68d commit 7778144
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 31 deletions.
1 change: 1 addition & 0 deletions graph/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
38 changes: 38 additions & 0 deletions graph/viz.go
Original file line number Diff line number Diff line change
@@ -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
}
30 changes: 0 additions & 30 deletions server/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,36 +212,6 @@ func (srv *Server) recursiveLoad(eng *engine.Engine, address, tmpImageDir string
return nil
}

func (srv *Server) ImagesViz(job *engine.Job) engine.Status {
images, _ := srv.daemon.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 srv.daemon.Repositories().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
}

func (srv *Server) ImageTag(job *engine.Job) engine.Status {
if len(job.Args) != 2 && len(job.Args) != 3 {
return job.Errorf("Usage: %s IMAGE REPOSITORY [TAG]\n", job.Name)
Expand Down
1 change: 0 additions & 1 deletion server/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ func InitServer(job *engine.Job) engine.Status {
for name, handler := range map[string]engine.Handler{
"tag": srv.ImageTag, // FIXME merge with "image_tag"
"info": srv.DockerInfo,
"viz": srv.ImagesViz,
"log": srv.Log,
"load": srv.ImageLoad,
"build": srv.Build,
Expand Down

0 comments on commit 7778144

Please sign in to comment.