From cc50ada7255b5bbff686cf7e4ba8721c258d3a54 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Wed, 21 May 2025 15:25:04 +0200 Subject: [PATCH] report error (re)creating container Signed-off-by: Nicolas De Loof --- pkg/compose/convergence.go | 24 ++++++++++++++++++++---- pkg/compose/pull.go | 1 - 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pkg/compose/convergence.go b/pkg/compose/convergence.go index ab3091bf5..90bf2ce01 100644 --- a/pkg/compose/convergence.go +++ b/pkg/compose/convergence.go @@ -595,6 +595,13 @@ func (s *composeService) createContainer(ctx context.Context, project *types.Pro w.Event(progress.CreatingEvent(eventName)) ctr, err = s.createMobyContainer(ctx, project, service, name, number, nil, opts, w) if err != nil { + if ctx.Err() == nil { + w.Event(progress.Event{ + ID: eventName, + Status: progress.Error, + StatusText: err.Error(), + }) + } return } w.Event(progress.CreatedEvent(eventName)) @@ -603,10 +610,19 @@ func (s *composeService) createContainer(ctx context.Context, project *types.Pro func (s *composeService) recreateContainer(ctx context.Context, project *types.Project, service types.ServiceConfig, replaced containerType.Summary, inherit bool, timeout *time.Duration, -) (containerType.Summary, error) { - var created containerType.Summary +) (created containerType.Summary, err error) { w := progress.ContextWriter(ctx) - w.Event(progress.NewEvent(getContainerProgressName(replaced), progress.Working, "Recreate")) + eventName := getContainerProgressName(replaced) + w.Event(progress.NewEvent(eventName, progress.Working, "Recreate")) + defer func() { + if err != nil && ctx.Err() == nil { + w.Event(progress.Event{ + ID: eventName, + Status: progress.Error, + StatusText: err.Error(), + }) + } + }() number, err := strconv.Atoi(replaced.Labels[api.ContainerNumberLabel]) if err != nil { @@ -646,7 +662,7 @@ func (s *composeService) recreateContainer(ctx context.Context, project *types.P return created, err } - w.Event(progress.NewEvent(getContainerProgressName(replaced), progress.Done, "Recreated")) + w.Event(progress.NewEvent(eventName, progress.Done, "Recreated")) return created, err } diff --git a/pkg/compose/pull.go b/pkg/compose/pull.go index f1b0fd8e7..2462355d5 100644 --- a/pkg/compose/pull.go +++ b/pkg/compose/pull.go @@ -208,7 +208,6 @@ func (s *composeService) pullServiceImage(ctx context.Context, service types.Ser w.Event(progress.Event{ ID: service.Name, Status: progress.Warning, - Text: "Warning", StatusText: "Interrupted", }) return "", nil