Browse code

removed the -f

Victor Vieux authored on 2013/05/30 01:31:47
Showing 5 changed files
... ...
@@ -450,11 +450,7 @@ func deleteImages(srv *Server, version float64, w http.ResponseWriter, r *http.R
450 450
 		return fmt.Errorf("Missing parameter")
451 451
 	}
452 452
 	name := vars["name"]
453
-	force, err := getBoolParam(r.Form.Get("force"))
454
-	if err != nil {
455
-		return err
456
-	}
457
-	if err := srv.ImageDelete(name, force); err != nil {
453
+	if err := srv.ImageDelete(name); err != nil {
458 454
 		return err
459 455
 	}
460 456
 	w.WriteHeader(http.StatusNoContent)
... ...
@@ -1268,7 +1268,7 @@ func TestDeleteImages(t *testing.T) {
1268 1268
 	}
1269 1269
 
1270 1270
 	r := httptest.NewRecorder()
1271
-	if err := deleteImages(srv, r, req, map[string]string{"name": "test:test"}); err != nil {
1271
+	if err := deleteImages(srv, API_VERSION, r, req, map[string]string{"name": "test:test"}); err != nil {
1272 1272
 		t.Fatal(err)
1273 1273
 	}
1274 1274
 	if r.Code != http.StatusNoContent {
... ...
@@ -558,7 +558,6 @@ func (cli *DockerCli) CmdPort(args ...string) error {
558 558
 // 'docker rmi IMAGE' removes all images with the name IMAGE
559 559
 func (cli *DockerCli) CmdRmi(args ...string) error {
560 560
 	cmd := Subcmd("rmi", "IMAGE [IMAGE...]", "Remove an image")
561
-	force := cmd.Bool("f", false, "Force")
562 561
 	if err := cmd.Parse(args); err != nil {
563 562
 		return nil
564 563
 	}
... ...
@@ -567,13 +566,8 @@ func (cli *DockerCli) CmdRmi(args ...string) error {
567 567
 		return nil
568 568
 	}
569 569
 
570
-	v := url.Values{}
571
-	if *force {
572
-		v.Set("force", "1")
573
-	}
574
-
575 570
 	for _, name := range cmd.Args() {
576
-		_, _, err := cli.call("DELETE", "/images/"+name+"?"+v.Encode(), nil)
571
+		_, _, err := cli.call("DELETE", "/images/"+name, nil)
577 572
 		if err != nil {
578 573
 			fmt.Printf("%s", err)
579 574
 		} else {
... ...
@@ -704,7 +704,7 @@ func (srv *Server) ContainerDestroy(name string, removeVolume bool) error {
704 704
 	return nil
705 705
 }
706 706
 
707
-func (srv *Server) ImageDelete(name string, force bool) error {
707
+func (srv *Server) ImageDelete(name string) error {
708 708
 	img, err := srv.runtime.repositories.LookupImage(name)
709 709
 	if err != nil {
710 710
 		return fmt.Errorf("No such image: %s", name)
... ...
@@ -739,13 +739,17 @@ func (srv *Server) ImageDelete(name string, force bool) error {
739 739
 		}
740 740
 	}
741 741
 	// check is the image to delete isn't parent of another image
742
-	if !force {
743
-		images, _ := srv.runtime.graph.All()
744
-		for _, image := range images {
745
-			if imgParent, err := image.GetParent(); err == nil && imgParent != nil {
746
-				if imgParent.Id == img.Id {
747
-					return fmt.Errorf("Conflict: Can't delete %s otherwise %s will be broken", name, image.ShortId())
742
+	images, _ := srv.runtime.graph.All()
743
+	for _, image := range images {
744
+		if imgParent, err := image.GetParent(); err == nil && imgParent != nil {
745
+			if imgParent.Id == img.Id {
746
+				if strings.Contains(img.Id, name) {
747
+					return fmt.Errorf("Conflict with %s, %s was not removed", image.ShortId(), name)
748 748
 				}
749
+				if err := srv.runtime.repositories.Delete(name, tag, img.Id); err != nil {
750
+					return err
751
+				}
752
+				return nil
749 753
 			}
750 754
 		}
751 755
 	}
... ...
@@ -29,7 +29,7 @@ func TestContainerTagImageDelete(t *testing.T) {
29 29
 		t.Errorf("Excepted 3 images, %d found", len(images))
30 30
 	}
31 31
 
32
-	if err := srv.ImageDelete("utest/docker:tag2", true); err != nil {
32
+	if err := srv.ImageDelete("utest/docker:tag2"); err != nil {
33 33
 		t.Fatal(err)
34 34
 	}
35 35
 
... ...
@@ -42,7 +42,7 @@ func TestContainerTagImageDelete(t *testing.T) {
42 42
 		t.Errorf("Excepted 2 images, %d found", len(images))
43 43
 	}
44 44
 
45
-	if err := srv.ImageDelete("utest:tag1", true); err != nil {
45
+	if err := srv.ImageDelete("utest:tag1"); err != nil {
46 46
 		t.Fatal(err)
47 47
 	}
48 48