Fix the container manifest to so that Command is an array, not a string.

This commit is contained in:
Brendan Burns 2014-06-19 20:19:40 -07:00
parent 466be48c74
commit ae9fce1358
3 changed files with 2 additions and 22 deletions

View File

@ -57,7 +57,7 @@ type EnvVar struct {
type Container struct {
Name string `yaml:"name,omitempty" json:"name,omitempty"`
Image string `yaml:"image,omitempty" json:"image,omitempty"`
Command string `yaml:"command,omitempty" json:"command,omitempty"`
Command []string `yaml:"command,omitempty" json:"command,omitempty"`
WorkingDir string `yaml:"workingDir,omitempty" json:"workingDir,omitempty"`
Ports []Port `yaml:"ports,omitempty" json:"ports,omitempty"`
Env []EnvVar `yaml:"env,omitempty" json:"env,omitempty"`

View File

@ -296,14 +296,6 @@ func makePortsAndBindings(container *api.Container) (map[docker.Port]struct{}, m
return exposedPorts, portBindings
}
func makeCommandLine(container *api.Container) []string {
var cmdList []string
if len(container.Command) > 0 {
cmdList = strings.Split(container.Command, " ")
}
return cmdList
}
func (kl *Kubelet) RunContainer(manifest *api.ContainerManifest, container *api.Container) (name string, err error) {
name = manifestAndContainerToDockerName(manifest, container)
@ -319,7 +311,7 @@ func (kl *Kubelet) RunContainer(manifest *api.ContainerManifest, container *api.
Env: envVariables,
Volumes: volumes,
WorkingDir: container.WorkingDir,
Cmd: makeCommandLine(container),
Cmd: container.Command,
},
}
dockerContainer, err := kl.DockerClient.CreateContainer(opts)

View File

@ -22,7 +22,6 @@ import (
"io/ioutil"
"net/http/httptest"
"reflect"
"strings"
"sync"
"testing"
@ -596,17 +595,6 @@ func TestEventWritingError(t *testing.T) {
}
}
func TestMakeCommandLine(t *testing.T) {
expected := []string{"echo", "hello", "world"}
container := api.Container{
Command: strings.Join(expected, " "),
}
cmdLine := makeCommandLine(&container)
if !reflect.DeepEqual(expected, cmdLine) {
t.Error("Unexpected command line. Expected %#v, got %#v", expected, cmdLine)
}
}
func TestMakeEnvVariables(t *testing.T) {
container := api.Container{
Env: []api.EnvVar{