mirror of https://github.com/docker/docs.git
Merge pull request #1138 from dotcloud/1123-rmi_conflict-fix
* Runtime: Fix error in rmi when conflict
This commit is contained in:
commit
ad33e9f388
18
api_test.go
18
api_test.go
|
@ -1359,21 +1359,31 @@ func TestDeleteImages(t *testing.T) {
|
||||||
t.Errorf("Expected %d images, %d found", len(initialImages)+1, len(images))
|
t.Errorf("Expected %d images, %d found", len(initialImages)+1, len(images))
|
||||||
}
|
}
|
||||||
|
|
||||||
req, err := http.NewRequest("DELETE", "/images/test:test", nil)
|
req, err := http.NewRequest("DELETE", "/images/"+unitTestImageID, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
r := httptest.NewRecorder()
|
r := httptest.NewRecorder()
|
||||||
if err := deleteImages(srv, APIVERSION, r, req, map[string]string{"name": "test:test"}); err != nil {
|
if err := deleteImages(srv, APIVERSION, r, req, map[string]string{"name": unitTestImageID}); err == nil {
|
||||||
|
t.Fatalf("Expected conflict error, got none")
|
||||||
|
}
|
||||||
|
|
||||||
|
req2, err := http.NewRequest("DELETE", "/images/test:test", nil)
|
||||||
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if r.Code != http.StatusOK {
|
|
||||||
|
r2 := httptest.NewRecorder()
|
||||||
|
if err := deleteImages(srv, APIVERSION, r2, req2, map[string]string{"name": "test:test"}); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if r2.Code != http.StatusOK {
|
||||||
t.Fatalf("%d OK expected, received %d\n", http.StatusOK, r.Code)
|
t.Fatalf("%d OK expected, received %d\n", http.StatusOK, r.Code)
|
||||||
}
|
}
|
||||||
|
|
||||||
var outs []APIRmi
|
var outs []APIRmi
|
||||||
if err := json.Unmarshal(r.Body.Bytes(), &outs); err != nil {
|
if err := json.Unmarshal(r2.Body.Bytes(), &outs); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if len(outs) != 1 {
|
if len(outs) != 1 {
|
||||||
|
|
|
@ -889,7 +889,7 @@ func (srv *Server) deleteImageParents(img *Image, imgs *[]APIRmi) error {
|
||||||
|
|
||||||
func (srv *Server) deleteImage(img *Image, repoName, tag string) ([]APIRmi, error) {
|
func (srv *Server) deleteImage(img *Image, repoName, tag string) ([]APIRmi, error) {
|
||||||
//Untag the current image
|
//Untag the current image
|
||||||
var imgs []APIRmi
|
imgs := []APIRmi{}
|
||||||
tagDeleted, err := srv.runtime.repositories.Delete(repoName, tag)
|
tagDeleted, err := srv.runtime.repositories.Delete(repoName, tag)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
Loading…
Reference in New Issue