From 6889ad2e5e540c2e6d434e825146b85a129a135e Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Fri, 28 Feb 2025 11:05:50 +0000 Subject: [PATCH] fix(agent/agentcontainers): remove empty warning if no containers exist (#16748) Fixes the current annoying response if no containers are running: ``` {"containers":null,"warnings":[""]} ``` --- agent/agentcontainers/containers_dockercli.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/agent/agentcontainers/containers_dockercli.go b/agent/agentcontainers/containers_dockercli.go index 27e5f835d5..5218153bde 100644 --- a/agent/agentcontainers/containers_dockercli.go +++ b/agent/agentcontainers/containers_dockercli.go @@ -253,11 +253,16 @@ func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentLi return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("scan docker ps output: %w", err) } + res := codersdk.WorkspaceAgentListContainersResponse{ + Containers: make([]codersdk.WorkspaceAgentDevcontainer, 0, len(ids)), + Warnings: make([]string, 0), + } dockerPsStderr := strings.TrimSpace(stderrBuf.String()) + if dockerPsStderr != "" { + res.Warnings = append(res.Warnings, dockerPsStderr) + } if len(ids) == 0 { - return codersdk.WorkspaceAgentListContainersResponse{ - Warnings: []string{dockerPsStderr}, - }, nil + return res, nil } // now we can get the detailed information for each container @@ -273,13 +278,10 @@ func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentLi return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("run docker inspect: %w", err) } - res := codersdk.WorkspaceAgentListContainersResponse{ - Containers: make([]codersdk.WorkspaceAgentDevcontainer, len(ins)), - } - for idx, in := range ins { + for _, in := range ins { out, warns := convertDockerInspect(in) res.Warnings = append(res.Warnings, warns...) - res.Containers[idx] = out + res.Containers = append(res.Containers, out) } if dockerPsStderr != "" {