Fix PullImage and corresponding node e2e test.

This commit is contained in:
Random-Liu
2016-04-11 17:41:45 -07:00
parent fbe5f70267
commit 2b9f6bea18
3 changed files with 70 additions and 64 deletions

View File

@@ -24,7 +24,8 @@ import (
"io/ioutil"
"strconv"
"github.com/docker/docker/pkg/stdcopy"
dockermessage "github.com/docker/docker/pkg/jsonmessage"
dockerstdcopy "github.com/docker/docker/pkg/stdcopy"
dockerapi "github.com/docker/engine-api/client"
dockertypes "github.com/docker/engine-api/types"
dockercontainer "github.com/docker/engine-api/types/container"
@@ -228,8 +229,21 @@ func (d *kubeDockerClient) PullImage(opts docker.PullImageOptions, auth docker.A
}
defer resp.Close()
// TODO(random-liu): Use the image pulling progress information.
_, err = io.Copy(ioutil.Discard, resp)
return err
decoder := json.NewDecoder(resp)
for {
var msg dockermessage.JSONMessage
err := decoder.Decode(&msg)
if err == io.EOF {
break
}
if err != nil {
return err
}
if msg.Error != nil {
return msg.Error
}
}
return nil
}
func (d *kubeDockerClient) RemoveImage(image string) error {
@@ -353,7 +367,7 @@ func (d *kubeDockerClient) redirectResponseToOutputStream(tty bool, outputStream
if tty {
_, err = io.Copy(outputStream, resp)
} else {
_, err = stdcopy.StdCopy(outputStream, errorStream, resp)
_, err = dockerstdcopy.StdCopy(outputStream, errorStream, resp)
}
return err
}