Merge pull request #1833 from vieux/test_p_compose

revert startconfig breaking change
This commit is contained in:
Victor Vieux 2016-02-18 10:54:49 -08:00
commit 8debc534ce
9 changed files with 26 additions and 52 deletions

View File

@ -740,26 +740,6 @@ func getEvents(c *context, w http.ResponseWriter, r *http.Request) {
// POST /containers/{name:.*}/start // POST /containers/{name:.*}/start
func postContainersStart(c *context, w http.ResponseWriter, r *http.Request) { func postContainersStart(c *context, w http.ResponseWriter, r *http.Request) {
hostConfig := &dockerclient.HostConfig{
MemorySwappiness: -1,
}
buf, err := ioutil.ReadAll(r.Body)
if err != nil {
httpError(w, err.Error(), http.StatusBadRequest)
return
}
r.Body.Close()
if len(buf) == 0 {
hostConfig = nil
} else {
if err := json.Unmarshal(buf, hostConfig); err != nil {
httpError(w, err.Error(), http.StatusBadRequest)
return
}
}
name := mux.Vars(r)["name"] name := mux.Vars(r)["name"]
container := c.cluster.Container(name) container := c.cluster.Container(name)
if container == nil { if container == nil {
@ -767,7 +747,7 @@ func postContainersStart(c *context, w http.ResponseWriter, r *http.Request) {
return return
} }
if err := c.cluster.StartContainer(container, hostConfig); err != nil { if err := c.cluster.StartContainer(container); err != nil {
httpError(w, err.Error(), http.StatusInternalServerError) httpError(w, err.Error(), http.StatusInternalServerError)
return return
} }

View File

@ -27,7 +27,7 @@ type Cluster interface {
Containers() Containers Containers() Containers
// Start a container // Start a container
StartContainer(container *Container, hostConfig *dockerclient.HostConfig) error StartContainer(container *Container) error
// Return container the matching `IDOrName` // Return container the matching `IDOrName`
// TODO: remove this method from the interface as we can use // TODO: remove this method from the interface as we can use

View File

@ -1038,8 +1038,8 @@ func (e *Engine) cleanupContainers() {
} }
// StartContainer starts a container // StartContainer starts a container
func (e *Engine) StartContainer(id string, hostConfig *dockerclient.HostConfig) error { func (e *Engine) StartContainer(id string) error {
err := e.client.StartContainer(id, hostConfig) err := e.client.StartContainer(id, nil)
e.CheckConnectionErr(err) e.CheckConnectionErr(err)
if err != nil { if err != nil {
return err return err

View File

@ -179,10 +179,10 @@ func (c *Cluster) UnregisterEventHandler(h cluster.EventHandler) {
} }
// StartContainer starts a container // StartContainer starts a container
func (c *Cluster) StartContainer(container *cluster.Container, hostConfig *dockerclient.HostConfig) error { func (c *Cluster) StartContainer(container *cluster.Container) error {
// if the container was started less than a second ago in detach mode, do not start it // if the container was started less than a second ago in detach mode, do not start it
if time.Now().Unix()-container.Created > 1 || container.Config.Labels[cluster.SwarmLabelNamespace+".mesos.detach"] != "true" { if time.Now().Unix()-container.Created > 1 || container.Config.Labels[cluster.SwarmLabelNamespace+".mesos.detach"] != "true" {
return container.Engine.StartContainer(container.Id, hostConfig) return container.Engine.StartContainer(container.Id)
} }
return nil return nil
} }

View File

@ -125,8 +125,8 @@ func (c *Cluster) generateUniqueID() string {
} }
// StartContainer starts a container // StartContainer starts a container
func (c *Cluster) StartContainer(container *cluster.Container, hostConfig *dockerclient.HostConfig) error { func (c *Cluster) StartContainer(container *cluster.Container) error {
return container.Engine.StartContainer(container.Id, hostConfig) return container.Engine.StartContainer(container.Id)
} }
// CreateContainer aka schedule a brand new container into the cluster. // CreateContainer aka schedule a brand new container into the cluster.

View File

@ -83,7 +83,7 @@ func (w *Watchdog) rescheduleContainers(e *Engine) {
log.Infof("Rescheduled container %s from %s to %s as %s", c.Id, c.Engine.Name, newContainer.Engine.Name, newContainer.Id) log.Infof("Rescheduled container %s from %s to %s as %s", c.Id, c.Engine.Name, newContainer.Engine.Name, newContainer.Id)
if c.Info.State.Running { if c.Info.State.Running {
log.Infof("Container %s was running, starting container %s", c.Id, newContainer.Id) log.Infof("Container %s was running, starting container %s", c.Id, newContainer.Id)
if err := w.cluster.StartContainer(newContainer, nil); err != nil { if err := w.cluster.StartContainer(newContainer); err != nil {
log.Errorf("Failed to start rescheduled container %s", newContainer.Id) log.Errorf("Failed to start rescheduled container %s", newContainer.Id)
} }
} }

View File

@ -25,26 +25,3 @@ function teardown() {
# Verify # Verify
[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ] [ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]
} }
@test "docker start with hostConfig" {
start_docker_with_busybox 2
swarm_manage
# create
docker_swarm create --name test_container busybox sleep 1000
# make sure created container exists
# new created container has no status
run docker_swarm ps -l
[ "${#lines[@]}" -eq 2 ]
[[ "${lines[1]}" == *"test_container"* ]]
# start
curl -s -H "Content-Type: application/json" -X POST -d '{"PublishAllPorts": true}' ${SWARM_HOSTS[0]}/v1.23/containers/test_container/start
# Verify
[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]
# Inspect HostConfig of container, should have PublishAllPorts set to true
run docker_swarm inspect test_container
[[ "${output}" == *'"PublishAllPorts": true'* ]]
}

View File

@ -32,3 +32,18 @@ function teardown() {
# check memory-swappiness # check memory-swappiness
[[ "${output}" == *"\"MemorySwappiness\": -1"* ]] [[ "${output}" == *"\"MemorySwappiness\": -1"* ]]
} }
@test "docker-compose up - check port" {
start_docker_with_busybox 2
swarm_manage
FILE=$TESTDATA/compose/simple.yml
docker-compose_swarm -f $FILE up -d
run docker_swarm ps -q
[ "${#lines[@]}" -eq 2 ]
run docker_swarm ps
# check memory-swappiness
[[ "${output}" == *"->80/tcp"* ]]
}

View File

@ -1,5 +1,7 @@
service1: service1:
image: busybox image: busybox
ports:
- "80"
command: sleep 100 command: sleep 100
service2: service2: