Merge pull request #214 from ijc/envvar-with-equals

Handle environment variables which containe spaces
This commit is contained in:
Lantao Liu 2017-09-05 16:00:36 -07:00 committed by GitHub
commit cf391d82c3
2 changed files with 6 additions and 3 deletions

View File

@ -380,7 +380,7 @@ func setOCIProcessArgs(g *generate.Generator, config *runtime.ContainerConfig, i
// an invalid environment variable is encountered. // an invalid environment variable is encountered.
func addImageEnvs(g *generate.Generator, imageEnvs []string) error { func addImageEnvs(g *generate.Generator, imageEnvs []string) error {
for _, e := range imageEnvs { for _, e := range imageEnvs {
kv := strings.Split(e, "=") kv := strings.SplitN(e, "=", 2)
if len(kv) != 2 { if len(kv) != 2 {
return fmt.Errorf("invalid environment variable %q", e) return fmt.Errorf("invalid environment variable %q", e)
} }

View File

@ -62,6 +62,8 @@ func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandbox
Envs: []*runtime.KeyValue{ Envs: []*runtime.KeyValue{
{Key: "k1", Value: "v1"}, {Key: "k1", Value: "v1"},
{Key: "k2", Value: "v2"}, {Key: "k2", Value: "v2"},
{Key: "k3", Value: "v3=v3bis"},
{Key: "k4", Value: "v4=v4bis=foop"},
}, },
Mounts: []*runtime.Mount{ Mounts: []*runtime.Mount{
{ {
@ -106,7 +108,7 @@ func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandbox
}, },
} }
imageConfig := &imagespec.ImageConfig{ imageConfig := &imagespec.ImageConfig{
Env: []string{"ik1=iv1", "ik2=iv2"}, Env: []string{"ik1=iv1", "ik2=iv2", "ik3=iv3=iv3bis", "ik4=iv4=iv4bis=boop"},
Entrypoint: []string{"/entrypoint"}, Entrypoint: []string{"/entrypoint"},
Cmd: []string{"cmd"}, Cmd: []string{"cmd"},
WorkingDir: "/workspace", WorkingDir: "/workspace",
@ -115,7 +117,8 @@ func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandbox
assert.Equal(t, relativeRootfsPath, spec.Root.Path) assert.Equal(t, relativeRootfsPath, spec.Root.Path)
assert.Equal(t, []string{"test", "command", "test", "args"}, spec.Process.Args) assert.Equal(t, []string{"test", "command", "test", "args"}, spec.Process.Args)
assert.Equal(t, "test-cwd", spec.Process.Cwd) assert.Equal(t, "test-cwd", spec.Process.Cwd)
assert.Contains(t, spec.Process.Env, "k1=v1", "k2=v2", "ik1=iv1", "ik2=iv2") assert.Contains(t, spec.Process.Env, "k1=v1", "k2=v2", "k3=v3=v3bis", "ik4=iv4=iv4bis=boop")
assert.Contains(t, spec.Process.Env, "ik1=iv1", "ik2=iv2", "ik3=iv3=iv3bis", "k4=v4=v4bis=foop")
t.Logf("Check cgroups bind mount") t.Logf("Check cgroups bind mount")
checkMount(t, spec.Mounts, "cgroup", "/sys/fs/cgroup", "cgroup", []string{"ro"}, nil) checkMount(t, spec.Mounts, "cgroup", "/sys/fs/cgroup", "cgroup", []string{"ro"}, nil)