mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Remove job from rmi
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
This commit is contained in:
parent
6b7e520aa3
commit
e4afc379dc
4 changed files with 21 additions and 26 deletions
|
@ -155,7 +155,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
|
||||||
// And canonicalize dockerfile name to a platform-independent one
|
// And canonicalize dockerfile name to a platform-independent one
|
||||||
*dockerfileName, err = archive.CanonicalTarNameForPath(*dockerfileName)
|
*dockerfileName, err = archive.CanonicalTarNameForPath(*dockerfileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Cannot canonicalize dockerfile path %s: %v", dockerfileName, err)
|
return fmt.Errorf("Cannot canonicalize dockerfile path %s: %v", *dockerfileName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err = os.Lstat(filename); os.IsNotExist(err) {
|
if _, err = os.Lstat(filename); os.IsNotExist(err) {
|
||||||
|
|
|
@ -878,12 +878,18 @@ func deleteImages(eng *engine.Engine, version version.Version, w http.ResponseWr
|
||||||
if vars == nil {
|
if vars == nil {
|
||||||
return fmt.Errorf("Missing parameter")
|
return fmt.Errorf("Missing parameter")
|
||||||
}
|
}
|
||||||
var job = eng.Job("image_delete", vars["name"])
|
|
||||||
streamJSON(job, w, false)
|
|
||||||
job.Setenv("force", r.Form.Get("force"))
|
|
||||||
job.Setenv("noprune", r.Form.Get("noprune"))
|
|
||||||
|
|
||||||
return job.Run()
|
d := getDaemon(eng)
|
||||||
|
name := vars["name"]
|
||||||
|
force := toBool(r.Form.Get("force"))
|
||||||
|
noprune := toBool(r.Form.Get("noprune"))
|
||||||
|
|
||||||
|
list, err := d.ImageDelete(name, force, noprune)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return writeJSON(w, http.StatusOK, list)
|
||||||
}
|
}
|
||||||
|
|
||||||
func postContainersStart(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
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 {
|
||||||
|
|
||||||
// Install installs daemon capabilities to eng.
|
// Install installs daemon capabilities to eng.
|
||||||
func (daemon *Daemon) Install(eng *engine.Engine) error {
|
func (daemon *Daemon) Install(eng *engine.Engine) error {
|
||||||
// FIXME: remove ImageDelete's dependency on Daemon, then move to graph/
|
|
||||||
for name, method := range map[string]engine.Handler{
|
for name, method := range map[string]engine.Handler{
|
||||||
"commit": daemon.ContainerCommit,
|
"commit": daemon.ContainerCommit,
|
||||||
"container_copy": daemon.ContainerCopy,
|
"container_copy": daemon.ContainerCopy,
|
||||||
|
@ -135,7 +134,6 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
|
||||||
"top": daemon.ContainerTop,
|
"top": daemon.ContainerTop,
|
||||||
"unpause": daemon.ContainerUnpause,
|
"unpause": daemon.ContainerUnpause,
|
||||||
"wait": daemon.ContainerWait,
|
"wait": daemon.ContainerWait,
|
||||||
"image_delete": daemon.ImageDelete, // FIXME: see above
|
|
||||||
"execCreate": daemon.ContainerExecCreate,
|
"execCreate": daemon.ContainerExecCreate,
|
||||||
"execStart": daemon.ContainerExecStart,
|
"execStart": daemon.ContainerExecStart,
|
||||||
"execResize": daemon.ContainerExecResize,
|
"execResize": daemon.ContainerExecResize,
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
package daemon
|
package daemon
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types"
|
"github.com/docker/docker/api/types"
|
||||||
"github.com/docker/docker/engine"
|
|
||||||
"github.com/docker/docker/graph"
|
"github.com/docker/docker/graph"
|
||||||
"github.com/docker/docker/image"
|
"github.com/docker/docker/image"
|
||||||
"github.com/docker/docker/pkg/parsers"
|
"github.com/docker/docker/pkg/parsers"
|
||||||
|
@ -14,26 +12,20 @@ import (
|
||||||
"github.com/docker/docker/utils"
|
"github.com/docker/docker/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (daemon *Daemon) ImageDelete(job *engine.Job) error {
|
// FIXME: remove ImageDelete's dependency on Daemon, then move to graph/
|
||||||
if n := len(job.Args); n != 1 {
|
func (daemon *Daemon) ImageDelete(name string, force, noprune bool) ([]types.ImageDelete, error) {
|
||||||
return fmt.Errorf("Usage: %s IMAGE", job.Name)
|
|
||||||
}
|
|
||||||
|
|
||||||
list := []types.ImageDelete{}
|
list := []types.ImageDelete{}
|
||||||
if err := daemon.DeleteImage(job.Eng, job.Args[0], &list, true, job.GetenvBool("force"), job.GetenvBool("noprune")); err != nil {
|
if err := daemon.imgDeleteHelper(name, &list, true, force, noprune); err != nil {
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
if len(list) == 0 {
|
if len(list) == 0 {
|
||||||
return fmt.Errorf("Conflict, %s wasn't deleted", job.Args[0])
|
return nil, fmt.Errorf("Conflict, %s wasn't deleted", name)
|
||||||
}
|
}
|
||||||
if err := json.NewEncoder(job.Stdout).Encode(list); err != nil {
|
|
||||||
return err
|
return list, nil
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: make this private and use the job instead
|
func (daemon *Daemon) imgDeleteHelper(name string, list *[]types.ImageDelete, first, force, noprune bool) error {
|
||||||
func (daemon *Daemon) DeleteImage(eng *engine.Engine, name string, list *[]types.ImageDelete, first, force, noprune bool) error {
|
|
||||||
var (
|
var (
|
||||||
repoName, tag string
|
repoName, tag string
|
||||||
tags = []string{}
|
tags = []string{}
|
||||||
|
@ -124,9 +116,8 @@ func (daemon *Daemon) DeleteImage(eng *engine.Engine, name string, list *[]types
|
||||||
Deleted: img.ID,
|
Deleted: img.ID,
|
||||||
})
|
})
|
||||||
daemon.EventsService.Log("delete", img.ID, "")
|
daemon.EventsService.Log("delete", img.ID, "")
|
||||||
eng.Job("log", "delete", img.ID, "").Run()
|
|
||||||
if img.Parent != "" && !noprune {
|
if img.Parent != "" && !noprune {
|
||||||
err := daemon.DeleteImage(eng, img.Parent, list, false, force, noprune)
|
err := daemon.imgDeleteHelper(img.Parent, list, false, force, noprune)
|
||||||
if first {
|
if first {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue