1
0
mirror of https://github.com/moby/moby.git synced 2025-12-09 10:01:25 +03:00

Adding capability to filter by name, id or status to list containers api

Closes #7599

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
This commit is contained in:
Srini Brahmaroutu
2014-10-13 06:12:44 +00:00
parent 528c15afed
commit 1634625353
3 changed files with 92 additions and 7 deletions

View File

@@ -336,3 +336,63 @@ func TestPsListContainersFilterStatus(t *testing.T) {
logDone("ps - test ps filter status")
}
func TestPsListContainersFilterID(t *testing.T) {
// start container
runCmd := exec.Command(dockerBinary, "run", "-d", "busybox")
out, _, err := runCommandWithOutput(runCmd)
if err != nil {
t.Fatal(out, err)
}
firstID := stripTrailingCharacters(out)
// start another container
runCmd = exec.Command(dockerBinary, "run", "-d", "busybox", "sh", "-c", "sleep 360")
if out, _, err = runCommandWithOutput(runCmd); err != nil {
t.Fatal(out, err)
}
// filter containers by id
runCmd = exec.Command(dockerBinary, "ps", "-a", "-q", "--filter=id="+firstID)
if out, _, err = runCommandWithOutput(runCmd); err != nil {
t.Fatal(out, err)
}
containerOut := strings.TrimSpace(out)
if containerOut != firstID[:12] {
t.Fatalf("Expected id %s, got %s for exited filter, output: %q", firstID[:12], containerOut, out)
}
deleteAllContainers()
logDone("ps - test ps filter id")
}
func TestPsListContainersFilterName(t *testing.T) {
// start container
runCmd := exec.Command(dockerBinary, "run", "-d", "--name=a_name_to_match", "busybox")
out, _, err := runCommandWithOutput(runCmd)
if err != nil {
t.Fatal(out, err)
}
firstID := stripTrailingCharacters(out)
// start another container
runCmd = exec.Command(dockerBinary, "run", "-d", "--name=b_name_to_match", "busybox", "sh", "-c", "sleep 360")
if out, _, err = runCommandWithOutput(runCmd); err != nil {
t.Fatal(out, err)
}
// filter containers by name
runCmd = exec.Command(dockerBinary, "ps", "-a", "-q", "--filter=name=a_name_to_match")
if out, _, err = runCommandWithOutput(runCmd); err != nil {
t.Fatal(out, err)
}
containerOut := strings.TrimSpace(out)
if containerOut != firstID[:12] {
t.Fatalf("Expected id %s, got %s for exited filter, output: %q", firstID[:12], containerOut, out)
}
deleteAllContainers()
logDone("ps - test ps filter name")
}