Browse code

Remove job from rmi

Signed-off-by: Antonio Murdaca <me@runcom.ninja>

Antonio Murdaca authored on 2015/04/09 20:59:50
Showing 4 changed files
... ...
@@ -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
 				}