From e3175a7a198c9f9c43e5f7c18cc8954ceb6c6a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A1ndor=20Istv=C3=A1n=20Kr=C3=A1cser?= Date: Wed, 29 Apr 2020 17:58:34 +0200 Subject: [PATCH] tail: fix event loop (#238) Signed-off-by: Nandor Kracser --- pkg/process/process.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/process/process.go b/pkg/process/process.go index 64c7449b..5c1a2639 100644 --- a/pkg/process/process.go +++ b/pkg/process/process.go @@ -35,6 +35,7 @@ func TailProcess(banzaiCli cli.Cli, processId string) error { statuses := map[string]*spinner.Status{} processVisibleChecks := 0 + processedEvents := 0 for { process, resp, err := client.ProcessesApi.GetProcess(context.Background(), orgID, processId) @@ -53,7 +54,9 @@ func TailProcess(banzaiCli cli.Cli, processId string) error { return errors.NewWithDetails("node pool update process list failed with http status code", "status_code", resp.StatusCode) } - for i, event := range process.Events { + for i := processedEvents; i < len(process.Events); i++ { + event := process.Events[i] + processedEvents++ if s, ok := statuses[event.Type]; !ok { status := spinner.NewStatus() status.Start(fmt.Sprintf("[%s] executing %s activity %s", event.Timestamp.Local().Format(time.RFC3339), event.Type, event.Log)) @@ -64,6 +67,7 @@ func TailProcess(banzaiCli cli.Cli, processId string) error { } } else if event.Status != pipeline.RUNNING { s.End(event.Status == pipeline.FINISHED) + delete(statuses, event.Type) } else { if i == len(process.Events)-1 { time.Sleep(2 * time.Second)