diff --git a/pkg/compose/watch.go b/pkg/compose/watch.go index a860f334bcb..15d2c44c45f 100644 --- a/pkg/compose/watch.go +++ b/pkg/compose/watch.go @@ -527,7 +527,7 @@ func (s *composeService) handleWatchBatch(ctx context.Context, project *types.Pr pathMappings[i] = batch[i].PathMapping } - writeWatchSyncMessage(options.LogTo, serviceName, pathMappings) + writeWatchSyncMessage(options.LogTo, serviceName, pathMappings, restartService) service, err := project.GetService(serviceName) if err != nil { @@ -537,17 +537,28 @@ func (s *composeService) handleWatchBatch(ctx context.Context, project *types.Pr return err } if restartService { - return s.Restart(ctx, project.Name, api.RestartOptions{ + err = s.restart(ctx, project.Name, api.RestartOptions{ Services: []string{serviceName}, Project: project, NoDeps: false, }) + if err != nil { + return err + } + options.LogTo.Log( + api.WatchLogger, + fmt.Sprintf("service %q restarted", serviceName)) + } return nil } // writeWatchSyncMessage prints out a message about the sync for the changed paths. -func writeWatchSyncMessage(log api.LogConsumer, serviceName string, pathMappings []sync.PathMapping) { +func writeWatchSyncMessage(log api.LogConsumer, serviceName string, pathMappings []sync.PathMapping, restart bool) { + action := "Syncing" + if restart { + action = "Syncing and restarting" + } if logrus.IsLevelEnabled(logrus.DebugLevel) { hostPathsToSync := make([]string, len(pathMappings)) for i := range pathMappings { @@ -556,7 +567,8 @@ func writeWatchSyncMessage(log api.LogConsumer, serviceName string, pathMappings log.Log( api.WatchLogger, fmt.Sprintf( - "Syncing %q after changes were detected: %s", + "%s service %q after changes were detected: %s", + action, serviceName, strings.Join(hostPathsToSync, ", "), ), @@ -564,7 +576,7 @@ func writeWatchSyncMessage(log api.LogConsumer, serviceName string, pathMappings } else { log.Log( api.WatchLogger, - fmt.Sprintf("Syncing service %q after %d changes were detected", serviceName, len(pathMappings)), + fmt.Sprintf("%s service %q after %d changes were detected", action, serviceName, len(pathMappings)), ) } } diff --git a/pkg/e2e/watch_test.go b/pkg/e2e/watch_test.go index fb5bd0bed52..4f7ebda25b7 100644 --- a/pkg/e2e/watch_test.go +++ b/pkg/e2e/watch_test.go @@ -290,8 +290,7 @@ func doTest(t *testing.T, svcName string) { return poll.Continue("%v", r.Combined()) } } - poll.WaitOn(t, checkRestart(fmt.Sprintf("%s-1 Restarting", svcName))) - poll.WaitOn(t, checkRestart(fmt.Sprintf("%s-1 Started", svcName))) + poll.WaitOn(t, checkRestart(fmt.Sprintf("service %q restarted", svcName))) poll.WaitOn(t, checkFileContents("/app/config/file.config", "This is an updated config file")) testComplete.Store(true)