Signed-off-by: Antonio Murdaca <me@runcom.ninja>
Antonio Murdaca authored on 2015/04/09 20:59:50... | ... |
@@ -155,7 +155,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error { |
155 | 155 |
// And canonicalize dockerfile name to a platform-independent one |
156 | 156 |
*dockerfileName, err = archive.CanonicalTarNameForPath(*dockerfileName) |
157 | 157 |
if err != nil { |
158 |
- return fmt.Errorf("Cannot canonicalize dockerfile path %s: %v", dockerfileName, err) |
|
158 |
+ return fmt.Errorf("Cannot canonicalize dockerfile path %s: %v", *dockerfileName, err) |
|
159 | 159 |
} |
160 | 160 |
|
161 | 161 |
if _, err = os.Lstat(filename); os.IsNotExist(err) { |
... | ... |
@@ -878,12 +878,18 @@ func deleteImages(eng *engine.Engine, version version.Version, w http.ResponseWr |
878 | 878 |
if vars == nil { |
879 | 879 |
return fmt.Errorf("Missing parameter") |
880 | 880 |
} |
881 |
- var job = eng.Job("image_delete", vars["name"]) |
|
882 |
- streamJSON(job, w, false) |
|
883 |
- job.Setenv("force", r.Form.Get("force")) |
|
884 |
- job.Setenv("noprune", r.Form.Get("noprune")) |
|
885 | 881 |
|
886 |
- return job.Run() |
|
882 |
+ d := getDaemon(eng) |
|
883 |
+ name := vars["name"] |
|
884 |
+ force := toBool(r.Form.Get("force")) |
|
885 |
+ noprune := toBool(r.Form.Get("noprune")) |
|
886 |
+ |
|
887 |
+ list, err := d.ImageDelete(name, force, noprune) |
|
888 |
+ if err != nil { |
|
889 |
+ return err |
|
890 |
+ } |
|
891 |
+ |
|
892 |
+ return writeJSON(w, http.StatusOK, list) |
|
887 | 893 |
} |
888 | 894 |
|
889 | 895 |
func postContainersStart(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error { |
... | ... |
@@ -115,7 +115,6 @@ type Daemon struct { |
115 | 115 |
|
116 | 116 |
// Install installs daemon capabilities to eng. |
117 | 117 |
func (daemon *Daemon) Install(eng *engine.Engine) error { |
118 |
- // FIXME: remove ImageDelete's dependency on Daemon, then move to graph/ |
|
119 | 118 |
for name, method := range map[string]engine.Handler{ |
120 | 119 |
"commit": daemon.ContainerCommit, |
121 | 120 |
"container_copy": daemon.ContainerCopy, |
... | ... |
@@ -135,7 +134,6 @@ func (daemon *Daemon) Install(eng *engine.Engine) error { |
135 | 135 |
"top": daemon.ContainerTop, |
136 | 136 |
"unpause": daemon.ContainerUnpause, |
137 | 137 |
"wait": daemon.ContainerWait, |
138 |
- "image_delete": daemon.ImageDelete, // FIXME: see above |
|
139 | 138 |
"execCreate": daemon.ContainerExecCreate, |
140 | 139 |
"execStart": daemon.ContainerExecStart, |
141 | 140 |
"execResize": daemon.ContainerExecResize, |
... | ... |
@@ -1,12 +1,10 @@ |
1 | 1 |
package daemon |
2 | 2 |
|
3 | 3 |
import ( |
4 |
- "encoding/json" |
|
5 | 4 |
"fmt" |
6 | 5 |
"strings" |
7 | 6 |
|
8 | 7 |
"github.com/docker/docker/api/types" |
9 |
- "github.com/docker/docker/engine" |
|
10 | 8 |
"github.com/docker/docker/graph" |
11 | 9 |
"github.com/docker/docker/image" |
12 | 10 |
"github.com/docker/docker/pkg/parsers" |
... | ... |
@@ -14,26 +12,20 @@ import ( |
14 | 14 |
"github.com/docker/docker/utils" |
15 | 15 |
) |
16 | 16 |
|
17 |
-func (daemon *Daemon) ImageDelete(job *engine.Job) error { |
|
18 |
- if n := len(job.Args); n != 1 { |
|
19 |
- return fmt.Errorf("Usage: %s IMAGE", job.Name) |
|
20 |
- } |
|
21 |
- |
|
17 |
+// FIXME: remove ImageDelete's dependency on Daemon, then move to graph/ |
|
18 |
+func (daemon *Daemon) ImageDelete(name string, force, noprune bool) ([]types.ImageDelete, error) { |
|
22 | 19 |
list := []types.ImageDelete{} |
23 |
- if err := daemon.DeleteImage(job.Eng, job.Args[0], &list, true, job.GetenvBool("force"), job.GetenvBool("noprune")); err != nil { |
|
24 |
- return err |
|
20 |
+ if err := daemon.imgDeleteHelper(name, &list, true, force, noprune); err != nil { |
|
21 |
+ return nil, err |
|
25 | 22 |
} |
26 | 23 |
if len(list) == 0 { |
27 |
- return fmt.Errorf("Conflict, %s wasn't deleted", job.Args[0]) |
|
24 |
+ return nil, fmt.Errorf("Conflict, %s wasn't deleted", name) |
|
28 | 25 |
} |
29 |
- if err := json.NewEncoder(job.Stdout).Encode(list); err != nil { |
|
30 |
- return err |
|
31 |
- } |
|
32 |
- return nil |
|
26 |
+ |
|
27 |
+ return list, nil |
|
33 | 28 |
} |
34 | 29 |
|
35 |
-// FIXME: make this private and use the job instead |
|
36 |
-func (daemon *Daemon) DeleteImage(eng *engine.Engine, name string, list *[]types.ImageDelete, first, force, noprune bool) error { |
|
30 |
+func (daemon *Daemon) imgDeleteHelper(name string, list *[]types.ImageDelete, first, force, noprune bool) error { |
|
37 | 31 |
var ( |
38 | 32 |
repoName, tag string |
39 | 33 |
tags = []string{} |
... | ... |
@@ -124,9 +116,8 @@ func (daemon *Daemon) DeleteImage(eng *engine.Engine, name string, list *[]types |
124 | 124 |
Deleted: img.ID, |
125 | 125 |
}) |
126 | 126 |
daemon.EventsService.Log("delete", img.ID, "") |
127 |
- eng.Job("log", "delete", img.ID, "").Run() |
|
128 | 127 |
if img.Parent != "" && !noprune { |
129 |
- err := daemon.DeleteImage(eng, img.Parent, list, false, force, noprune) |
|
128 |
+ err := daemon.imgDeleteHelper(img.Parent, list, false, force, noprune) |
|
130 | 129 |
if first { |
131 | 130 |
return err |
132 | 131 |
} |