Merge pull request #189 from ijc/image-config-substruct

Split config-related fields of Image into a substruct.
This commit is contained in:
Justin Cormack 2017-11-28 11:59:25 +00:00 committed by GitHub
commit 656bd87fd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 11 deletions

View File

@ -62,8 +62,14 @@ type File struct {
// Image is the type of an image config // Image is the type of an image config
type Image struct { type Image struct {
Name string `yaml:"name" json:"name"` Name string `yaml:"name" json:"name"`
Image string `yaml:"image" json:"image"` Image string `yaml:"image" json:"image"`
ImageConfig `yaml:",inline"`
}
// ImageConfig is the configuration part of Image, it is the subset
// which is valid in a "org.mobyproject.config" label on an image.
type ImageConfig struct {
Capabilities *[]string `yaml:"capabilities" json:"capabilities,omitempty"` Capabilities *[]string `yaml:"capabilities" json:"capabilities,omitempty"`
Ambient *[]string `yaml:"ambient" json:"ambient,omitempty"` Ambient *[]string `yaml:"ambient" json:"ambient,omitempty"`
Mounts *[]specs.Mount `yaml:"mounts" json:"mounts,omitempty"` Mounts *[]specs.Mount `yaml:"mounts" json:"mounts,omitempty"`

View File

@ -9,7 +9,7 @@ import (
"github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/container"
) )
func setupInspect(t *testing.T, label Image) types.ImageInspect { func setupInspect(t *testing.T, label ImageConfig) types.ImageInspect {
var inspect types.ImageInspect var inspect types.ImageInspect
var config container.Config var config container.Config
@ -30,14 +30,16 @@ func TestOverrides(t *testing.T) {
var yamlCaps = []string{"CAP_SYS_ADMIN"} var yamlCaps = []string{"CAP_SYS_ADMIN"}
var yaml = Image{ var yaml = Image{
Name: "test", Name: "test",
Image: "testimage", Image: "testimage",
Capabilities: &yamlCaps, ImageConfig: ImageConfig{
Capabilities: &yamlCaps,
},
} }
var labelCaps = []string{"CAP_SYS_CHROOT"} var labelCaps = []string{"CAP_SYS_CHROOT"}
var label = Image{ var label = ImageConfig{
Capabilities: &labelCaps, Capabilities: &labelCaps,
Cwd: "/label/directory", Cwd: "/label/directory",
} }
@ -66,7 +68,7 @@ func TestInvalidCap(t *testing.T) {
} }
labelCaps := []string{"NOT_A_CAP"} labelCaps := []string{"NOT_A_CAP"}
var label = Image{ var label = ImageConfig{
Capabilities: &labelCaps, Capabilities: &labelCaps,
} }
@ -87,11 +89,13 @@ func TestIdMap(t *testing.T) {
yaml := Image{ yaml := Image{
Name: "test", Name: "test",
Image: "testimage", Image: "testimage",
UID: &uid, ImageConfig: ImageConfig{
GID: &gid, UID: &uid,
GID: &gid,
},
} }
var label = Image{} var label = ImageConfig{}
inspect := setupInspect(t, label) inspect := setupInspect(t, label)