Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit 15c0b88

Browse files
committed
hide non running containers if no --all option
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
1 parent f368036 commit 15c0b88

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

kube/client/client.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ package client
2020

2121
import (
2222
"context"
23-
"encoding/json"
2423
"fmt"
2524

2625
v1 "k8s.io/api/core/v1"
@@ -54,14 +53,18 @@ func NewKubeClient(config genericclioptions.RESTClientGetter) (*KubeClient, erro
5453

5554
// GetContainers get containers for a given compose project
5655
func (kc KubeClient) GetContainers(ctx context.Context, projectName string, all bool) ([]compose.ContainerSummary, error) {
57-
pods, err := kc.client.CoreV1().Pods("").List(ctx, metav1.ListOptions{LabelSelector: fmt.Sprintf("%s=%s", compose.ProjectTag, projectName)})
56+
fieldSelector := ""
57+
if !all {
58+
fieldSelector = "status.phase=Running"
59+
}
5860

61+
pods, err := kc.client.CoreV1().Pods("").List(ctx, metav1.ListOptions{
62+
LabelSelector: fmt.Sprintf("%s=%s", compose.ProjectTag, projectName),
63+
FieldSelector: fieldSelector,
64+
})
5965
if err != nil {
6066
return nil, err
6167
}
62-
json, _ := json.MarshalIndent(pods, "", " ")
63-
fmt.Println(string(json))
64-
fmt.Printf("containers: %d\n", len(pods.Items))
6568
result := []compose.ContainerSummary{}
6669
for _, pod := range pods.Items {
6770
result = append(result, podToContainerSummary(pod))

kube/e2e/compose_test.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,23 @@ func TestComposeUp(t *testing.T) {
7979
res.Assert(t, icmd.Expected{Out: `[{"Name":"compose-kube-demo","Status":"deployed"}]`})
8080
})
8181

82-
t.Run("compose ps", func(t *testing.T) {
83-
getServiceRegx := func(project string, service string) string {
82+
t.Run("compose ps --all", func(t *testing.T) {
83+
getServiceRegx := func(service string) string {
8484
// match output with random hash / spaces like:
85-
// myproject-db-698f4dd798-jd9gw db Running
86-
return fmt.Sprintf("%s-%s-.*\\s+%s\\s+Pending\\s+", project, service, service)
85+
// db-698f4dd798-jd9gw db Running
86+
return fmt.Sprintf("%s-.*\\s+%s\\s+Pending\\s+", service, service)
8787
}
88+
res := c.RunDockerCmd("compose", "ps", "-p", projectName, "--all")
89+
testify.Regexp(t, getServiceRegx("db"), res.Stdout())
90+
testify.Regexp(t, getServiceRegx("words"), res.Stdout())
91+
testify.Regexp(t, getServiceRegx("web"), res.Stdout())
92+
93+
assert.Equal(t, len(Lines(res.Stdout())), 4, res.Stdout())
94+
})
95+
96+
t.Run("compose ps hides non running containers", func(t *testing.T) {
8897
res := c.RunDockerCmd("compose", "ps", "-p", projectName)
89-
testify.Regexp(t, getServiceRegx(projectName, "db"), res.Stdout())
90-
testify.Regexp(t, getServiceRegx(projectName, "words"), res.Stdout())
91-
testify.Regexp(t, getServiceRegx(projectName, "web"), res.Stdout())
98+
assert.Equal(t, len(Lines(res.Stdout())), 1, res.Stdout())
9299
})
93100

94101
t.Run("check running project", func(t *testing.T) {

0 commit comments

Comments
 (0)