Browse code

Merge pull request #12234 from runcom/remove-job-rmi

Remove job from rmi

Alexander Morozov authored on 2015/04/10 03:24:20
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) {
... ...
@@ -887,12 +887,18 @@ func deleteImages(eng *engine.Engine, version version.Version, w http.ResponseWr
887 887
 	if vars == nil {
888 888
 		return fmt.Errorf("Missing parameter")
889 889
 	}
890
-	var job = eng.Job("image_delete", vars["name"])
891
-	streamJSON(job, w, false)
892
-	job.Setenv("force", r.Form.Get("force"))
893
-	job.Setenv("noprune", r.Form.Get("noprune"))
894 890
 
895
-	return job.Run()
891
+	d := getDaemon(eng)
892
+	name := vars["name"]
893
+	force := toBool(r.Form.Get("force"))
894
+	noprune := toBool(r.Form.Get("noprune"))
895
+
896
+	list, err := d.ImageDelete(name, force, noprune)
897
+	if err != nil {
898
+		return err
899
+	}
900
+
901
+	return writeJSON(w, http.StatusOK, list)
896 902
 }
897 903
 
898 904
 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,
... ...
@@ -134,7 +133,6 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
134 134
 		"top":               daemon.ContainerTop,
135 135
 		"unpause":           daemon.ContainerUnpause,
136 136
 		"wait":              daemon.ContainerWait,
137
-		"image_delete":      daemon.ImageDelete, // FIXME: see above
138 137
 		"execCreate":        daemon.ContainerExecCreate,
139 138
 		"execStart":         daemon.ContainerExecStart,
140 139
 		"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
 				}