From c55b214001b47265760f614ec7793d4c3d0a2a89 Mon Sep 17 00:00:00 2001 From: Filipe Constantinov Menezes Date: Tue, 10 Sep 2024 12:09:23 +0100 Subject: [PATCH] CLOUDP-268554 Fix atlas deployments inspect errors not showing up (#3249) --- internal/cli/deployments/diagnostics.go | 18 +++++++++++------- internal/container/docker.go | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/internal/cli/deployments/diagnostics.go b/internal/cli/deployments/diagnostics.go index 039b1dd86e..b7835bb297 100644 --- a/internal/cli/deployments/diagnostics.go +++ b/internal/cli/deployments/diagnostics.go @@ -40,7 +40,7 @@ type diagnostic struct { Version map[string]any Images []string Containers []*containerDiagnostic - Err error + Err string } type machineDiagnostic struct { @@ -64,16 +64,18 @@ func (opts *diagnosticsOpts) Run(ctx context.Context) error { Engine: opts.ContainerEngine.Name(), } + errs := []error{} + cores, err := cpu.Counts(true) if err != nil { - d.Err = errors.Join(d.Err, err) + errs = append(errs, err) cores = -1 } d.Machine.CPU = cores v, err := mem.VirtualMemory() if err != nil { - d.Err = errors.Join(d.Err, err) + errs = append(errs, err) d.Machine.Memory = 0 } else { d.Machine.Memory = v.Available @@ -81,7 +83,7 @@ func (opts *diagnosticsOpts) Run(ctx context.Context) error { images, err := opts.ContainerEngine.ImageList(ctx, "mongodb/mongodb-atlas-local") if err != nil { - d.Err = errors.Join(d.Err, err) + errs = append(errs, err) } else { for _, image := range images { d.Images = append(d.Images, image.Repository+":"+image.Tag) @@ -90,18 +92,18 @@ func (opts *diagnosticsOpts) Run(ctx context.Context) error { d.Version, err = opts.ContainerEngine.Version(ctx) if err != nil { - d.Err = errors.Join(d.Err, err) + errs = append(errs, err) } if opts.LocalMongodHostname() != "" { inspectData, err := opts.ContainerEngine.ContainerInspect(ctx, opts.LocalMongodHostname()) if err != nil { - d.Err = errors.Join(d.Err, err) + errs = append(errs, err) } logs, err := opts.ContainerEngine.ContainerLogs(ctx, opts.LocalMongodHostname()) if err != nil { - d.Err = errors.Join(d.Err, err) + errs = append(errs, err) } d.Containers = append(d.Containers, &containerDiagnostic{ @@ -110,6 +112,8 @@ func (opts *diagnosticsOpts) Run(ctx context.Context) error { }) } + d.Err = errors.Join(errs...).Error() + return opts.Print(d) } diff --git a/internal/container/docker.go b/internal/container/docker.go index d4d65c0d5e..70ebee94e4 100644 --- a/internal/container/docker.go +++ b/internal/container/docker.go @@ -377,7 +377,7 @@ func (e *dockerImpl) ContainerInspect(ctx context.Context, names ...string) ([]* } func (e *dockerImpl) ImageList(ctx context.Context, references ...string) ([]Image, error) { - args := []string{"image", "ls", "--format", "{{.}}"} + args := []string{"image", "ls", "--format", "{{. | json}}"} if len(references) > 0 { for _, name := range references {