mirror of
https://github.com/docker/docs.git
synced 2026-04-12 06:19:22 +07:00
fix import unit test
Signed-off-by: Xian Chaobo <xianchaobo@huawei.com>
This commit is contained in:
@@ -382,12 +382,11 @@ func (c *Cluster) Import(source string, repository string, tag string, imageRead
|
||||
var wg sync.WaitGroup
|
||||
c.RLock()
|
||||
pipeWriters := []*io.PipeWriter{}
|
||||
pipeReaders := []*io.PipeReader{}
|
||||
|
||||
for _, n := range c.engines {
|
||||
wg.Add(1)
|
||||
|
||||
pipeReader, pipeWriter := io.Pipe()
|
||||
pipeReaders = append(pipeReaders, pipeReader)
|
||||
pipeWriters = append(pipeWriters, pipeWriter)
|
||||
|
||||
go func(reader *io.PipeReader, nn *cluster.Engine) {
|
||||
@@ -406,16 +405,17 @@ func (c *Cluster) Import(source string, repository string, tag string, imageRead
|
||||
|
||||
}(pipeReader, n)
|
||||
}
|
||||
c.RUnlock()
|
||||
|
||||
// create multi-writer
|
||||
listWriter := []io.Writer{}
|
||||
for _, pipeW := range pipeWriters {
|
||||
listWriter = append(listWriter, pipeW)
|
||||
}
|
||||
mutiWriter := io.MultiWriter(listWriter...)
|
||||
multiWriter := io.MultiWriter(listWriter...)
|
||||
|
||||
// copy image-reader to muti-writer
|
||||
_, err := io.Copy(mutiWriter, imageReader)
|
||||
_, err := io.Copy(multiWriter, imageReader)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
@@ -425,10 +425,7 @@ func (c *Cluster) Import(source string, repository string, tag string, imageRead
|
||||
pipeW.Close()
|
||||
}
|
||||
|
||||
c.RUnlock()
|
||||
|
||||
wg.Wait()
|
||||
|
||||
}
|
||||
|
||||
// Containers returns all the containers in the cluster.
|
||||
|
||||
@@ -131,7 +131,7 @@ func TestImportImage(t *testing.T) {
|
||||
|
||||
// import success
|
||||
readCloser := nopCloser{bytes.NewBufferString("ok")}
|
||||
client.On("ImportImage", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(readCloser, nil).Once()
|
||||
client.On("ImportImage", mock.Anything, mock.Anything, mock.Anything, mock.AnythingOfType("*io.PipeReader")).Return(readCloser, nil).Once()
|
||||
|
||||
callback := func(what, status string) {
|
||||
// import success
|
||||
@@ -142,7 +142,7 @@ func TestImportImage(t *testing.T) {
|
||||
// import error
|
||||
readCloser = nopCloser{bytes.NewBufferString("error")}
|
||||
err := fmt.Errorf("Import error")
|
||||
client.On("ImportImage", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(readCloser, err).Once()
|
||||
client.On("ImportImage", mock.Anything, mock.Anything, mock.Anything, mock.AnythingOfType("*io.PipeReader")).Return(readCloser, err).Once()
|
||||
|
||||
callback = func(what, status string) {
|
||||
// import error
|
||||
|
||||
Reference in New Issue
Block a user