mirror of https://github.com/docker/docs.git
147 lines
4.2 KiB
Bash
147 lines
4.2 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load ../helpers
|
|
|
|
function teardown() {
|
|
swarm_manage_cleanup
|
|
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
|
|
|
|
docker_swarm run -d busybox sleep 42
|
|
docker_swarm run -d busybox false
|
|
run docker_swarm ps -n 3
|
|
# Non-running containers should be included in ps -n
|
|
[ "${#lines[@]}" -eq 3 ]
|
|
|
|
docker_swarm run -d busybox true
|
|
run docker_swarm ps -n 3
|
|
[ "${#lines[@]}" -eq 4 ]
|
|
|
|
docker_swarm run -d busybox true
|
|
run docker_swarm ps -n 3
|
|
[ "${#lines[@]}" -eq 4 ]
|
|
}
|
|
|
|
@test "docker ps -l" {
|
|
start_docker_with_busybox 2
|
|
swarm_manage
|
|
|
|
docker_swarm run -d busybox sleep 42
|
|
sleep 1 #sleep so the 2 containers don't start at the same second
|
|
docker_swarm run -d busybox true
|
|
run docker_swarm ps -l
|
|
[ "${#lines[@]}" -eq 2 ]
|
|
# Last container should be "true", even though it's stopped.
|
|
[[ "${lines[1]}" == *"true"* ]]
|
|
|
|
sleep 1 #sleep so the container doesn't start at the same second as 'busybox true'
|
|
run docker_swarm run -d busybox false
|
|
run docker_swarm ps -l
|
|
[ "${#lines[@]}" -eq 2 ]
|
|
[[ "${lines[1]}" == *"false"* ]]
|
|
}
|
|
|
|
@test "docker ps --before" {
|
|
start_docker_with_busybox 2
|
|
swarm_manage
|
|
|
|
docker_swarm run -d --name container1 busybox echo container1
|
|
sleep 1 #sleep so the 2 containers don't start at the same second
|
|
docker_swarm run -d --name container2 busybox echo container2
|
|
|
|
run eval "docker_swarm ps --before container1 2>/dev/null"
|
|
[ "${#lines[@]}" -eq 1 ]
|
|
|
|
run eval "docker_swarm ps --before container2 2>/dev/null"
|
|
[ "${#lines[@]}" -eq 2 ]
|
|
|
|
run docker_swarm ps --before container3
|
|
[ "$status" -eq 1 ]
|
|
}
|
|
|
|
@test "docker ps --filter" {
|
|
start_docker_with_busybox 2
|
|
swarm_manage
|
|
|
|
# Running
|
|
firstID=$(docker_swarm run -d --name name1 --label "match=me" --label "second=tag" busybox sleep 10000)
|
|
# Exited - successful
|
|
secondID=$(docker_swarm run -d --name name2 --label "match=me too" busybox true)
|
|
docker_swarm wait "$secondID"
|
|
# Exited - error
|
|
thirdID=$(docker_swarm run -d --name name3 --label "nomatch=me" busybox false)
|
|
docker_swarm wait "$thirdID"
|
|
# Exited - error
|
|
|
|
# status
|
|
run docker_swarm ps -q --no-trunc --filter=status=exited
|
|
echo $output
|
|
[ "${#lines[@]}" -eq 2 ]
|
|
[[ "$output" != *"$firstID"* ]]
|
|
[[ "$output" == *"$secondID"* ]]
|
|
[[ "$output" == *"$thirdID"* ]]
|
|
run docker_swarm ps -q -a --no-trunc --filter=status=running
|
|
[[ "$output" == "$firstID" ]]
|
|
|
|
# id
|
|
run docker_swarm ps -a -q --no-trunc --filter=id="$secondID"
|
|
[[ "$output" == "$secondID" ]]
|
|
run docker_swarm ps -a -q --no-trunc --filter=id="bogusID"
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
|
|
# name
|
|
run docker_swarm ps -a -q --no-trunc --filter=name=name3
|
|
[[ "$output" == "$thirdID" ]]
|
|
run docker_swarm ps -a -q --no-trunc --filter=name=badname
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
|
|
# exit code
|
|
run docker_swarm ps -a -q --no-trunc --filter=exited=0
|
|
[[ "$output" == "$secondID" ]]
|
|
run docker_swarm ps -a -q --no-trunc --filter=exited=1
|
|
[[ "$output" == "$thirdID" ]]
|
|
run docker_swarm ps -a -q --no-trunc --filter=exited=99
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
|
|
# labels
|
|
run docker_swarm ps -a -q --no-trunc --filter=label=match=me
|
|
[[ "$output" == "$firstID" ]]
|
|
run docker_swarm ps -a -q --no-trunc --filter=label=match=me --filter=label=second=tag
|
|
[[ "$output" == "$firstID" ]]
|
|
run docker_swarm ps -a -q --no-trunc --filter=label=match=me --filter=label=second=tag-no
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
run docker_swarm ps -a -q --no-trunc --filter=label=match
|
|
[ "${#lines[@]}" -eq 2 ]
|
|
[[ "$output" == *"$firstID"* ]]
|
|
[[ "$output" == *"$secondID"* ]]
|
|
[[ "$output" != *"$thirdID"* ]]
|
|
}
|