Browse code

Detect images/containers conflicts in docker inspect

Victor Vieux authored on 2013/09/06 07:28:51
Showing 3 changed files
... ...
@@ -819,6 +819,11 @@ func getContainersByName(srv *Server, version float64, w http.ResponseWriter, r
819 819
 	if err != nil {
820 820
 		return err
821 821
 	}
822
+
823
+	_, err = srv.ImageInspect(name)
824
+	if err == nil {
825
+		return fmt.Errorf("Conflict between containers and images")
826
+	}
822 827
 	b, err := json.Marshal(container)
823 828
 	if err != nil {
824 829
 		return err
... ...
@@ -837,6 +842,11 @@ func getImagesByName(srv *Server, version float64, w http.ResponseWriter, r *htt
837 837
 	if err != nil {
838 838
 		return err
839 839
 	}
840
+
841
+	_, err = srv.ContainerInspect(name)
842
+	if err == nil {
843
+		return fmt.Errorf("Conflict between containers and images")
844
+	}
840 845
 	b, err := json.Marshal(image)
841 846
 	if err != nil {
842 847
 		return err
... ...
@@ -577,7 +577,7 @@ func (cli *DockerCli) CmdInspect(args ...string) error {
577 577
 		if err != nil {
578 578
 			obj, _, err = cli.call("GET", "/images/"+name+"/json", nil)
579 579
 			if err != nil {
580
-				fmt.Fprintf(cli.err, "%s\n", err)
580
+				fmt.Fprintf(cli.err, "No such image or container: %s\n", name)
581 581
 				continue
582 582
 			}
583 583
 		}
... ...
@@ -224,6 +224,7 @@ Inspect a container
224 224
 
225 225
 	:statuscode 200: no error
226 226
 	:statuscode 404: no such container
227
+	:statuscode 409: conflict between containers and images
227 228
 	:statuscode 500: server error
228 229
 
229 230
 
... ...
@@ -760,6 +761,7 @@ Inspect an image
760 760
 
761 761
 	:statuscode 200: no error
762 762
 	:statuscode 404: no such image
763
+	:statuscode 409: conflict between containers and images
763 764
         :statuscode 500: server error
764 765
 
765 766