Merge pull request #2177 from jimmyxian/add-support-ps-filter-volume

add support ps --filter volume
This commit is contained in:
Victor Vieux 2016-04-28 17:59:44 -07:00
commit 9dd298589d
2 changed files with 33 additions and 1 deletions

View File

@ -400,7 +400,20 @@ func getContainersJSON(c *context, w http.ResponseWriter, r *http.Request) {
if !filters.Match("node", container.Engine.Name) { if !filters.Match("node", container.Engine.Name) {
continue continue
} }
if filters.Include("volume") {
volumeExist := fmt.Errorf("volume mounted in container")
err := filters.WalkValues("volume", func(value string) error {
for _, mount := range container.Info.Mounts {
if mount.Name == value || mount.Destination == value {
return volumeExist
}
}
return nil
})
if err != volumeExist {
continue
}
}
if len(filtExited) > 0 { if len(filtExited) > 0 {
shouldSkip := true shouldSkip := true
for _, code := range filtExited { for _, code := range filtExited {

View File

@ -157,3 +157,22 @@ function teardown() {
[[ "${output}" == *"node-0/c1"* ]] [[ "${output}" == *"node-0/c1"* ]]
[[ "${output}" != *"node-1/c2"* ]] [[ "${output}" != *"node-1/c2"* ]]
} }
@test "docker ps --filter node" {
run docker --version
if [[ "${output}" == "Docker version 1.9"* || "${output}" == "Docker version 1.10"* ]]; then
skip
fi
start_docker_with_busybox 2
swarm_manage
docker_swarm run --name c1 -v test_volume1:/abc -d busybox:latest sleep 100
docker_swarm run --name c2 -v test_volume2:/def -d busybox:latest sleep 100
docker_swarm run --name c3 -v test_volume3:/ghi -d busybox:latest sleep 100
run docker_swarm ps --filter volume=test_volume1 --filter volume=/def
[ "$status" -eq 0 ]
[[ "${output}" == *"node-0/c1"* ]]
[[ "${output}" == *"node-1/c2"* ]]
[[ "${output}" != *"node-1/c3"* ]]
}