Skip to content

Commit 72edbad

Browse files
authored
daemon: Ensure we call NegotiateAPIVersion first (#736)
1 parent 92c877e commit 72edbad

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

pkg/v1/daemon/image.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ func (i *imageOpener) Open() (v1.Image, error) {
5454
return nil, err
5555
}
5656

57-
i.client.NegotiateAPIVersion(context.Background())
58-
5957
tb, err := tarball.Image(opener, nil)
6058
if err != nil {
6159
return nil, err
@@ -117,6 +115,7 @@ func Image(ref name.Reference, options ...ImageOption) (v1.Image, error) {
117115
return nil, err
118116
}
119117
}
118+
i.client.NegotiateAPIVersion(context.Background())
120119

121120
return i.Open()
122121
}

pkg/v1/daemon/image_test.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ package daemon
1616

1717
import (
1818
"context"
19+
"errors"
1920
"io"
2021
"os"
2122
"testing"
@@ -30,12 +31,19 @@ var imagePath = "../tarball/testdata/test_image_1.tar"
3031

3132
type MockImageSaver struct {
3233
Client
33-
path string
34+
path string
35+
negotiated bool
3436
}
3537

36-
func (m *MockImageSaver) NegotiateAPIVersion(ctx context.Context) {}
38+
func (m *MockImageSaver) NegotiateAPIVersion(ctx context.Context) {
39+
m.negotiated = true
40+
}
3741

3842
func (m *MockImageSaver) ImageSave(_ context.Context, _ []string) (io.ReadCloser, error) {
43+
if !m.negotiated {
44+
return nil, errors.New("you forgot to call NegotiateAPIVersion before calling ImageSave")
45+
46+
}
3947
return os.Open(m.path)
4048
}
4149

@@ -59,7 +67,7 @@ func TestImage(t *testing.T) {
5967

6068
dmn, err := Image(tag, opts...)
6169
if err != nil {
62-
t.Errorf("Error loading daemon image: %s", err)
70+
t.Fatalf("Error loading daemon image: %s", err)
6371
}
6472
if err := compare.Images(img, dmn); err != nil {
6573
t.Errorf("compare.Images: %v", err)

0 commit comments

Comments
 (0)