Refactor InspectImage method

This commit is contained in:
Harry Zhang 2016-04-06 10:15:38 -04:00
parent 7ecb44fe16
commit 3918eee5bf
6 changed files with 20 additions and 19 deletions

View File

@ -64,7 +64,7 @@ type DockerInterface interface {
StartContainer(id string) error StartContainer(id string) error
StopContainer(id string, timeout int) error StopContainer(id string, timeout int) error
RemoveContainer(id string, opts dockertypes.ContainerRemoveOptions) error RemoveContainer(id string, opts dockertypes.ContainerRemoveOptions) error
InspectImage(image string) (*docker.Image, error) InspectImage(image string) (*dockertypes.ImageInspect, error)
ListImages(opts dockertypes.ImageListOptions) ([]dockertypes.Image, error) ListImages(opts dockertypes.ImageListOptions) ([]dockertypes.Image, error)
PullImage(opts docker.PullImageOptions, auth docker.AuthConfiguration) error PullImage(opts docker.PullImageOptions, auth docker.AuthConfiguration) error
RemoveImage(image string) error RemoveImage(image string) error

View File

@ -471,7 +471,7 @@ type imageTrackingDockerClient struct {
imageName string imageName string
} }
func (f *imageTrackingDockerClient) InspectImage(name string) (image *docker.Image, err error) { func (f *imageTrackingDockerClient) InspectImage(name string) (image *dockertypes.ImageInspect, err error) {
image, err = f.FakeDockerClient.InspectImage(name) image, err = f.FakeDockerClient.InspectImage(name)
f.imageName = name f.imageName = name
return return

View File

@ -40,7 +40,7 @@ type FakeDockerClient struct {
RunningContainerList []dockertypes.Container RunningContainerList []dockertypes.Container
ExitedContainerList []dockertypes.Container ExitedContainerList []dockertypes.Container
ContainerMap map[string]*dockertypes.ContainerJSON ContainerMap map[string]*dockertypes.ContainerJSON
Image *docker.Image Image *dockertypes.ImageInspect
Images []dockertypes.Image Images []dockertypes.Image
Errors map[string]error Errors map[string]error
called []string called []string
@ -282,7 +282,7 @@ func (f *FakeDockerClient) InspectContainer(id string) (*dockertypes.ContainerJS
// InspectImage is a test-spy implementation of DockerInterface.InspectImage. // InspectImage is a test-spy implementation of DockerInterface.InspectImage.
// It adds an entry "inspect" to the internal method call record. // It adds an entry "inspect" to the internal method call record.
func (f *FakeDockerClient) InspectImage(name string) (*docker.Image, error) { func (f *FakeDockerClient) InspectImage(name string) (*dockertypes.ImageInspect, error) {
f.Lock() f.Lock()
defer f.Unlock() defer f.Unlock()
f.called = append(f.called, "inspect_image") f.called = append(f.called, "inspect_image")

View File

@ -103,7 +103,7 @@ func (in instrumentedDockerInterface) RemoveContainer(id string, opts dockertype
return err return err
} }
func (in instrumentedDockerInterface) InspectImage(image string) (*docker.Image, error) { func (in instrumentedDockerInterface) InspectImage(image string) (*dockertypes.ImageInspect, error) {
const operation = "inspect_image" const operation = "inspect_image"
defer recordOperation(operation, time.Now()) defer recordOperation(operation, time.Now())

View File

@ -141,7 +141,7 @@ func (d *kubeDockerClient) RemoveContainer(id string, opts dockertypes.Container
return d.client.ContainerRemove(getDefaultContext(), opts) return d.client.ContainerRemove(getDefaultContext(), opts)
} }
func (d *kubeDockerClient) InspectImage(image string) (*docker.Image, error) { func (d *kubeDockerClient) InspectImage(image string) (*dockertypes.ImageInspect, error) {
resp, _, err := d.client.ImageInspectWithRaw(getDefaultContext(), image, true) resp, _, err := d.client.ImageInspectWithRaw(getDefaultContext(), image, true)
if err != nil { if err != nil {
// TODO(random-liu): Use IsErrImageNotFound instead of ErrNoSuchImage // TODO(random-liu): Use IsErrImageNotFound instead of ErrNoSuchImage
@ -150,7 +150,7 @@ func (d *kubeDockerClient) InspectImage(image string) (*docker.Image, error) {
} }
return nil, err return nil, err
} }
imageInfo := &docker.Image{} imageInfo := &dockertypes.ImageInspect{}
if err := convertType(&resp, imageInfo); err != nil { if err := convertType(&resp, imageInfo); err != nil {
return nil, err return nil, err
} }

View File

@ -30,6 +30,7 @@ import (
"time" "time"
dockertypes "github.com/docker/engine-api/types" dockertypes "github.com/docker/engine-api/types"
containertypes "github.com/docker/engine-api/types/container"
dockercontainer "github.com/docker/engine-api/types/container" dockercontainer "github.com/docker/engine-api/types/container"
dockerstrslice "github.com/docker/engine-api/types/strslice" dockerstrslice "github.com/docker/engine-api/types/strslice"
docker "github.com/fsouza/go-dockerclient" docker "github.com/fsouza/go-dockerclient"
@ -1415,7 +1416,7 @@ func TestVerifyNonRoot(t *testing.T) {
tests := map[string]struct { tests := map[string]struct {
container *api.Container container *api.Container
inspectImage *docker.Image inspectImage *dockertypes.ImageInspect
expectedError string expectedError string
}{ }{
// success cases // success cases
@ -1428,16 +1429,16 @@ func TestVerifyNonRoot(t *testing.T) {
}, },
"numeric non-root image user": { "numeric non-root image user": {
container: &api.Container{}, container: &api.Container{},
inspectImage: &docker.Image{ inspectImage: &dockertypes.ImageInspect{
Config: &docker.Config{ Config: &containertypes.Config{
User: "1", User: "1",
}, },
}, },
}, },
"numeric non-root image user with gid": { "numeric non-root image user with gid": {
container: &api.Container{}, container: &api.Container{},
inspectImage: &docker.Image{ inspectImage: &dockertypes.ImageInspect{
Config: &docker.Config{ Config: &containertypes.Config{
User: "1:2", User: "1:2",
}, },
}, },
@ -1454,8 +1455,8 @@ func TestVerifyNonRoot(t *testing.T) {
}, },
"non-numeric image user": { "non-numeric image user": {
container: &api.Container{}, container: &api.Container{},
inspectImage: &docker.Image{ inspectImage: &dockertypes.ImageInspect{
Config: &docker.Config{ Config: &containertypes.Config{
User: "foo", User: "foo",
}, },
}, },
@ -1463,8 +1464,8 @@ func TestVerifyNonRoot(t *testing.T) {
}, },
"numeric root image user": { "numeric root image user": {
container: &api.Container{}, container: &api.Container{},
inspectImage: &docker.Image{ inspectImage: &dockertypes.ImageInspect{
Config: &docker.Config{ Config: &containertypes.Config{
User: "0", User: "0",
}, },
}, },
@ -1472,8 +1473,8 @@ func TestVerifyNonRoot(t *testing.T) {
}, },
"numeric root image user with gid": { "numeric root image user with gid": {
container: &api.Container{}, container: &api.Container{},
inspectImage: &docker.Image{ inspectImage: &dockertypes.ImageInspect{
Config: &docker.Config{ Config: &containertypes.Config{
User: "0:1", User: "0:1",
}, },
}, },
@ -1485,7 +1486,7 @@ func TestVerifyNonRoot(t *testing.T) {
}, },
"nil config in image inspect": { "nil config in image inspect": {
container: &api.Container{}, container: &api.Container{},
inspectImage: &docker.Image{}, inspectImage: &dockertypes.ImageInspect{},
expectedError: "unable to inspect image", expectedError: "unable to inspect image",
}, },
} }