Selaa lähdekoodia

Use ensureReaderClosed consistently to close a response body reader.

Signed-off-by: David Calavera <david.calavera@gmail.com>
David Calavera 9 vuotta sitten
vanhempi
commit
8c9c9e137c

+ 1 - 2
api/client/lib/container_commit.go

@@ -51,8 +51,7 @@ func (cli *Client) ContainerCommit(options types.ContainerCommitOptions) (types.
 	if err != nil {
 		return response, err
 	}
-
-	defer resp.body.Close()
+	defer ensureReaderClosed(resp)
 
 	if err := json.NewDecoder(resp.body).Decode(&response); err != nil {
 		return response, err

+ 2 - 0
api/client/lib/container_create.go

@@ -29,11 +29,13 @@ func (cli *Client) ContainerCreate(config *runconfig.ContainerConfigWrapper, con
 	}
 
 	if serverResp.statusCode == 404 && strings.Contains(err.Error(), config.Image) {
+		return response, imageNotFoundError{config.Image}
 	}
 
 	if err != nil {
 		return response, err
 	}
+	defer ensureReaderClosed(serverResp)
 
 	if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
 		return response, err

+ 1 - 1
api/client/lib/container_inspect.go

@@ -12,7 +12,7 @@ func (cli *Client) ContainerInspect(containerID string) (types.ContainerJSON, er
 	if err != nil {
 		return types.ContainerJSON{}, err
 	}
-	defer serverResp.body.Close()
+	defer ensureReaderClosed(serverResp)
 
 	var response types.ContainerJSON
 	json.NewDecoder(serverResp.body).Decode(&response)

+ 1 - 0
api/client/lib/copy.go

@@ -51,6 +51,7 @@ func (cli *Client) CopyToContainer(options CopyToContainerOptions) error {
 	if err != nil {
 		return err
 	}
+	defer ensureReaderClosed(response)
 
 	if response.statusCode != http.StatusOK {
 		return fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)

+ 1 - 1
api/client/lib/diff.go

@@ -15,7 +15,7 @@ func (cli *Client) ContainerDiff(containerID string) ([]types.ContainerChange, e
 	if err != nil {
 		return changes, err
 	}
-	defer serverResp.body.Close()
+	defer ensureReaderClosed(serverResp)
 
 	if err := json.NewDecoder(serverResp.body).Decode(&changes); err != nil {
 		return changes, err

+ 1 - 1
api/client/lib/history.go

@@ -14,7 +14,7 @@ func (cli *Client) ImageHistory(imageID string) ([]types.ImageHistory, error) {
 	if err != nil {
 		return history, err
 	}
-	defer serverResp.body.Close()
+	defer ensureReaderClosed(serverResp)
 
 	if err := json.NewDecoder(serverResp.body).Decode(&history); err != nil {
 		return history, err

+ 1 - 1
api/client/lib/image_list.go

@@ -41,7 +41,7 @@ func (cli *Client) ImageList(options ImageListOptions) ([]types.Image, error) {
 	if err != nil {
 		return images, err
 	}
-	defer serverResp.body.Close()
+	defer ensureReaderClosed(serverResp)
 
 	err = json.NewDecoder(serverResp.body).Decode(&images)
 	return images, err

+ 1 - 1
api/client/lib/info.go

@@ -15,7 +15,7 @@ func (cli *Client) Info() (types.Info, error) {
 	if err != nil {
 		return info, err
 	}
-	defer serverResp.body.Close()
+	defer ensureReaderClosed(serverResp)
 
 	if err := json.NewDecoder(serverResp.body).Decode(&info); err != nil {
 		return info, fmt.Errorf("Error reading remote info: %v", err)

+ 2 - 1
api/client/lib/kill.go

@@ -7,6 +7,7 @@ func (cli *Client) ContainerKill(containerID, signal string) error {
 	var query url.Values
 	query.Set("signal", signal)
 
-	_, err := cli.POST("/containers/"+containerID+"/kill", query, nil, nil)
+	resp, err := cli.POST("/containers/"+containerID+"/kill", query, nil, nil)
+	ensureReaderClosed(resp)
 	return err
 }

+ 1 - 1
api/client/lib/login.go

@@ -20,7 +20,7 @@ func (cli *Client) RegistryLogin(auth cliconfig.AuthConfig) (types.AuthResponse,
 	if err != nil {
 		return types.AuthResponse{}, err
 	}
-	defer resp.body.Close()
+	defer ensureReaderClosed(resp)
 
 	var response types.AuthResponse
 	err = json.NewDecoder(resp.body).Decode(&response)