Skip to content

Commit b3792dd

Browse files
committed
progress for resource can be restarted after more Working event comes
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent d8ee474 commit b3792dd

File tree

9 files changed

+17
-20
lines changed

9 files changed

+17
-20
lines changed

internal/desktop/file_shares.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,6 @@ func NewFileShareManager(cli *Client, projectName string, hostPaths []string) *F
139139
// flow can continue.
140140
func (m *FileShareManager) EnsureExists(ctx context.Context) (err error) {
141141
w := progress.ContextWriter(ctx)
142-
// TODO(milas): this should be a per-node option, not global
143-
w.HasMore(false)
144-
145142
w.Event(progress.NewEvent(fileShareProgressID, progress.Working, ""))
146143
defer func() {
147144
if err != nil {

pkg/compose/create.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ type createConfigs struct {
6868

6969
func (s *composeService) Create(ctx context.Context, project *types.Project, createOpts api.CreateOptions) error {
7070
return progress.RunWithTitle(ctx, func(ctx context.Context) error {
71-
return s.create(ctx, project, createOpts, false)
71+
return s.create(ctx, project, createOpts)
7272
}, s.stdinfo(), "Creating")
7373
}
7474

75-
func (s *composeService) create(ctx context.Context, project *types.Project, options api.CreateOptions, willAttach bool) error {
75+
func (s *composeService) create(ctx context.Context, project *types.Project, options api.CreateOptions) error {
7676
if len(options.Services) == 0 {
7777
options.Services = project.ServiceNames()
7878
}
@@ -113,10 +113,6 @@ func (s *composeService) create(ctx context.Context, project *types.Project, opt
113113
"--remove-orphans flag to clean it up.", orphans.names())
114114
}
115115
}
116-
117-
if willAttach {
118-
progress.ContextWriter(ctx).HasMore(willAttach)
119-
}
120116
return newConvergence(options.Services, observedState, s).apply(ctx, project, options)
121117
}
122118

pkg/compose/scale.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626

2727
func (s *composeService) Scale(ctx context.Context, project *types.Project, options api.ScaleOptions) error {
2828
return progress.Run(ctx, tracing.SpanWrapFunc("project/scale", tracing.ProjectOptions(ctx, project), func(ctx context.Context) error {
29-
err := s.create(ctx, project, api.CreateOptions{Services: options.Services}, true)
29+
err := s.create(ctx, project, api.CreateOptions{Services: options.Services})
3030
if err != nil {
3131
return err
3232
}

pkg/compose/up.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ import (
3737

3838
func (s *composeService) Up(ctx context.Context, project *types.Project, options api.UpOptions) error { //nolint:gocyclo
3939
err := progress.Run(ctx, tracing.SpanWrapFunc("project/up", tracing.ProjectOptions(ctx, project), func(ctx context.Context) error {
40-
w := progress.ContextWriter(ctx)
41-
err := s.create(ctx, project, options.Create, options.Start.Attach != nil)
40+
err := s.create(ctx, project, options.Create)
4241
if err != nil {
4342
return err
4443
}

pkg/compose/watch.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ func (s *composeService) handleWatchBatch(ctx context.Context, project *types.Pr
470470
Services: []string{serviceName},
471471
Inherit: true,
472472
Recreate: api.RecreateForce,
473-
}, true)
473+
})
474474
if err != nil {
475475
options.LogTo.Log(api.WatchLogger, fmt.Sprintf("Failed to recreate service after update. Error: %v", err))
476476
return err

pkg/progress/event.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ func (e *Event) stop() {
176176
e.spinner.Stop()
177177
}
178178

179+
func (e *Event) hasMore() {
180+
e.spinner.Restart()
181+
}
182+
179183
var (
180184
spinnerDone = "✔"
181185
spinnerWarning = "!"
@@ -191,6 +195,6 @@ func (e *Event) Spinner() any {
191195
case Error:
192196
return ErrorColor(spinnerError)
193197
default:
194-
return e.spinner.String()
198+
return CountColor(e.spinner.String())
195199
}
196200
}

pkg/progress/spinner.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,7 @@ func (s *spinner) String() string {
6464
func (s *spinner) Stop() {
6565
s.stop = true
6666
}
67+
68+
func (s *spinner) Restart() {
69+
s.stop = false
70+
}

pkg/progress/tty.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,11 @@ func (w *ttyWriter) event(e Event) {
8484
last := w.events[e.ID]
8585
switch e.Status {
8686
case Done, Error, Warning:
87-
if last.endTime.IsZero() {
87+
if last.Status != e.Status {
8888
last.stop()
8989
}
9090
case Working:
91-
if !last.endTime.IsZero() {
92-
// already done, don't overwrite
93-
return
94-
}
91+
last.hasMore()
9592
}
9693
last.Status = e.Status
9794
last.Text = e.Text

pkg/progress/tty_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func TestLineText(t *testing.T) {
4242
lineWidth := len(fmt.Sprintf("%s %s", ev.ID, ev.Text))
4343

4444
out := tty().lineText(ev, "", 50, lineWidth, false)
45-
assert.Equal(t, out, " . id Text Status \x1b[34m0.0s \x1b[0m\n")
45+
assert.Equal(t, out, " \x1b[33m.\x1b[0m id Text Status \x1b[34m0.0s \x1b[0m\n")
4646

4747
ev.Status = Done
4848
out = tty().lineText(ev, "", 50, lineWidth, false)

0 commit comments

Comments
 (0)