Merge pull request #1712 from vieux/hostdown_ps

Host Down containers in ps requires -a
This commit is contained in:
Alexandre Beslic 2016-01-29 15:38:40 -08:00
commit f86f41ba09
3 changed files with 29 additions and 2 deletions

View File

@ -327,8 +327,8 @@ func getContainersJSON(c *context, w http.ResponseWriter, r *http.Request) {
// Filtering: select the containers we want to return.
candidates := []*cluster.Container{}
for _, container := range c.cluster.Containers() {
// Skip stopped containers unless -a was specified.
if !container.Info.State.Running && !all && before == nil && limit <= 0 {
// Skip stopped containers unless -a was specified
if (!container.Info.State.Running || !container.Engine.IsHealthy()) && !all && before == nil && limit <= 0 {
continue
}

View File

@ -7,6 +7,30 @@ function teardown() {
stop_docker
}
@test "docker ps - host down" {
start_docker_with_busybox 2
swarm_manage --engine-refresh-min-interval=1s --engine-refresh-max-interval=1s --engine-failure-retry=1 ${HOSTS[0]},${HOSTS[1]}
docker_swarm run -d -e constraint:node==node-0 busybox sleep 42
docker_swarm run -d -e constraint:node==node-1 busybox sleep 42
run docker_swarm ps
[ "${#lines[@]}" -eq 3 ]
# Stop node-0
docker_host stop ${DOCKER_CONTAINERS[0]}
# Wait for Swarm to detect the node failure.
retry 5 1 eval "docker_swarm info | grep -q 'Unhealthy'"
run docker_swarm ps
# container with host down shouldn't be displyed since they are not `running`
[ "${#lines[@]}" -eq 2 ]
run docker_swarm ps -a
[ "${#lines[@]}" -eq 3 ]
}
@test "docker ps -n" {
start_docker_with_busybox 2
swarm_manage

View File

@ -67,6 +67,9 @@ function teardown() {
run docker_swarm inspect c3
[ "$status" -eq 0 ]
[[ "${output}" == *'"Name": "node-1"'* ]]
run docker_swarm ps -q
[ "${#lines[@]}" -eq 2 ]
}
@test "rescheduling with constraints" {