Signed-off-by: Solomon Hykes <solomon@docker.com>
Solomon Hykes authored on 2014/08/05 14:11:0224 | 25 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,38 @@ |
0 |
+package graph |
|
1 |
+ |
|
2 |
+import ( |
|
3 |
+ "strings" |
|
4 |
+ |
|
5 |
+ "github.com/docker/docker/engine" |
|
6 |
+ "github.com/docker/docker/image" |
|
7 |
+) |
|
8 |
+ |
|
9 |
+func (s *TagStore) CmdViz(job *engine.Job) engine.Status { |
|
10 |
+ images, _ := s.graph.Map() |
|
11 |
+ if images == nil { |
|
12 |
+ return engine.StatusOK |
|
13 |
+ } |
|
14 |
+ job.Stdout.Write([]byte("digraph docker {\n")) |
|
15 |
+ |
|
16 |
+ var ( |
|
17 |
+ parentImage *image.Image |
|
18 |
+ err error |
|
19 |
+ ) |
|
20 |
+ for _, image := range images { |
|
21 |
+ parentImage, err = image.GetParent() |
|
22 |
+ if err != nil { |
|
23 |
+ return job.Errorf("Error while getting parent image: %v", err) |
|
24 |
+ } |
|
25 |
+ if parentImage != nil { |
|
26 |
+ job.Stdout.Write([]byte(" \"" + parentImage.ID + "\" -> \"" + image.ID + "\"\n")) |
|
27 |
+ } else { |
|
28 |
+ job.Stdout.Write([]byte(" base -> \"" + image.ID + "\" [style=invis]\n")) |
|
29 |
+ } |
|
30 |
+ } |
|
31 |
+ |
|
32 |
+ for id, repos := range s.GetRepoRefs() { |
|
33 |
+ job.Stdout.Write([]byte(" \"" + id + "\" [label=\"" + id + "\\n" + strings.Join(repos, "\\n") + "\",shape=box,fillcolor=\"paleturquoise\",style=\"filled,rounded\"];\n")) |
|
34 |
+ } |
|
35 |
+ job.Stdout.Write([]byte(" base [style=invisible]\n}\n")) |
|
36 |
+ return engine.StatusOK |
|
37 |
+} |
... | ... |
@@ -212,36 +212,6 @@ func (srv *Server) recursiveLoad(eng *engine.Engine, address, tmpImageDir string |
212 | 212 |
return nil |
213 | 213 |
} |
214 | 214 |
|
215 |
-func (srv *Server) ImagesViz(job *engine.Job) engine.Status { |
|
216 |
- images, _ := srv.daemon.Graph().Map() |
|
217 |
- if images == nil { |
|
218 |
- return engine.StatusOK |
|
219 |
- } |
|
220 |
- job.Stdout.Write([]byte("digraph docker {\n")) |
|
221 |
- |
|
222 |
- var ( |
|
223 |
- parentImage *image.Image |
|
224 |
- err error |
|
225 |
- ) |
|
226 |
- for _, image := range images { |
|
227 |
- parentImage, err = image.GetParent() |
|
228 |
- if err != nil { |
|
229 |
- return job.Errorf("Error while getting parent image: %v", err) |
|
230 |
- } |
|
231 |
- if parentImage != nil { |
|
232 |
- job.Stdout.Write([]byte(" \"" + parentImage.ID + "\" -> \"" + image.ID + "\"\n")) |
|
233 |
- } else { |
|
234 |
- job.Stdout.Write([]byte(" base -> \"" + image.ID + "\" [style=invis]\n")) |
|
235 |
- } |
|
236 |
- } |
|
237 |
- |
|
238 |
- for id, repos := range srv.daemon.Repositories().GetRepoRefs() { |
|
239 |
- job.Stdout.Write([]byte(" \"" + id + "\" [label=\"" + id + "\\n" + strings.Join(repos, "\\n") + "\",shape=box,fillcolor=\"paleturquoise\",style=\"filled,rounded\"];\n")) |
|
240 |
- } |
|
241 |
- job.Stdout.Write([]byte(" base [style=invisible]\n}\n")) |
|
242 |
- return engine.StatusOK |
|
243 |
-} |
|
244 |
- |
|
245 | 215 |
func (srv *Server) ImageTag(job *engine.Job) engine.Status { |
246 | 216 |
if len(job.Args) != 2 && len(job.Args) != 3 { |
247 | 217 |
return job.Errorf("Usage: %s IMAGE REPOSITORY [TAG]\n", job.Name) |
... | ... |
@@ -88,7 +88,6 @@ func InitServer(job *engine.Job) engine.Status { |
88 | 88 |
for name, handler := range map[string]engine.Handler{ |
89 | 89 |
"tag": srv.ImageTag, // FIXME merge with "image_tag" |
90 | 90 |
"info": srv.DockerInfo, |
91 |
- "viz": srv.ImagesViz, |
|
92 | 91 |
"log": srv.Log, |
93 | 92 |
"load": srv.ImageLoad, |
94 | 93 |
"build": srv.Build, |